Что такое 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
Установите 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}
Не забудьте включить и запустить сервис 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 в качестве базы данных. Там введите данные созданной вами базы данных.
После этого нажмите на кнопку «УСТАНОВИТЬ».
Шаг 8. Войти в панель управления NextCloud
Когда у вас появится страница входа, введите данные созданного вами пользователя администратора и войдите в систему, чтобы получить панель управления NextCloud для загрузки файлов.
Шаг 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
),