3.9.13.1.2 Настройка NextCloud с СУБД PostgreSQL и ПО для веб-сервера Ngnix
Предварительная подготовка сервера
Настройка SELinux
Установка Nextcloud
Установка PostreSQL14
Настройка PostreSQL
Настройка Nginx
Настройка Nextcloud
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция, Сервер графический
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: nextcloud-29.0.12-1, nginx-1.28.0-1, postgresql14-server-14.18-1
Nextcloud — набор клиент-серверных программ для создания и использования облачного хранилища. Nextcloud можно установить как на хосте, так и на собственном сервере.
Nextcloud позволяет совместно работать с офисными документами, файлами и информацией для планирования задач и мероприятий. Платформа также включает надстройки для доступа к электронной почте, обмена сообщениями, организации видеоконференций и чатов.
В Nextcloud есть выбор различных СУБД, в статье будет рассмотрена СУБД PostgreSQL, а в качестве ПО для веб-сервера будет выбран Nginx.
PostgreSQL — свободная объектно-реляционная система управления базами данных.
Nginx ― это программное обеспечение с открытым исходным кодом, которое позволяет создавать веб-сервер.
Ранее мы также рассмотрели настройку NextCloud с СУБД MySQL и ПО для веб-сервера Apache в статье «Настройка NextCloud с СУБД MySQL и ПО для веб-сервера Apache».
Предварительная подготовка сервера
Перейдите в сеанс пользователя root:
su -
Здесь и далее команды будут выполняться с правами пользователя root, если не указано иное.
Настройка SELinux
Настройте SELinux:
setsebool -P httpd_can_network_connect 1 setsebool -P httpd_graceful_shutdown 1 setsebool -P httpd_can_network_connect_db 1 setsebool -P daemons_dump_core 1
Установка Nextcloud
Установка nextcloud для РЕД ОС осуществляется командой:
dnf install nextcloud nextcloud-postgresql nextcloud-nginx
Установка PostreSQL14
Установите PostgreSQL:
dnf install postgresql14-server
Настройка PostreSQL
Выполните инициализацию:
/bin/postgresql-14-setup initdbЗапустите сервер и добавьте в автозагрузку PostgreSQL, проверьте статус:
systemctl enable postgresql-14 --now systemctl status postgresql-14
Зайдите под пользователем PostgreSQL:
su - postgres
Подключитесь к базе:
psql
Затем создайте пользователя и базу данных с именем nextcloud и предоставьте пользователю права на использование данной БД (пароль укажите свой):
CREATE ROLE nextcloud WITH NOSUPERUSER LOGIN PASSWORD 'nextcloudpassword';
CREATE DATABASE nextcloud WITH OWNER nextcloud;
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud;Пример результата выполнения запросов:
postgres=# CREATE ROLE nextcloud WITH NOSUPERUSER LOGIN PASSWORD 'nextcloudpassword';
CREATE ROLE
postgres=# CREATE DATABASE nextcloud WITH OWNER nextcloud;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud;
GRANTТестовый запрос на получение списка баз данных:
\l
Выход из оболочки:
\q
Выйдите из текущей учетной записи:
exit
Добавьте разрешение для подключения:
nano /var/lib/pgsql/14/data/postgresql.confПриведите строку к следующему виду:
listen_addresses = '*' Затем раскомментируйте строку:
#port = 5432 Отредактируйте файл pg_hba.conf, приведя строки IPv4 и IPv6 к следующему виду:
nano /var/lib/pgsql/14/data/pg_hba.conf
# or execute "SELECT pg_reload_conf()".
#
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 scram-sha-256
host replication all ::1/128 scram-sha-256 Затем выполните перезапуск демона PostgreSQL:
systemctl restart postgresql-14
Настройка Nginx
Запустите веб-сервер Nginx:
systemctl enable nginx --now systemctl status nginx
Определите протокол передачи данных, который будет использоваться для работы с NextCloud — HTTP или HTTPS — и выполните соответствующую настройку.
Приведите файл nginx.conf к следующему виду:
nano /etc/nginx/nginx.conf
....
server {
listen 80;
listen [::]:80;
server_name <ip_сервера>; #укажите IP-сервера
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
sendfile on;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
} Предварительно подготовьте сертификаты. Подробную информацию о подготовке сертификатов см. в разделе «Генерация сертификата» нашей инструкции «Настройка SSL для веб-серверов».
Отредактируйте файл nginx.conf:
nano /etc/nginx/nginx.conf
закомментируйте секцию
serverс настройкой подключения на порту80:# server {
# listen 80;
# listen [::]:80;
# server_name _;
# root /usr/share/nginx/html;
# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
# }раскомментируйте секцию
serverс настройкой подключения на порту443и приведите ее к следующему виду:# Settings for a TLS enabled server.
#
server {
listen 443 ssl default_server; # добавьте параметр default_server
listen [::]:443 ssl default_server; # добавьте параметр default_server
# http2 on;
server_name redsite; # укажите имя сервера БЕЗ доменной области
proxy_connect_timeout 600s; # добавьте строку
proxy_send_timeout 600s; # добавьте строку
proxy_read_timeout 600s; # добавьте строку
fastcgi_send_timeout 600s; # добавьте строку
fastcgi_read_timeout 600s; # добавьте строку
sendfile on; # добавьте строку
# root /usr/share/nginx/html;
#
ssl_certificate "/etc/ssl/certs/redsite.crt";
ssl_certificate_key "/etc/ssl/private/redsite.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; # раскомментируйте строку
} # раскомментируйте строку
}сохраните внесенные изменения и закройте файл.
В файле /etc/nextcloud/config.php добавьте параметр 'overwrite.cli.url' и укажите адрес сервера:
'overwrite.cli.url' => 'https://<IP-адрес_сервера>/nextcloud'Выполните проверку настроек Nginx:
nginx -t
Вывод должен быть вида:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите веб-сервер:
systemctl restart nginx
Откройте файл php.ini и приведите параметры к следующему виду:
nano /etc/php.ini
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 3600
max_input_time = 3600
max_input_vars = 1000 #расскоментировать строку
memory_limit = 512M
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
upload_tmp_dir = /tmp/
Настройка Nextcloud
Создайте пустой файл CAN_INSTALL для разрешения установки:
touch /usr/share/nextcloud/config/CAN_INSTALL
Назначьте владельцем каталога nextcloud пользователя apache:
sudo chown -R apache:apache /usr/share/nextcloud
Настройте SELinux:
chcon -R -t httpd_sys_rw_content_t /usr/share/nextcloud
В браузере, в зависимости от настроенного типа подключения (HTTP или HTTPS), перейдите по ссылке вида — http://<IP-адрес_сервера>/nextcloud или https://<IP-адрес_сервера>/nextcloud.
На данном этапе необходимо создать учетную запись администратора и выбрать в поле «Хранилище и база данных» - «PostgreSQL».
Укажите следующие данные для подключения:
пользователь базы данных – nextcloud;
пароль базы данных – nextcloudpassword;
название базы данных – nextcloud;
localhost – localhost:5432.
Далее нажмите «Завершить установку». Установка занимает некоторое время.
На данном этапе установка Nextcloud завершена.
Дата последнего изменения: 08.09.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.