NEXTCLOUD

Материал из КРАТКАЯ СПРАВОЧНАЯ DIGITAL-ORGY
Перейти к навигации Перейти к поиску

Подробная пошаговая инструкция по установке Nextcloud на сервере Debian/Ubuntu

В данной инструкции рассматривается вариант установки с веб-сервером Apache HTTP Server и базой данных MariaDB. Этот стек часто используется и хорошо документирован. Вы можете адаптировать отдельные шаги под другие веб-серверы или СУБД при необходимости. Инструкция основана на официальной документации Nextcloud и проверенных руководствах.

1. Предварительные условия

Перед началом убедитесь, что ваш сервер соответствует следующим требованиям:

  • Операционная система: Чистая установка Debian (например, Debian 12) или Ubuntu (например, Ubuntu 22.04 LTS). У вас должны быть права root или пользователя с доступом к sudo.
  • Аппаратные ресурсы: Рекомендуется минимум ~4 ГБ оперативной памяти и несколько ГБ свободного места на диске (HowtoForge).
  • Сеть: Открыты порты 80 (HTTP) и 443 (HTTPS) в брандмауэре (ufw или iptables) и/или проброшены на роутере (если сервер за NAT).
  • Доменное имя: У вас есть зарегистрированный домен или поддомен, указывающий на IP-адрес этого сервера.

2. Обновление системы

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

sudo apt update
sudo apt upgrade -y

3. Установка веб-сервера Apache

Установите Apache и модуль PHP для него.

sudo apt install apache2 libapache2-mod-php -y
sudo systemctl enable apache2
sudo systemctl start apache2

Проверьте, что Apache запущен и работает без ошибок:

sudo systemctl status apache2

4. Установка PHP и необходимых расширений

Установите PHP рекомендованной версии (на данный момент рекомендуется PHP 8.2 или 8.3) и полный набор модулей, необходимых для работы Nextcloud.

sudo apt install -y php php-gd php-curl php-zip php-xml php-mbstring \
php-mysql php-intl php-imagick php-bz2 php-bcmath php-gmp libmagickcore-dev

Примечание: Также могут понадобиться php-apcu (для локального кэширования) или php-fpm (если вы планируете использовать его вместо модуля Apache).

Настройка PHP.ini

Откройте файл конфигурации PHP для Apache (путь будет отличаться в зависимости от версии PHP, например, `/etc/php/8.2/apache2/php.ini`) и задайте следующие рекомендуемые параметры:

max_execution_time = 360
post_max_size = 100M (или больше, зависит от ваших потребностей)
upload_max_filesize = 100M (или больше, должно быть меньше или равно post_max_size)
memory_limit = 512M (минимум, рекомендуется 1G или больше)

5. Установка и настройка базы данных (MariaDB)

Установите сервер базы данных MariaDB.

sudo apt install mariadb-server -y
sudo systemctl enable mariadb
sudo systemctl start mariadb

Запустите скрипт безопасности, чтобы настроить пароль root, удалить анонимных пользователей и запретить удаленный вход root.

sudo mysql_secure_installation

Создание базы данных и пользователя для Nextcloud

Зайдите в консоль MySQL под root-пользователем:

sudo mysql -u root -p

Выполните следующие SQL-команды, заменив `StrongPasswordHere` на ваш надежный пароль:

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

6. Скачивание и установка Nextcloud

Перейдите в веб-корень сервера.

cd /var/www/html
sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2

Установите утилиту `unzip` (если скачивали .zip архив) или используйте `tar` для распаковки `.tar.bz2`.

# Если скачали .tar.bz2:
sudo tar -xjf latest.tar.bz2
sudo mv nextcloud /var/www/html/nextcloud

# Если скачали .zip:
# sudo apt install unzip -y
# sudo unzip latest.zip
# sudo mv nextcloud /var/www/html/nextcloud

Установите корректного владельца (пользователя веб-сервера `www-data`) и права доступа:

sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo chmod -R 755 /var/www/html/nextcloud

7. Настройка виртуального хоста Apache для Nextcloud

Создайте новый файл конфигурации для вашего сайта, например, `/etc/apache2/sites-available/nextcloud.conf`, заменив `your.domain.com` на ваш реальный домен:

<VirtualHost *:80>
    ServerName your.domain.com
    DocumentRoot /var/www/html/nextcloud

    <Directory /var/www/html/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted

        <IfModule mod_dav.c>
            Dav off
        </IfModule>
    </Directory>

    # Дополнительные настройки безопасности (рекомендуются):
    Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

Активируйте созданный сайт и необходимые модули Apache:

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime setenvif ssl
sudo systemctl reload apache2

8. Настройка HTTPS (SSL)

Рекомендуется сразу настроить HTTPS. Самый простой и бесплатный способ — использовать сертификаты от Let’s Encrypt с помощью утилиты Certbot.

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d your.domain.com

Следуйте инструкциям на экране. Certbot автоматически получит сертификат, настроит Apache и предложит настроить автоматическое перенаправление с HTTP на HTTPS (рекомендуется выбрать этот вариант).

После завершения перезагрузите Apache:

sudo systemctl reload apache2

9. Завершение установки через веб-интерфейс

Откройте браузер и перейдите по адресу `https://your.domain.com`. Вы увидите форму завершения установки Nextcloud.

  1. Создание учетной записи администратора: Укажите желаемое имя пользователя администратора и надежный пароль.
  2. Настройка хранилища и базы данных:
    • Пусть Nextcloud сохранит данные в папке по умолчанию (`/var/www/html/nextcloud/data`) или выберите другой путь (например, если вы храните данные на отдельном диске).
    • Выберите MySQL/MariaDB в качестве СУБД.
    • Укажите данные, которые вы создали на шаге 5:
      • Пользователь базы данных: `nextclouduser`
      • Пароль базы данных: Пароль, заданный вами (вместо `StrongPasswordHere`).
      • Название базы данных: `nextcloud`
      • Хост: `localhost`
  3. Завершение: Нажмите кнопку «Установить» (Install). Это может занять несколько минут.

10. Настройка доверенных доменов и базовая оптимизация

Доверенные домены

Иногда после установки Nextcloud может не пускать вас, ссылаясь на недоверенный домен. Чтобы добавить домен или IP-адрес вручную, используйте утилиту `occ`:

cd /var/www/html/nextcloud
sudo -u www-data php occ config:system:set trusted_domains 1 --value="your.domain.com"
# Если нужно добавить ещё один домен или IP, увеличьте индекс: 2, 3 и т.д.

Кэширование и оптимизация (рекомендуется)

Для значительного повышения производительности Nextcloud рекомендуется настроить кэширование:

  • OPCache в PHP: Убедитесь, что модуль `php-opcache` установлен и включен в `php.ini`.
  • Локальный кэш (APCu): Если вы установили `php-apcu`, добавьте `'memcache.local' => '\OC\Memcache\APCu',` в файл конфигурации `config/config.php`.
  • Распределенный кэш (Redis): Для больших инсталляций рекомендуется использовать Redis в качестве кэширующего бэкенда и для блокировки файлов (File Locking). (DigitalOcean)

Также рекомендуется:

  • Настроить точную оптимизацию параметров базы данных MariaDB под ваш объем ОЗУ.

11. Проверка и запуск

  1. Убедитесь, что при переходе по вашему домену (`https://your.domain.com`) вы видите замочек SSL и HTTP автоматически перенаправляется на HTTPS.
  2. Убедитесь, что вы можете войти в систему под созданным администратором.
  3. Попробуйте загрузить тестовый файл через веб-интерфейс.
  4. Проверьте логи Apache (`/var/log/apache2/error.log`) и логи Nextcloud (`data/nextcloud.log`), если что-то работает не так.

--- Если вы хотите автоматизировать этот процесс, я могу подготовить готовый сценарий (bash-скрипт) для установки Nextcloud на Debian/Ubuntu «под ключ». Хотите получить такой скрипт?