Установка 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
PHP8.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 завершена.

Установка NextCloud: 2 комментария

  1. При обновлении через браузер процесс останавливается на шаге “delete old files”.
    Как обновлять такую установку?

    1. Добрый день! Скорее всего учетной записи, от которой работает сервер NextCloud, не хватает разрешений для удаления старых файлов. Через браузер я обновлял NextCloud, на котором работает как несколько сотен пользователей, так и меньше сотни пользователей. Обновление через браузер точно должно работьать на небольших инсталяциях. Только один раз на моей практике были проблемы с недостаточными разрешениями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *