Установка Nextcloud на Ubuntu 22.04
- Это пошаговое руководство покажет, как установить Nextcloud на сервер с Ubuntu 22.04 с Apache, MariaDB и SSL от Let’s Encrypt. Замена next.example.com на ваш реальный домен и настройка резервного копирования обязательны.
- Включены команды, конфигурации PHP/Apache, создание базы данных, настройка виртуального хоста, выпуск SSL-сертификата и рекомендации по безопасности.
Введение

Nextcloud — свободное и открытое решение для хранения, синхронизации и совместной работы с файлами. В отличие от общедоступных облаков (Dropbox, Google Drive, iCloud), Nextcloud можно установить на собственный сервер, что даёт полный контроль над данными и повышенную приватность.
В этом руководстве показана установка Nextcloud на сервер с Ubuntu 22.04, используя стек Apache + PHP + MariaDB и защищая сайт сертификатом Let’s Encrypt.
Требования
- Сервер с Ubuntu 22.04 (доступ по root или sudo-пользователю).
- Зарегистрированный домен, указывающий на IP сервера (например, next.example.com).
- Настроенный пароль root или учетная запись с правами sudo.
Важно: в примерах заменяйте next.example.com и пароли на ваши значения.
Основные шаги установки (кратко)
- Установить LAMP-пакеты: Apache, MariaDB, PHP и расширения.
- Настроить параметры PHP (memory_limit, upload_max_filesize и др.).
- Создать базу данных и пользователя для Nextcloud в MariaDB.
- Скачать и разместить файлы Nextcloud в /var/www/html/nextcloud.
- Настроить виртуальный хост Apache.
- Дать права файлам и перезапустить Apache.
- Пройти веб-инсталляцию и затем включить SSL через Certbot.
Установка Apache, PHP и MariaDB
Если LAMP ещё не установлен, выполните одну команду для базовых пакетов и необходимых PHP-расширений:
apt install apache2 mariadb-server php php-cli php-fpm php-json php-intl php-imagick php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath apache2 libapache2-mod-php -yПосле установки отредактируйте основной php.ini для Apache (в примере PHP 8.1):
nano /etc/php/8.1/apache2/php.iniИзмените или добавьте следующие строки (рекомендуемые значения для Nextcloud):
date.timezone = UTC
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300Сохраните файл и перезапустите Apache:
systemctl restart apache2Примечание: если у вас другой путь к php.ini или другая версия PHP — используйте соответствующий путь.
Создание базы данных для Nextcloud
Подключитесь к MariaDB:
mysqlВыполните команды для создания базы и пользователя (замените ‘password’ на надёжный пароль):
CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' identified by 'password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
QUIT;Совет: используйте сложный пароль и, при желании, ограничьте доступ по IP для повышенной безопасности.
Загрузка и размещение Nextcloud
На момент написания оригинального руководства использовалась версия 24.0.1. Вместо жёстко зашитой версии рекомендуется проверять актуальную версию на официальном сайте и менять имя файла при скачивании:
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.1.zip
unzip nextcloud-24.0.1.zip
mv nextcloud /var/www/html/Установите владельца и права:
chown -R www-data:www-data /var/www/html/nextcloud
chmod -R 775 /var/www/html/nextcloudПояснение: www-data — стандартный пользователь Apache; права 775 позволяют владельцу и группе изменять файлы, остальные — только читать и выполнять.
Создание виртуального хоста Apache
Создайте файл конфигурации:
nano /etc/apache2/sites-available/next.confПример содержимого:
ServerAdmin [email protected]
DocumentRoot /var/www/html/nextcloud
ServerName next.example.com
ErrorLog /var/log/apache2/nextcloud-error.log
CustomLog /var/log/apache2/nextcloud-access.log combined
Options +FollowSymlinks
AllowOverride All
Require all granted
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
Dav off
Активируйте сайт и необходимые модули, затем перезапустите Apache:
a2ensite next
a2enmod rewrite dir mime env headers
systemctl restart apache2
systemctl status apache2Если при проверке статуса видите Active: active (running), Apache работает корректно.
Доступ к веб-интерфейсу Nextcloud
Откройте в браузере https://next.example.com (или http:// если ещё нет HTTPS) и пройдите шаги веб-инсталляции.


Заполните имя администратора, пароль, данные подключения к базе (host: localhost, имя базы, пользователь и пароль), затем нажмите Install.

Нажмите «Install recommended apps», чтобы установить базовый набор плагинов.

Перейдите в «All files» для просмотра файлового пространства:

Откройте раздел «Your photos» для работы с фото:

Включение SSL для Nextcloud
Установите Certbot для Apache:
apt-get install python3-certbot-apache -yЗапустите Certbot для выпуска сертификата (замените домен на ваш):
certbot --apache -d next.example.comСледуйте интерактивным подсказкам (введите email, согласитесь с TOS, выберите перенаправление на HTTPS). После успешной выдачи вы увидите путь к сертификату в /etc/letsencrypt/live/next.example.com/.
Совет: проверьте конфигурацию на https://www.ssllabs.com/ssltest/.
Безопасность и жёсткая настройка (рекомендации)
- Ограничьте доступ к базе данных только локальным соединениям и используйте сильные пароли.
- Включите автоматическое обновление безопасности или регулярно обновляйте пакеты: apt update && apt upgrade.
- Настройте брандмауэр (ufw): откройте порты 80 и 443, закройте неиспользуемые.
- Включите двухфакторную аутентификацию для админов Nextcloud.
- Снабдите сервер мониторингом и логированием (fail2ban для защиты от брутфорса).
- Настройте резервное копирование: резервируйте и файлы Nextcloud, и базу данных, и каталог конфигурации.
Альтернативные подходы
- Nginx вместо Apache: предпочтителен для высоких нагрузок и лёгкой настройки обратного прокси.
- Docker или Docker Compose: быстрое развёртывание и изоляция.
- Snap-пакет Nextcloud: обеспечивает быструю установку и автоматические обновления, но может иметь отличия в настройке и расширениях.
Когда рассмотреть альтернативу: если требуется контейнеризация, масштабирование или специфичная версия PHP — Docker/Nginx могут быть предпочтительнее.
Миграция и совместимость
- При переходе с другой инсталляции убедитесь, что версии Nextcloud совместимы.
- Перед обновлением делайте полную резервную копию данных и базы.
- Проверьте совместимость PHP-расширений и рекомендуемые версии PHP на сайте Nextcloud.
Критерии приёмки
- Веб-интерфейс Nextcloud доступен по HTTPS без предупреждений браузера.
- Веб-инсталляция завершилась успешно, пользователь-админ может войти.
- Файлы можно загружать и скачивать, синхронизация клиента работает.
- Резервное копирование базы данных и каталога данных настроено и протестировано.
Тесты и контроль качества
- Попробуйте загрузить файл >100 МБ и убедитесь, что переданные значения upload_max_filesize и post_max_size позволяют это.
- Проверьте восстановление из резервной копии на тестовом сервере.
- Выполните проверку SSL (SSL Labs) и исправьте предупреждения.
- Проверьте логи Apache и Nextcloud на предмет ошибок после установки.
Роли и чек-листы
Администратор сервера:
- Проверить обновления OS и PHP.
- Настроить брандмауэр и fail2ban.
- Настроить резервное копирование.
Администратор Nextcloud:
- Создать учетные записи пользователей и группы.
- Включить и настроить рекомендуемые приложения.
- Контролировать квоты и доступ.
Пользователь:
- Проверить синхронизацию клиентами (Windows/Mac/Linux/Android/iOS).
- Настроить двухфакторную аутентификацию при необходимости.
Когда это может не сработать
- DNS не указывает на сервер — Certbot и доступ по домену не будут работать.
- Порт 80/443 закрыт на уровне провайдера или брандмауэра — Certbot не сможет пройти проверку.
- Неправильные права файлов или владелец — веб-инсталляция выдаст ошибки прав доступа.
Простая методология развёртывания (шаги)
- Подготовка сервера и домена.
- Установка LAMP и PHP-расширений.
- Настройка PHP опций.
- Создание базы данных.
- Размещение файлов Nextcloud и права.
- Настройка виртуального хоста Apache.
- Веб-инсталляция и тесты.
- Выпуск SSL и финальная проверка.
Краткий глоссарий
- Nextcloud — ПО для хранения и синхронизации файлов.
- Apache — веб-сервер.
- MariaDB — реляционная СУБД, аналог MySQL.
- Certbot — утилита для получения сертификатов Let’s Encrypt.
FAQ
Q: Как продлить SSL автоматически?
A: Certbot автоматически добавляет cron/системный таймер для обновления; вы также можете проверить вручную: certbot renew –dry-run.
Q: Можно ли использовать PostgreSQL вместо MariaDB?
A: Да, Nextcloud поддерживает PostgreSQL; нужно установить соответствующий драйвер и создать базу/пользователя.
Q: Как увеличить лимит загрузки позже?
A: Измените значения upload_max_filesize и post_max_size в php.ini и перезапустите Apache.
Заключение
Поздравляем — Nextcloud установлен на Ubuntu 22.04 и защищён HTTPS. Дальше настройте резервное копирование, мониторинг и политики доступа. Для продакшена рекомендуется тестовое восстановление резервных копий и регулярное обновление.
Важно
- Всегда тестируйте изменения на непроизводственной среде перед применением в продакшене.
- Храните секреты и бэкапы в безопасном месте.
Ссылки для проверки и отладки:
- https://www.ssllabs.com/ssltest/ — проверка SSL-конфигурации.
- Официальная документация Nextcloud для продвинутых сценариев и требований.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента