8.2.7 Развертывание NextCloud на сервере

The Host NextCloud Banner

NextCloud — современная open-source альтернатива Google Drive, Dropbox и Яндекс.Диск для частного или корпоративного облака. Позволяет хранить, синхронизировать и совместно использовать файлы с любых устройств.

Подготовка сервера

Требования

  • Виртуальный или выделенный сервер (VPS/VDS) с Ubuntu 22.04 или 24.04 LTS.
  • CPU: 2+ ядра.
  • RAM: от 4 ГБ (рекомендуется 8 ГБ для команды).
  • SSD-диск (объем — по потребностям хранения).
  • root-доступ (или sudo).
  • Доменное имя (для корректного HTTPS).

Установка и настройка компонентов

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

sudo apt update && sudo apt upgrade -y
sudo apt install apache2 mysql-server libapache2-mod-php \
php php-mysql php-xml php-gd php-curl php-zip php-mbstring \
php-intl php-bcmath php-gmp php-imagick php-redis redis-server unzip curl -y

update upgrade sys Install dep

Для поддержки HTTPS рекомендуется установить certbot. Подробности по установке Certbot вы можете узнать из нашей общей инструкции.

Настройка MySQL для NextCloud

  1. Войдите в MySQL:
 mysql -u root -p
  1. Выполните поочередно:
 CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'СЛОЖНЫЙ_ПАРОЛЬ';
 GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
 FLUSH PRIVILEGES;
 EXIT;

Пояснение: Имя базы, пользователя и пароль выбирайте сложными и уникальными — они используются только для NextCloud.

Загрузка и установка NextCloud

  1. Перейдите в директорию для веб-приложения:
 cd /var/www/
  1. Скачайте и распакуйте дистрибутив:
 sudo curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
 sudo unzip nextcloud.zip
 sudo chown -R www-data:www-data nextcloud
 sudo chmod -R 755 nextcloud

Зачем это нужно: Права доступа www-data обязательны для работы Apache и безопасной загрузки файлов.

Настройка Apache под NextCloud

  1. Создайте конфиг-файл сайта:

    sudo nano /etc/apache2/sites-available/nextcloud.conf
    
  2. Вставьте:

    <VirtualHost *:80>
      ServerName cloud.example.com
    
      DocumentRoot /var/www/nextcloud/
      <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
      CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
    </VirtualHost>
    

    — где cloud.example.com — ваш домен (или IP для теста).

  3. Активируйте сайт и модули:

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

    a2ensite

  4. Откройте конфиг Apache и отредактируйте строку Allowoverride:

Настройка HTTPS

  1. Получите бесплатный сертификат:

    sudo certbot --apache -d cloud.example.com
    

certbot_install

  1. Следуйте инструкциям, дождитесь сообщения Congratulations!.

certbot_apache_activate

Важно! Не используйте NextCloud без HTTPS — ваши файлы могут быть перехвачены!

Завершение установки NextCloud

  1. Откройте браузер и перейдите на ваш домен (например, http://cloud.example.com).

  2. Заполните поля:

    • Имя администратора и пароль (любые, создаёте нового пользователя)
    • База данных: MySQL/MariaDB
    • Имя пользователя: nextcloud
    • Пароль: (ваш СЛОЖНЫЙ_ПАРОЛЬ)
    • Имя базы: nextcloud
    • Сервер БД: localhost

webinterface_setup

  1. Нажмите “Установить”. После входа — настройте приложения, интеграции, лимиты загрузки и т.д.

Если в предыдущих шагах всё было сделано верно Вы должны увидеть следующую страницу:

webinterface nextcloud


Типичные проблемы и быстрые решения
Проблема Причина Решение
Не найден PHP-модуль Не установлен/неактивен нужный модуль sudo apt install php-имя_модуля, перезапустить Apache
502/504 Gateway Timeout Недостаточно RAM или маленькие лимиты PHP Увеличьте RAM, настройте лимиты (php.ini: memory_limit, max_execution_time)
Нет прав на запись Неправильные права или владелец каталога NextCloud sudo chown -R www-data:www-data /var/www/nextcloud
Не удаётся подключиться к MySQL Ошибка доступа/служба MySQL не запущена Проверьте логин/пароль, имя базы и статус: sudo systemctl status mysql
Ошибка SSL/сертификата Проблемы с сертификатом/доменом или DNS Запустите certbot повторно, проверьте DNS-записи и корректность домена

Ссылки на официальную документацию и ресурсы