Установка Nextcloud на CentOS 7

Здравствуйте, уважаемые читатели. Сегодня статья на тему: "Установка Nextcloud на CentOS 7". В одной из предыдущих статей, мы рассматривали установку облачного хранилища ownCloud, в данной статье рассмотрим установку его аналога – продукта под названием Nextcloud.
Nextcloud – это бесплатное веб-приложение для хранения, обмена и удалённого доступа к файлам. Ссылка на официальный сайт продукта: https://nextcloud.com/

- На официальном сайте есть раздел с дополнительными компонентами, при помощи которых можно расширить функционал Nextcloud.

- Также есть разделы с документацией по установке и настройке, в которых можно найти ответы на интересующие вопросы.

- Скачать Nextcloud, или клиентские приложения, можно зайдя в соответствующий раздел.

Установка Nextcloud практически ничем не отличается от установки другого облачного хранилища OwnCloud.
--- Для установки и использования Nextcloud, необходима установка дополнительных компонентов:
- Веб-сервер.
- Сервер баз данных.
- PHP.
Будем использовать nginx+php-fpm , и mariadb.
Для установки каждого из компонентов, будем подключать дополнительные репозитории, так как во внутреннем репозитории находятся старые версии необходимых пакетов.
Для примера, в конфигурации я буду использовать домен oblako.ru, Вы измените на свой соответственно.
- Подключаем репозиторий epel-release, если он ещё не подключён.
# yum install epel-release
Установка веб-сервера
- Для установки веб-сервера NGINX, нужно подключить официальный репозиторий.
- Создаём файл nginx.repo в директории /etc/yum.repos.d/ с таким содержанием:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
- Теперь можно запустить установку веб-сервера.
# yum install nginx
- После завершения установки, запускаем nginx, и добавляем его в автозагрузку.
# systemctl start nginx
# systemctl enable nginx
Установка сервера баз данных
- Подключаем родной репозиторий MariaDB, путём создания файла mariadb.repo, в директории /etc/yum.repos.d/, с таким содержанием:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
- Запускаем установку сервера баз данных.
# yum install MariaDB-server MariaDB-client
- По завершении установки, запускаем mariadb и добавляем в автозагрузку.
# systemctl start mariadb
# systemctl enable mariadb
- Запускаем скрипт первоначальной настройки MariaDB, и производим настройку.
# /usr/bin/mysql_secure_installation
- После настройки, можно создать базу данных для нашего хранилища.
- Заходим под рутом, и выполняем нужные команды.
# mysql -u root –p
MariaDB [(none)]> create database oblako;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON oblako.* TO 'oblako'@'localhost' IDENTIFIED BY '123';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
— Первой командой — мы создаём базу данных (в моём случае – oblako).
— Второй командой — мы создаём пользователя для базы oblako. (в моём случае – пользователь oblako с паролем 123).
— Третьей командой — мы перезагружаем привилегии.
— Четвёртой командой — выходим из конфигурирования сервера баз данных.
Установка и настройка PHP
- Для установки PHP-7.3, подключаем репозиторий Remi.
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- Производим устновку дополнительных пакетов, для пакетного менеджера yum.
# yum install yum-utils
- Производим активацию remi-php73.
# yum-config-manager --enable remi-php73
- Теперь можно произвести установку необходимых пакетов.
# yum install php php-fpm php-pdo php-zip php-dom php-mcrypt php-intl php-gd php-mysql php-mbstring
- По завершении установки, производим настройку php-fpm.
- Открываем конфигурационный файл /etc/php-fpm.d/www.conf, и вносим в него изменения.
Находим и закомментируем строчку:
;listen = 127.0.0.1:9000
Под этой строчкой добавляем:
listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx
Находим строчки:
user = apache
group = apache
apache меняем на nginx
Находим и раскомментируем строчки:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
- Меняем права для временной папки.
# chown root:nginx /var/lib/php/session/ # chown -R nginx:nginx /var/lib/php/session/
- Запускаем, и добавляем в автозагрузку php-fpm.
# systemctl enable php-fpm
# systemctl start php-fpm
Настройка брандмауэра
- Для работы Nextcloud, необходимо открыть два порта 80 и 443, открываем их.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
- После внесения изменений, перезапускаем iptables.
# systemctl restart iptables
Настройка веб-сервера
- В директории /etc/nginx/conf.d, создаём конфигурационный файл, в моём случае это будет - oblako.ru.conf, и добавляем конфигурацию:
server { listen 80; server_name oblako.ru; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name oblako.ru; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/cert.key; root /var/www/html/nextcloud; access_log /var/log/nginx/oblako_access.log; error_log /var/log/nginx/oblako_error.log; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; client_max_body_size 10G; fastcgi_buffers 64 4K; rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; index index.php; error_page 403 = /core/templates/403.php; error_page 404 = /core/templates/404.php; location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } location / { rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; try_files $uri $uri/ index.php; } location ~ ^(.+?\.php)(/.*)?$ { try_files $1 = 404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$1; fastcgi_param PATH_INFO $2; fastcgi_param HTTPS on; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; } location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires modified +30d; access_log off; } }
Создание самоподписанного сертификата
- Так как мы будем использовать защищённое соединение, нам нужно создать удостоверяющие файлы.
# openssl req -new -x509 -days 1461 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key -subj "/C=RU/ST=Moscow/L=Moscow/O=Org/OU=OU/CN=oblako.ru"
Вы можете изменить регистрационные данные в команде, под свои.
- Задаём нужные права для созданных файлов.
# chmod 600 /etc/nginx/cert.pem
# chmod 600 /etc/nginx/cert.key
- Перезапускаем веб-сервер.
# systemctl restart nginx
Установка Nextcloud
- Производим установку необходимых пакетов.
# yum install wget
# yum install unzip zip
- Заходим в директорию /var/www/html.
# cd /var/www/html
- На официальном сайте, узнаём ссылку на скачивание последней версии Nextcloud, в моём случае это версия 18.0.1, и скачиваем архив.
# wget https://download.nextcloud.com/server/releases/nextcloud-18.0.1.zip
- Разархивируем архив с Nextcloud.
# unzip nextcloud-18.0.1.zip
- Добавляем необходимые права на директорию с Nextcloud.
# chown nginx:nginx -R /var/www/html/nextcloud/
- Создаём директорию для данных, вне директории nextcloud.
# mkdir -p /data
- Задаём необходимые права.
# chown nginx:nginx /data
- Теперь можно переходить к установке Nextcloud.
- Открываем браузер, и вводим своё доменное имя.
- Появится предупреждение о самоподписанном сертификате, так и должно быть, соглашаемся с предупреждением.
- Открывается форма создания учётной записи администратора, и подключения к базе данных.

- Создаём администратора, заполняем нужные данные, и меняем указанный каталог с данными, на каталог /data, созданный нами для этих целей.
- Жмём на «Завершить установку».
- Через какое-то время, открывается панель управления Вашим облачным хранилищем.
На этом установка Nextcloud завершена. Обзор функционала хранилища, можно посмотреть в видео по теме.
Сегодня мы рассмотрели тему: "Установка Nextcloud на CentOS 7". Произвели установку облачного хранилища Nextcloud. Смотрите также видео по теме.
Надеюсь статья была вам полезна. До встречи в новых статьях.
✍
С уважением, Андрей Бондаренко.
Видео на тему "Установка Nextcloud на CentOS 7":

WMZ-кошелёк = Z667041230317
«Linux»