Найти в Дзене

Установка NextCloud на Debian 11

Введение Добрый день, Уважаемые коллеги! В этой статье я хочу описать как установить NextCloud на Debian11. Что такое NextCloud NextCloud – это аналог Dropbox, который можно развернуть на собственном VPS и сделать облако для хранения файлов — фотографий, видео и любых других. Приложение можно использовать для совместной работы и конфиденциального обмена файлами, настраивая уровни доступа для каждого пользователя. Также с помощью отдельного мобильного приложения NextCloud Talk можно также совершать голосовые и видеозвонки. Примеры использования — Облако для хранения фотографий и видео — Обмен конфиденциальными документами — Совместная работа над документами (ONLYOFFICE NextCloud) Возможности Nextcloud — Хранение любых файлов — Права доступа для пользователя или группы — Совместимость с Windows, macOS и Linux — Приложения для iOS и Android — Интерфейс на русском языке — Интеграция с Microsoft Outlook — История изменений, откат к предыдущим версиям Подготовка к установке Первым делом обно
Оглавление

Введение

Добрый день, Уважаемые коллеги!

В этой статье я хочу описать как установить NextCloud на Debian11.

Что такое NextCloud

NextCloud – это аналог Dropbox, который можно развернуть на собственном VPS и сделать облако для хранения файлов — фотографий, видео и любых других. Приложение можно использовать для совместной работы и конфиденциального обмена файлами, настраивая уровни доступа для каждого пользователя. Также с помощью отдельного мобильного приложения NextCloud Talk можно также совершать голосовые и видеозвонки.

Примеры использования

— Облако для хранения фотографий и видео

— Обмен конфиденциальными документами

— Совместная работа над документами (ONLYOFFICE NextCloud)

Возможности Nextcloud

— Хранение любых файлов

— Права доступа для пользователя или группы

— Совместимость с Windows, macOS и Linux

— Приложения для iOS и Android

— Интерфейс на русском языке

— Интеграция с Microsoft Outlook

— История изменений, откат к предыдущим версиям

Подготовка к установке

Первым делом обновляем операционную систему.

apt update&& apt upgrade -y

после обновления устанавливаем Apache:

apt install apache2 -y

Меняем файл конфигурации апача:

nano/etc/apache2/apache2.conf

В конец файла дописываем следующее:

ServerName IP-адрес сервера

ServerName адрес сайта

Нажимаем сочетание клавиш Ctrl+S потом Ctrl+X.

Включаем модули Apache ssl, перезапись и заголовки:

a2enmod ssl rewrite headers

Перезапускаем Apache:

systemctl restart apache2

Проверяем модули:

apachectl -M | egrep "ssl|rewrite|headers"

Результат должен быть вот таким:

Устанавливаем и настраиваем PHP.

Устанавливаем дополнительные пакеты:

apt -y install lsb-release ca-certificates curl

curl-sSLo/usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

Подключаем репозиторий PHP:

sh-c'echo"deb[signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Обновим индексы пакетов в системе.

apt update

Устанавливаем пакеты PHP и дополнительные модули PHP для NextCloud:

apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu

Устанавливаем дополнительно еще один пакет:

apt install -y libmagickcore-dev

редактируем файл /etc/php/8.0/apache2/php.ini (вместо цифры 8.0 может быть 8.2 зависит от того какая версия будет актуальной на момент установки)

nano /etc/php/8.2/apache2/php.ini

Для базового развертывания nextcloud измените параметры по умолчанию, используя следующую конфигурацию.

file_uploads = On

allow_url_fopen = On

memory_limit = 512M

upload_max_filesize = 500M

post_max_size = 600M

max_execution_time = 300

display_errors = Off

date.timezone = Europe/Moscow

output_buffering = Off

Раскомментируйте параметр, чтобы загрузить расширение opcache:

zend_extension=opcache

В разделе [opcache] и раскомментируем или добавляем следующую конфигурацию:

...

....

.....

opcache.enable = 1

opcache.interned_strings_buffer = 8

opcache.max_accelerated_files = 10000

opcache.memory_consumption = 128

opcache.save_comments = 1

opcache.revalidate_freq = 1

Нажимаем Ctrl+S и потом Ctrl+x

Перезапускаем апач:

systemctl restart apache2

Установка и настройка MariaDB

apt install mariadb-server mariadb-client -y

Включаем службу mariadb и прописываем её в автозагрузку:

systemctl enable--now mariadb.service

Делаем первоначальную настройки базы данных mariadb:

mysql_secure_installation

Будет предложено ввести пароль root mariadb. Нажимаем Enter:

2
2

Появится вопрос. Вводим “Y” чтобы включить аутентификацию unix_socket.

3
3

После чего нам предложат сменить пароль для root для доступа к базе данных. Нажимаем “Y”.

4
4

Вводим надежный пароль для базы данных, после чего нажмите Enter, потом повторите ввод пароля и еще раз нажмите Enter (!!!Запомните этот пароль!!!).

Появится предложение удалить анонимных пользователей (Нажимаем “Y”):

5
5

Нам предложат отключить возможность удалённого подключения из под root’а (нажимаем “Y”):

6
6

Далее нам предложат удалить тестовые базы данных (отвечаем “Y”):

7
7

Далее попросят подтвердить всю введённую информацию (нажимаем “Y”):

8
8

При успешном исходе вы увидите вот такую картину:

9
9

Создаём базу данных и пользователя для NextCloud

Входим в оболочку mariadb:

mysql -u root -p

На запрос пароля введите пароль, созданный при первоначальной настройке базы данных.

Послу ввода пароля вы увидите вот такую командную строку:

10
10

Создаём базу данных:

CREATE DATABASE nextcloud_db;

Вот таким будет результат выполнения команды:

11
11

Создаём пользователя для базы данных (где nxt_user – это имя создаваемого пользователя, а StrongPassword– это ваш надёжный пароль):

CREATE USER nxt_user IDENTIFIED BY 'StrongPassword';

Результат выполнения выглядит так:

12
12

Выдаём привилегии созданному пользователю на доступ и запись к созданной базе данных:

GRANT ALL PRIVILEGES ON nextcloud_db.* TO nxt_user;

Результат выполнения команды:

13
13

Перезагружаем все права доступа к таблицам, чтобы применить новую конфигурацию к базе данных:

FLUSH PRIVILEGES;

Результат выполнения команды:

14
14

Теперь можно выйти из оболочки управления, введите команду:

quit;

Переходим в каталог /var/www/:

cd/var/www/

Скачиваем последнюю версию исходного кода NextCloud (проверить какая версия последняя можно по адресу https://download.nextcloud.com/server/releases/ на момент написания статьи последней являлась версия 27.1.2)

curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-27.1.2.zip

Устанавливаем распаковщик:

apt install unzip-y

После установки распаковщика, распакуйте скачанный архив командой:

unzip nextcloud.zip

После распаковки архива в каталоге /var/www/ появится папка nextcloud, проверить это можно командой:

ls -ls

Результат выполнения команды:

15
15

Устанавливаем права на папку /var/www/nextcloud командой:

chown -R www-data:www-data nextcloud

Теперь мы готовы создать SSL Letsencrypt и настроить виртуальный хост Apache для Nextcloud.

Генерация SSL Letsencrypt

Устанавливаем инструмент certbot командой:

apt install certbot-y

После завершения установки создаём каталог для авторизации letsencrypt, при помощи команды:

mkdir -p /var/lib/letsencrypt/.well-known

Меняем права на папку командами:

chgrp www-data /var/lib/letsencrypt

chmod g+s /var/lib/letsencrypt

Переходим в каталог /etc/apache2/conf-available/ и создаём конфигурацию well-known.conf командами:

cd /etc/apache2/conf-available/

nano well-known.conf

В открытый файл нужно скопировать следующие строки:

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"

<Directory "/var/lib/letsencrypt/">

AllowOverride None

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

Require method GET POST OPTIONS

</Directory>

Сохраните и выйдите из файла Нажмите Ctrl+S, а потом Ctrl+X.

Активируем новую конфигурацию командой:

ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/

Проверяем конфигурацию апача и перезапускаем его командами:

apachectl configtest

systemctl restart apache2

Если ошибок нет, то мы готовы сгенерировать SSL Letencrypt с плагином webroot. Вводим команду:

certbot certonly --agree-tos --webroot -w /var/lib/letsencrypt/ -d имя вашего домена

Будет запрошен ваш email, введите свой email и нажмите Enter, дальше на все вопросы отвечайте “Y”

Результат выполнения команды на рисунке ниже:

16
16

Настраиваем виртуальный хост Apacheдля NextCloud

Переходим в каталог /etc/apache2/sites-available/ командой:

cd /etc/apache2/sites-available/

Создаём новую конфигурацию nextcloud.conf командой:

nano nextcloud.conf

В открывшийся файл вставьте следующий текст:

<VirtualHost *:80>

ServerName files.domain-name.io

ServerAlias www.files.domain-name.io

# auto redirect HTTP to HTTPS

Redirect permanent / https://files.domain-name.io/

</VirtualHost>

<VirtualHost *:443>

ServerName files.domain-name.io

ServerAlias www.files.domain-name.io

DocumentRoot /var/www/nextcloud/

Protocols h2 http/1.1

# auto redirect www to non-www

<If "%{HTTP_HOST} == 'www.files.domain-name.io'">

Redirect permanent / https://files.domain-name.io/

</If>

# log files

ErrorLog /var/log/apache2/files.domain-name.io-error.log

CustomLog /var/log/apache2/files.domain-name.io-access.log combined

SSLEngine On

SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem

SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/privkey.pem

# HSTS

<IfModule mod_headers.c>

Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"

</IfModule>

<Directory /var/www/nextcloud/>

Options +FollowSymlinks

AllowOverride All

<IfModule mod_dav.c>

Dav off

</IfModule>

SetEnv HOME /var/www/nextcloud

SetEnv HTTP_HOME /var/www/nextcloud

</Directory>

</VirtualHost>

Во всём файле замените domain-name.io на имя вашего домена

Сохраните и выйдите из файла, для этого нажмите Ctrl+S, а затем Ctrl+X.

Активируем созданную конфигурацию командой:

a2ensite nextcloud.conf

Проверяем новую конфигурацию апача и если нет ошибок, то перезагружаем службу апача. Делаем это командами:

apachectl configtest

systemctl restart apache2

Результат выполнения команды:

17
17

Ну вот мы и готовы установить NextCloud.

Переходим на сайт

Нас встречает окно первоначальной настройки:

18
18

Заполняем все поля.

Нажимаем установить и ждём.

Появится предложение установить рекомендованные приложения:

-18

Нажимаем «Установить рекомендуемые приложения» и ждём завершения установки.

После завершения установки вы увидите вот такую заставку:

-19

Поздравляю! Вы установили NextCloud на свой сервер!