Бесплатная миграция IT-инфраструктуры в облако

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

Илья Ушаков
Илья Ушаков
Технический писатель
14 августа 2023 г.
4098
8 минут чтения
Средний рейтинг статьи: 4

Nextcloud — это ряд клиент-серверных программ, предназначенных для создания собственного облачного хранилища и совместной работы с файлами. Данное открытое программное обеспечение предлагает пользователям ряд возможностей, включая хранение, синхронизацию и обмен файлами, а также управление календарем, контактами и другими данными. Его установку можно выполнить как на арендованном облачном сервере, так и на своем личном.

Image1

Источник изображения: ru.wikipedia.org

В данной инструкции будет выполнена пошаговая установка Nextcloud на сервер Debian 11.

Чтобы избежать самостоятельной установки, вы можете заказать в Timeweb Cloud готовый сервер c установленным Nextcloud. Все, что вам останется — это выполнить его настройку.

cloud

Этап 1. Подготовка сервера

Первый этап — это подготовка сервера и всех необходимых компонентов перед установкой Nextcloud на свой сервер.

  1.  В первую очередь обновим все системные пакеты до актуальных версий. Для этого в консоль вводим:
apt update -y && apt upgrade -y
  1. Теперь необходимо установить на сервер стек LAMP, который включает Apache, MySQL и PHP. Весь процесс установки перечисленных компонентов будет описан в следующих шагах. Для установки веб-сервера выполняем следующую команду:
apt install apache2 -y

По окончании установки проверим работу службы:

systemctl status apache2

Как видно по картинке ниже, служба успешно функционирует.

91f28bd8 4dc2 42b7 8653 8e45d1529104

  1. Следующим шагом установим mysql 8.0. Для начала загрузим необходимый пакет:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb

Далее установим его:

dpkg -i mysql-apt-config_0.8.18-1_all.deb

В процессе установки выбирайте настройки согласно картинке ниже. 

Image4

Добавим ключ:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

Обновим пакеты и запустим установку:

apt update
apt install -y mysql-community-server

Во время установки вам будет предложено ввести пароль для root-пользователя. После ввода пароля выбираем первый пункт, как показано на картинке ниже.

Image8

Установка закончена. Проверим работу MySQL:

systemctl status mysql

Как видно по картинке ниже, MySQL успешно функционирует.

4eec83d8 D6b5 47ad A5ba 5302e3057e83

  1. Для успешной работы последней версии Nextcloud, версия PHP должна быть обязательно выше 8. На данном шаге на сервер будет выполняться установка PHP версии 8.2. В репозиториях Debian 11 он отсутствует, поэтому подключим репозиторий Sury. Но перед этим установим пакеты для работы с HTTPS репозиториями:
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2

А теперь уже подключим необходимый репозиторий:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list

Чтобы распознать репозиторий, загрузим специальный ключ безопасности:

wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -

Далее обновим список пакетов:

apt update

И наконец, установим PHP 8.2:

apt -y install php8.2

Новая версия установлена, но пока что она не используется. Чтобы это исправить, в строку терминала вводим следующие команды. Первая нужна, чтобы отключить текущую версию PHP, если она была установлена:

a2dismod актуальная_версия
a2enmod php8.2
update-alternatives --set php /usr/bin/php8.2

Теперь при проверке версии Debian выдаст именно 8.2, как показано на рисунке ниже.

Без Названия

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

apt install libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip

И, наконец, перезагрузим apache:

systemctl restart apache2

Если все компоненты LAMP успешно работают, то можно переходить к следующему этапу установки — настройке MySQL. 

Этап 2. Настройка базы данных MySQL

На данном этапе необходимо настроить MySQL, а после создать БД для хранения данных Nextcloud и добавить к ней пользователя.

  1. Для начала выполним скрипт для повышения безопасности только что установленной MySQL:
mysql_secure_installation

Ниже перечислим те важные аспекты безопасности, которые затрагивает данный скрипт:

  • Установка пароля для пользователя root;
  • Удаление анонимных учетных записей;
  • Запрет удаленного входа для root-пользователя;
  • Удаление тестовых баз данных и таблиц;
  • Перезагрузка привилегий.

После запуска скрипта, на все системные вопросы отвечаем утвердительно, кроме первого и второго.

  1. Далее подключаемся к MySQL:
mysql -u root -p
  1. После подключения к консоли, необходимо создать новую БД:
CREATE DATABASE nextcloud;
  1. Затем создаем нового пользователя для только что созданной БД:
CREATE USER nextcloud_user1@localhost IDENTIFIED BY 'password';

Не забудьте заменить 'password' на ваш пароль для пользователя базы данных. Имя пользователя вы также можете изменить.

  1. Теперь необходимо предоставить привилегии созданному пользователю для доступа к БД:
GRANT ALL ON nextcloud.* TO nextcloud_user1@localhost;
  1. И наконец, перезагружаем таблицы с привилегиями и применяем недавно внесенные изменения, а затем выходим из MySQL:
FLUSH PRIVILEGES;
exit

Этап 3. Загрузка NextCloud на сервер

Все основные компоненты (MySQL, PHP, Apache) подготовлены к установке NextCloud. Теперь займемся непосредственно его загрузкой на сервер.

  1. Чтобы установить NextCloud на Debian 11, необходимо загрузить его последнюю версию из официального источника на сервер:
cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-27.0.1.zip
  1. После окончания скачивания распакуем архив:
unzip nextcloud-27.0.1.zip

Если у вас отсутствует утилита unzip, то установите ее, выполнив в консоли команду apt install unzip. 

  1. Далее установим правильные разрешения на папку Nextcloud:
chown -R www-data:www-data /var/www/nextcloud

Этап 4. Настройка веб-сервера Apache

Виртуальный хост в Apache позволяет настроить несколько сайтов (доменов) на одном сервере, что является основополагающим принципом хостинга множества веб-сайтов. На этом этапе мы создадим и сконфигурируем виртуальный хост Apache для установленного Nextcloud.

  1. В первую очередь отключим сайт по умолчанию:
a2dissite 000-default.conf
  1. Теперь создадим новый файл конфигурации виртуального хоста для Nextcloud с помощью текстового редактора (в данном примере используется nano):
nano /etc/apache2/sites-available/nextcloud.conf
  1. Внутри созданного файла размещаем следующий конфиг:
<VirtualHost *:80>
    DocumentRoot /var/www/nextcloud/
    ServerName your-domain.com

    <Directory /var/www/nextcloud/>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
       <IfModule mod_dav.c>
            Dav off
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

В этом конфигурационном файле мы определили виртуальный хост со следующими параметрами:

  • VirtualHost — это начало объявления виртуального хоста. Он указывает, что данный хост будет слушать на всех доступных IP-адресах и на порту 80, который используется для HTTP-соединений.
  • DocumentRoot — здесь указывается путь к корневой директории Nextcloud. Apache будет обслуживать файлы из этой директории для данного виртуального хоста.
  • ServerName — этот параметр определяет доменное имя, на котором будет доступен Nextcloud. Замените your-domain.com на ваше реальное доменное имя.
  • Directory — эта секция определяет настройки для директории Nextcloud, в которой находятся все файлы приложения. Здесь устанавливаются права доступа, разрешения и другие параметры для обслуживания файлов приложения.
  • IfModule — WebDAV используется для обмена файлами через HTTP, и в этом случае он отключается, так как Nextcloud сам обеспечивает функциональность обмена файлами.
  • ErrorLog и CustomLog — эти параметры устанавливают пути к файлам журналов ошибок и доступа сервера. 
  1. Активируем только что созданный виртуальный хост с помощью следующей команды:
a2ensite nextcloud.conf
  1. Включаем модуль mod_rewrite:
a2enmod rewrite
  1. Также заранее увеличим значение параметра memory_limit в файле php.ini. Для начала откроем его в редакторе:
nano /etc/php/8.2/apache2/php.ini

В открывшемся файле ищем memory_limit и меняем его значение на 512M.

  1. Перезапускаем веб-сервер Apache, чтобы все изменения вступили в силу:
systemctl restart apache2

Теперь ваш виртуальный хост настроен для Nextcloud. Вы можете открыть веб-браузер и ввести URL вашего домена, чтобы получить доступ к установленному инструменту. В нашем случае результат проделанной работы выглядит следующим образом:

Image9

Этап 5. Завершение установки Nextcloud 

Перейдя по указанному в конфиге Apache домену, у нас открылось только что установленное ПО. Данный этап будет посвящен завершению установки Nextcloud.

  1. В первую очередь вводим имя пользователя и пароль, которые в будущем вы будете использовать для авторизации в сервисе.
  2. Теперь переходим к настройке базы данных. В окне, продемонстрированном на картинке ниже, вам нужно ввести все данные ранее созданной БД в MySQL и нажать кнопку установить. После этого у вас начнется загрузка сервиса.

2023 10 27 14 15 10

  1. После окончания загрузки сервиса, перед вами появиться окно с рекомендованными приложениями. Вы можете установить их, либо пропустить данный шаг.

По окончанию выполнения всех шагов, перед вами появиться панель администратора Nextcloud, как показано на картинке ниже.

Image2

На данном этапе установка Nextcloud на сервер Debian 11 окончена. Теперь вы можете в любой момент воспользоваться установленным приложением, используя логин и пароль, указанные при регистрации.

Разверните Nextcloud на серверах Timeweb Cloud

Заключение

В данной статье мы рассмотрели процесс установки Nextcloud на операционную систему Debian 11. Nextcloud предоставляет удобное и безопасное решение для создания собственного облачного хранилища и совместной работы с файлами. Следуя шагам представленной инструкции, вы можете быстро развернуть свой собственный облачный сервис и получить доступ к функциям хранения, синхронизации и обмена файлами, а также управления календарями и контактами.

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
14 августа 2023 г.
4098
8 минут чтения
Средний рейтинг статьи: 4
Комментарии 2
Александр Олегович
Александр Олегович
01.02.2024, 10:06

Добрый день, все сделал согласно инструкции, кроме базы mysql, установил mariadb, доступ к web получить не удается.

Команда Timeweb Cloud
Команда Timeweb Cloud
02.02.2024, 11:28

Добрый день! Попробовали запустить Nextcloud c MariaDB, не удалось воспроизвести ошибку 🤔

Можем предположить, что была пропущена команда chown -R www-data:www-data /var/www/nextcloud, которая настраивает корректные права на файлы и директории Nextcloud.

Также есть вероятность, что проблема либо с веб-сервером, либо с конфигурацией в файле nextcloud.conf (проверьте, например, верно ли указано доменное имя).

Логи ошибок веб-сервера (последние 100 строк) можно посмотреть командой:

sudo tail -n 100 /var/log/apache2/error.log

Возможно, в логе удастся найти причину ошибку.