Найти тему
Николай Калюжный

В этой статье вы узнаете, как установить и настроить NextCloud на Rocky Linux 9 для настройки вашего облака.

Оглавление

Что такое NextCloud?

Что ж, те, кто еще не знает, что NextCloud является ответвлением популярного OwnCloud, но становятся более популярными. Это также бесплатное персональное облачное решение с открытым исходным кодом и корпоративными решениями. Ключевым преимуществом использования такого программного обеспечения с открытым исходным кодом является то, что он позволяет пользователям безопасно хранить свои данные в облаке, но на сервере, принадлежащем им физически или виртуально. Следовательно, с точки зрения конфиденциальности, это отличная альтернатива проприетарным облачным решениям, таким как Dropbox или Google Drive, потому что пользователи имеют полный контроль над своими данными.

Как работает NextCloud?

NextCloud предоставляет две основные функции: синхронизацию хранилища между пользователями и шифрование содержимого файлов на стороне сервера, что обеспечивает конфиденциальность пользовательских данных. Для синхронизации NextCloud также предоставляет клиентские приложения, которые вы можете легко установить на соответствующие настольные операционные системы.

Синхронизация файлов синхронизирует все изменения, сделанные пользователем на рабочем столе, и будет воспроизводить их на сервере, а также на всех других устройствах, имеющих доступ к той же папке. В то время как шифрование на стороне сервера обеспечивает безопасность, что означает, что только персонализированный ключ пользователя может расшифровать его файлы, хранящиеся с помощью Nextcloud — никто другой (даже администраторы) не может прочитать зашифрованное содержимое без правильного ключа, предоставленного самим пользователем.

Преимущества использования NextCloud

Основным преимуществом использования Nextcloud является безопасность — если вы храните свои файлы у поставщиков услуг, таких как Google Drive или Dropbox, у вас нет контроля над тем, кто имеет к ним доступ или когда к ним обращаются.

Однако с Nextcloud вы всегда знаете, кто в данный момент имеет доступ к каким файлам и когда к ним в последний раз обращались (даже если они просматривали только список имен файлов).

Кроме того, поскольку вся информация хранится на вашем частном сервере (т.е. не в какой-либо инфраструктуре компании), вам никогда не придется беспокоиться о необходимости покупать дополнительное место для хранения, когда ваша месячная квота снова будет превышена — что вам обычно приходится делать при хранении у традиционного провайдера, такого как Google Drive или Dropbox, и т. д.

Наконец, поскольку NextCloud является программным обеспечением с открытым исходным кодом, оно позволяет частным лицам или организациям настраивать его функциональность гораздо проще, чем другие платформы облачного хранения, которые обычно предоставляют гораздо меньше возможностей для настройки, чем, например, решение с открытым исходным кодом (например, установка пользовательских правил доступа и т. д.).

Требования

Чтобы следовать этому руководству, нам понадобятся следующие вещи, в которых Apache, PHP и MySQL будут установлены нами в этом руководстве, но остальными требованиями должен обладать ваш сервер.

Rocky Linux 9
• Apache, PHP 8.0, 8.1, 8.2
• MySQL 8.0+ или MariaDB 10.2/10.3/10.4/10.5
• Доступ к пользователю sudo, не являющемуся привилегионным пользователем
• 512 МБ ОЗУ

Шаг 1: Выполните команду DNF update

Чтобы убедиться, что мы не столкнемся с какими-либо проблемами при установке NextCloud на Almalinux или Rocky Linux 9, давайте выполним команду обновления системы один раз. При этом будут установлены все последние обновления безопасности и пакетов, доступные для нашей серверной ОС Linux.

sudo dnf update

Также установите:

sudo dnf install wget nano unzip

Шаг 2: Отключите SELinux

Как только обновление будет завершено, также переведите SELinux в разрешительный режим, что означает временное отключение его до следующей перезагрузки. Это позволит убедиться в отсутствии нежелательных ограничений при установке NextCloud.

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Чтобы проверить статус:

sestatus

Шаг 3: Установите Apache, MySQL и PHP

Поскольку NextCloud на стороне сервера является веб-приложением на основе PHP, следовательно, нам необходимо создать среду веб-сервера на нашем Linux. Наиболее распространенными приложениями для этого являются Apache, MySQL для баз данных и PHP. Итак, следуйте приведенной команде для их установки.

1. Настройка веб-сервера Apache (httpd)

Apache является наиболее распространенным и легкодоступным веб-сервером из репозитория по умолчанию любого дистрибутива Linux, включая AlmaLinux и Rocky Linux. Поэтому на вашем командном терминале просто выполните следующие команды:

sudo dnf install httpd

Запуск и включение служб Apache

sudo systemctl enable --now httpd

Чтобы проверить статус:

systemctl status httpd --no-pager -l

Кроме того, откройте порты HTTP и HTTPS в вашей системе, чтобы мы могли получить доступ к странице NextCloud позже:

sudo firewall-cmd --permanent --add-service={http,https}

Перезагрузите брандмауэр

sudo firewall-cmd --reload

Чтобы убедиться в этом, мы можем проверить веб-страницу Apache по умолчанию. Для этого откройте браузер в вашей локальной системе, который может получить доступ к IP-адресу вашего сервера или домену.

Пример:

http://server-ip-address

Вы увидите что-то вроде ниже:

2. Установите сервер MySQL на Alma или Rocky

Мы можем использовать MariaDB или сервер базы данных MySQL на Almalinux 9 или Rocky Linux для хранения данных, которые будут сгенерированы NextCloud позже. Здесь мы устанавливаем MySQL 8.0, который доступен для загрузки из репозитория по умолчанию обоих этих дистрибутивов Linux на основе RPM.

sudo dnf install mysql mysql-server

Запустите сервер:

sudo systemctl enable --now mysqld

Для получения статуса услуги:

systemctl status mysqld --no-page -l

3. Создайте базу данных для NextCloud

Давайте также создадим базу данных для использования с NextCloud на сервере MySQL, вот команды SQL, которым нужно следовать:

sudo mysql

Логин:

mysql -u root -p

Создайте базу данных пользователя:

CREATE USER 'youruser'@'localhost' IDENTIFIED BY "yourpassword";

Создать БД:

CREATE DATABASE yourdb;

Предоставьте всем правам созданной БД на использование:

GRANT ALL PRIVILEGES ON yourdb.* TO 'youruser'@'localhost';

FLUSH PRIVILEGES;

exit;

Примечание: Замените yourdb на имя базы данных, которое вы хотите присвоить, в то время как youruser на имя пользователя, а yourpassword на пароль, который вы хотите назначить.

4. Скачайте PHP 8.1

Стандартная версия PHP, доступная через системный репозиторий AlmaLinux или Rocky, - это PHP 8.0, однако здесь мы будем использовать PHP 8.1. Итак, добавьте сторонний репозиторий Remni вручную, чтобы получить последние версии языка PHP.

sudo dnf install epel-release

sudo dnf -y install http://rpms.remirepo.net/enterprise/remi-release-9.rpm

sudo dnf update

sudo dnf module reset php

sudo dnf module enable php:remi-8.1

-2

Установите PHP и его расширения, необходимые для NextCloud:

Теперь запустите данную команду в вашем терминале, чтобы установить не только PHP, но и его расширения.

sudo dnf install php php-{cli,mysqlnd,zip,devel,gd,mcrypt,mbstring,curl,xml,pear,bcmath,json,pdo,pecl-apcu,pecl-apcu-devel,ldap}

-3

Не забудьте включить и запустить сервис PHP-FPM, необходимый для NextCloud.

sudo systemctl enable --now php-fpm.service

Увеличьте лимит памяти PHP:

sudo sed -i "s/memory_limit = .*/memory_limit = 512M /" /etc/php.ini

Перезапустите сервер Apache:

sudo systemctl restart httpd

Шаг 4: Загрузите сервер Nextcloud

На данный момент мы создали среду веб-сервера вместе с другими требованиями NextCloud. Теперь давайте скачаем его установочные файлы, доступные в архивном формате этого облачного программного обеспечения, с его официального сайта. Мы можем использовать данную команду, чтобы быстро получить его, не посещая страницу загрузки.

wget https://download.nextcloud.com/server/releases/latest.zip

Шаг 5: Установите NextCloud в Rocky Linux 9

После загрузки установочных файлов Nextcloud распакуйте файл с помощью указанной команды.

unzip latest.zip

Переместите извлеченный файл в каталог /var/www/html/

sudo mv nextcloud/ /var/www/html/

Создайте папку с данными для хранения загруженных данных в Nextcloud

sudo mkdir /var/www/html/nextcloud/data

Теперь предоставьте пользователю Apache права доступа к папке Nextcloud:

sudo chown apache:apache -R /var/www/html/nextcloud

Шаг 6. Создание файла Apache VirtualHost для NextCloud

Давайте создадим конфигурационный файл Apache для NextCloud на Almalinux или Rocky, чтобы обслуживать его в случае, если вы используете доменное имя или несколько веб-сайтов, работающих на одном сервере.

sudo nano /etc/httpd/conf.d/nextcloud.conf

Вставьте следующие строки:

Примечание: Не забудьте заменить cloud.example.com на доменное имя, которое вы хотите использовать. Если у вас их нет, то оставьте все как есть.

<VirtualHost *:80>

ServerName cloud.example.com
ServerAdmin admin@example.com

DocumentRoot /var/www/html/nextcloud

<directory /var/www/html/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</directory>

</VirtualHost>

Перезапустите веб-сервер Apache и установите политики SELinux:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html(/.*)?"

sudo sudo restorecon -Rv /var/www/html

sudo systemctl restart httpd

Шаг 7. Доступ к веб-интерфейсу NextCloud

После того, как все вышеуказанные шаги будут выполнены, вы готовы получить доступ к веб-интерфейсу для дальнейшей настройки NextCloud на вашей системе Rocky или AlmaLinux 9.

Откройте браузер, который может получить доступ к домену или IP-адресу сервера, на котором вы установили NextCloud. После этого укажите на Ip или домен:

http://your-server-ip-address
or
http://your-domain.com

Создайте пользователя Admin и введите Database Details (Данные базы данных)

На первой странице вам будет предложено создать пользователя Admin, а затем выбрать MySQL/MariaDB в качестве базы данных. Там введите данные созданной вами базы данных.

После этого нажмите на кнопку «УСТАНОВИТЬ».

-4

Шаг 8. Войти в панель управления NextCloud

Когда у вас появится страница входа, введите данные созданного вами пользователя администратора и войдите в систему, чтобы получить панель управления NextCloud для загрузки файлов.

-5

Шаг 9. Команда для обновления NextCloud

В будущем, если вы захотите легко обновить свой NextCloud с помощью этой команды, то вот одна из них, которой следует следовать:

Редактировать php.ini

sudo nano /etc/php.ini

Прокрутите файл до конца и добавьте строку:

--define apc.enable_cli=1

Сохраните файл с помощью клавиш Ctrl+O, нажмите клавишу Enter, а затем нажмите Ctrl+X

После того, как вы добавили его, выполните эту команду, чтобы проверить обновления NextCloud, когда они доступны для установки.

sudo -u apache php --define apc.enable_cli=1 /var/www/html/nextcloud/updater/updater.phar

Шаг 10. Установка сертификата SSL для NextCloud (опционально)

Тем, кто также хочет установить SSL-сертификат, необходимо выполнить следующие команды:

Примечание: Убедитесь, что в DNS вашего домена запись "A" указывает на IP-адрес, на котором вы установили NextCloud.

sudo dnf -y install certbot mod_ssl

sudo certbot certonly --standalone -d cloud.example.com --preferred-challenges http --agree-tos -n -m admin@exampl.com --keep-until-expiring

После успешного выпуска SSL-сертификата отредактируйте существующую конфигурацию Apache:

sudo nano /etc/httpd/conf.d/nextcloud.conf

Удалите существующую конфигурацию и добавьте следующую. И не забудьте заменить cloud.example.com на доменное имя, которое вы хотите использовать для доступа к NextCloud.

<VirtualHost *:80>
ServerName files.example.com
ServerAdmin admin@example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost *:443>

ServerName cloud.example.com
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud

<directory /var/www/html/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</directory>

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/cloud.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/cloud.example.com/privkey.pem

</VirtualHost>
</IfModule>

Сохраните файл, нажав Ctlr+O, нажмите клавишу Enter, а затем выйдите из файла, нажав Ctrl+X.

Перезапустите веб-сервер:

sudo systemctl restart httpd

На этом установка завершена и вы можете приступить к работе с системой.

Не забудьте в файле sudo nano /var/www/html/nextcloud/config/config.php поправить доступ к системе

'trusted_domains' =>
array (
0 => 'cloud.example.com', #Здесь должно быть ваше доменное имя или доверенный IP адрес для доступа к Nextcloud
),