Установка NextCloud
Установка NextCloud
В этой шпаргалке будет кратко показано, как выполняется установка NextCloud – файлового сервера, который предоставляет возможность получения веб доступа к вашим файлам через веб интерфейс.
Предварительные требования
Полный перечень предварительных требований приведен в официальной документации.
Кратко основные требования приведены ниже:
Параметр | Значение |
Операционная система | Ubuntu 22.04 LTS (рекомендуется) Ubuntu 20.04 LTS Red Hat Enterprise Linux 8 (рекомендуется) Debian 11 (Bullseye) SUSE Linux Enterprise Server 15 openSUSE Leap 15.4 CentOS Stream |
База данных | MySQL 8.0+ or MariaDB 10.3/10.4/10.5/10.6 (рекомендуется) Oracle Database 11g PostgreSQL 10/11/12/13/14/15 SQLite (только для тестирования) |
Веб сервер | Apache 2.4 с модулями mod_php или php-fpm (рекомендуется) nginx с модулем php-fpm |
PHP | 8.0 (устарело) 8.1 8.2 (рекомендуется) |
Как обычно, будет использоваться Ubuntu Server 22.04.
Подготовка сервера баз данных
Установим сервер MariaDB:
sudo apt install -y mariadb-server
Настроим автоматический запуск и проверим, что сервер запущен:
sudo systemctl enable mariadb
sudo systemctl status mariadb

Выполним первоначальную настройку сервера MariaDB:
sudo mysql_secure_installation
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Создадим отдельного пользователя и базу данных
mysql -u root -p
CREATE USER 'ncuser'@'localhost' IDENTIFIED BY 'Qwerty123';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'ncuser'@'localhost';
FLUSH PRIVILEGES;
exit

Подготовка сервера для установки NextCloud
Теперь подготовим сам сервер:
sudo apt install -y apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip
Хранение данных будет на отдельном выделенном диске в каталоге /data.

Создадим раздел на диске и подготовим директорию для монтирования:
sudo mkfs.ext4 /dev/sdb
sudo mkdir /data
Определим UUID диска – он понадобится нам для монтирования:
sudo blkid

Настроим запись для монтирования устройства /dev/sdb в каталог /data:
nano /etc/fstab
Добавим соответствующую строчку:
UUID="c59438b7-b489-4138-9df1-5fa981ef800c" /data ext4 defaults 0 1

Проверим, что монтирование выполняется без ошибок (в противном случае могут быть проблемы с загрузкой сервера):
sudo mount -a
df -h

Как видно из скриншота выше – монтирование выполнено успешно.
Установка NextCloud
Теперь перейдем непосредственно у установке NextCloud.
Сначала загрузим установщик сервера для коммунити редакции. Перейдите на сервер NextCloud и выполните загрузку дистрибутива:
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
Распакуйте архив:
tar -xjvf latest.tar.bz2
Создадим директорию для данных NextCloud сервера и скопирует туда все файлы дистрибутива:
sudo mkdir -p /data/nextcloud
sudo cp -r nextcloud/ /data/
Теперь необходимо изменить владельца для всего каталога /data/nextcloud:
sudo chown -R www-data:www-data /data/nextcloud
Теперь необходимо выполнить настройки веб сервера Apache. Создадим конфигурационный файл для нашего сайта с NextCloud:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Здесь будет использоваться конфигурацию с виртуальными директориями:
<VirtualHost *:80>
DocumentRoot /data/nextcloud/
ServerName files.itproblog.ru
<Directory /data/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
В конфигурационном файле выше есть несколько важных параметров:
Параметр | Значение |
DocumentRoot | Путь к директории, куда вы скопировали файлы с дистрибутивом сервера NextCloud |
ServerName | Имя, по которому сервер NextCloud будет доступен |
Directory /data/nextcloud/ | Содержит настройки для директории /data/nextcloud/ |
Сохраняем внесенные изменения и публикуем сайт:
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2

Дополнительно необходимо включить некоторые модули Apache:
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo systemctl restart apache2
Мы выполнили все шаги по подготовке и теперь можем продолжить установку через веб. Перейдите по имени, которое вы указали в конфигурационном файле:
http://files.itproblog.ru
Отобразится стартовая страница мастера установки. Укажите параметры подключения к базе данных и расположение дистрибутива сервера NextCloud:

Дождитесь окончания процесса установки.
Установку рекомендуемых приложений пропустим:

После завершения процесса установки вы должны попасть на главную страницу сервиса NextCloud:

Установка NextCloud завершена.