Nextcloud – платформа с открытым исходным кодом, предназначенная для хранения, синхронизации и совместной работы с файлами. Данный инструмент — альтернатива коммерческим облачным сервисам, таким как Google Drive, Dropbox или Microsoft OneDrive, но с акцентом на конфиденциальность, безопасность и самостоятельное развёртывание.
В статье разберём, как установить Nextcloud на виртуальный сервер, работающий под управлением Ubuntu 24.04.
Подготовка системы к установке
Nextcloud представляет собой веб-приложение, написанное на PHP, которое хранит данные в базе данных MySQL или MariaDB, и работает через веб-сервер – Apache или Nginx. Без установки этих компонентов систему нельзя запустить и, естественно, она не будет функционировать. Исходя из чего, инсталляция Nextcloud на своём VPS требует установки стека либо LAMP, либо LEMP, являющихся стандартными наборами инструментов для веб-серверов. В настоящем примере установку Nextcloud мы будем производить на виртуальную машину, на которой установлен стек LAMP, как это описано в посвящённой этому статье нашего справочника.
Помимо базовых компонентов PHP, проинсталлированных при установке LAMP, для корректного функционирования Nextcloud необходимо наличие в системе определённого набора обязательных PHP-расширений. Чтобы установить данные зависимости, выполните команду:
$ sudo apt install php8.3-xml php8.3-zip php8.3-mbstring php8.3-gd php8.3-curl
В число обязательных расширений входят:
php8.3-xml
– модуль обработки XML;php8.3-zip
– модуль работы с ZIP-архивами;php8.3-mbstring
– модуль многобайтовых строк;php8.3-gd
– графическая библиотека GD;php8.3-curl
– модуль cURL для выполнения сетевых запросов.
Далее, подключитесь к MySQL:
$ mysql -u root -p
И создайте базу данных и учётную запись для Nextcloud:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'P@ssword';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
В данном случае:
nextcloud
– имя БД;nextclouduser
– имя пользователя;P@ssword
– пароль пользователяnextclouduser
, вместо которого вам необходимо придумать и установить свой.
Как установить Nextcloud на Ubuntu
Рекомендуемым способом установки Nextcloud является ручная установка с использованием ZIP-архива, содержащего последнюю стабильную версию.
Дефолтная директория для веб-сайтов на сервере Apache – /var/www/
. По умолчанию веб-сервер на Ubuntu ищет сайты именно там. Поэтому, чтобы Apache мог найти Nextcloud, устанавливать его удобно в этот каталог. Исходя из этого, для установки Nextcloud перейдите в директорию /var/www/
:
$ cd /var/www/
На странице релизов Nextcloud размещены ссылки на различные его версии, в том числе на ZIP-архива с последней версией, который называется latest.zip
. При помощи утилиты wget
загрузите данный архив в текущий каталог:
$ sudo wget https://download.nextcloud.com/server/releases/latest.zip
Для распаковки ZIP-архива используется утилита unzip
. Если она не установлена в вашей системе, проинсталлируйте её при помощи пакетного менеджера apt
:
$ sudo apt install unzip
Затем распакуйте загруженный архив:
$ sudo unzip latest.zip
После чего измените владельца и группы для директории nextcloud
и всего её содержимого на www-data
– стандартного пользователя и группу веб-сервера Apache в Ubuntu. Это необходимо для того, чтобы Nextcloud имел права на чтение и запись в данном каталоге. Сделать это можно, выполнив команду:
$ sudo chown -R www-data:www-data nextcloud
Чтобы веб-сервер Apache мог корректно работать с Nextcloud, установите соответствующие права доступа на каталог nextcloud
и всё его содержимое:
$ sudo chmod -R 755 nextcloud
Загруженный архив с дистрибутивом Nextcloud больше не понадобится. Поэтому его можно удалить:
$ sudo rm latest.zip
Далее необходимо создать конфигурационный файл Nextcloud:
$ sudo nano /etc/apache2/sites-available/nextcloud.conf
Его содержимое должно быть примерно следующим:
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud
ServerName your-site-name.ru
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
В строке ServerName
замените your-site-name.ru
на доменное имя или IP-адрес вашего виртуального сервера.
Теперь активируйте конфигурацию виртуального хоста для Nextcloud на веб-сервере Apache:
$ sudo a2ensite nextcloud.conf
Далее активируйте необходимые для работы Nextcloud модули Apache:
rewrite
– модуль перезаписи URL;headers
– модуль управления HTTP-заголовками;env
– модуль переменных окружения;dir
– модуль работы с директориями;mime
– модуль MIME-типов.
Чтобы сделать это, запустите команду:
$ sudo a2enmod rewrite headers env dir mime
После чего проверьте корректность синтаксиса Apache:
$ sudo apache2ctl configtest
Вывод данной команды должен содержать строку Syntax OK
.

Затем перезапустите службу Apache:
$ sudo systemctl restart apache2
Проверьте состояние службы Apache:
$ systemctl status apache2
В выводе команды не должно присутствовать сообщений о каких-либо ошибках. Также должно быть указано, что служба запущена (active (running)
) и установлена в автозагрузку (enabled
).

Подключение к Nextcloud
Чтобы проверить работоспособность Nextcloud, откройте на своём локальном компьютере браузер и перейдите по ссылке http://your-site-name.ru
, где замените your-site-name.ru
на доменное имя или IP-адрес вашего виртуального сервера.

В открывшейся форме укажите:
- имя новой учётной записи администратора вашего экземпляра Nextcloud;
- пароль для создаваемого пользователя;
- имя пользователя базы данных Nextcloud, созданного ранее, –
nextclouduser
; - пароль пользователя
nextclouduser
; - имя базы данных –
nextcloud
; - сервер, на котором работает база данных –
localhost
.
На следующем шаге выберите приложения для установки, которые вы планируете использовать. Либо нажмите Пропустить
, если хотите установить их позже.

После чего вы попадёте на страницу дашборда Nextcloud.

Настройка HTTPS с Let’s Encrypt
Если для доступа к установленной платформе вы используете не IP-адрес вашего VPS, а доменное имя, то имеет смысл настроить защиту передаваемых данных с помощью шифрования трафика путём использования протокола HTTPS. Для Nextcloud, как облачного хранилища конфиденциальных файлов, этот аспект выглядит особенно актуально.
Настройка доступа к веб-ресурсу по HTTPS заключается в установке на сайт TLS-сертификата. Наиболее удобным вариантом получения такого сертификата является использование TLS-сертификата от Let’s Encrypt, который предоставляет бесплатные доверенные сертификаты с возможностью их автоматического продления.
Для настройки шифрования через HTTPS Let’s Encrypt предоставляет специализированный инструмент для работы с сертификатами – Certbot. Данный инструмент является официальным клиентом Let’s Encrypt, который автоматизирует получение, установку и обновление бесплатных TLS-сертификатов. Certbot самостоятельно выполняет аутентификацию домена, настраивает конфигурацию веб-сервера и активирует автоматическое продление сертификата, избавляя администратора сервера от рутинных операций.
Для установки Certbot запустите команду, которая помимо основного клиента Let’s Encrypt для работы с сертификатами инсталлирует плагин для интеграции Certbot с Apache, предназначенный для автоматической настройки виртуальных хостов:
$ sudo apt install certbot python3-certbot-apache
Следующая команда производит настройку HTTPS для вашего сайта:
$ sudo certbot --apache -d your-site-name.ru
В данной команде замените your-site-name.ru
на доменное имя, привязанное к IP-адресу вашего виртуального сервера.
Во время своей работы команда попросит вас указать адрес электронной почты для уведомлений о проблемах с сертификатами. После чего необходимо согласиться с условиями лицензионного соглашения и подписанием на новости EFF – некоммерческой организацией и партнёром-основателем проекта Let’s Encrypt. Затем Certbot запросит сертификат для вашего домена и после успешного сохранения настроит в шедулере задачу для его автоматического обновления в фоновом режиме.

После чего останется лишь добавить в брандмауэр UFW правило, разрешающее доступ к вашему серверу по протоколу HTTPS:
$ sudo ufw allow https
Чтобы убедиться в успешном завершении настройки шифрования трафика, обновите в браузере страницу вашего экземпляра Nextcloud. В строке навигации должно быть указано, что доступ к ней осуществляется с использованием протокола HTTPS.
