2.9.13.1.1 Настройка NextCloud с СУБД MySQL и ПО для веб-сервера Apache
Скачать документ Установка необходимых пакетов
Настройка SELinux
Настройка MySQL
Установка NextCloud
Настройка NextCloud
Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Сервер графический
- Версия ПО: nextcloud-27.1.10-1, php-8.1.29-1, mariadb-3:10.11.6-2
Nextcloud — набор клиент-серверных программ для создания и использования облачного хранилища. Nextcloud можно установить как на хосте, так и на собственном сервере. По доступной функциональности похож на Dropbox.
В отличие от проприетарных сервисов, таких как Dropbox, открытая архитектура Nextcloud позволяет добавлять функциональность на сервер в виде приложений и дает возможность пользователям полностью контролировать свои данные.
Nextcloud позволяет совместно работать с офисными документами, файлами и информацией для планирования задач и мероприятий. Платформа также включает надстройки для доступа к электронной почте, обмена сообщениями, организации видеоконференций и чатов.
Аутентификация пользователей может производиться как по локальной базе, так и через интеграцию с LDAP/Active Directory, Kerberos, IMAP, в том числе с применением двухфакторной аутентификации, SSO (Single-sign-on) и привязки новых систем к учётной записи по QR-коду. Версионный контроль изменений позволяет отслеживать изменения в файлах, комментариях, правилах совместного доступа и тегах.
Также облачное хранилище поддерживает синхронизацию и обмен данными, предоставляет возможность просмотра и редактирования данных с любого устройства в любой точке сети. Доступ к данным может быть организован как при помощи web-интерфейса, так и с использованием протокола WebDAV и его расширений CardDAV и CalDAV.
Сервер Nextcloud можно развернуть на любом хостинге, поддерживающем выполнение PHP-скриптов и предоставляющем доступ к SQLite, MariaDB/MySQL или PostgreSQL.
Основные компоненты платформы Nextcloud:
- Files - организация хранения, синхронизации, совместного доступа и обмена файлами. Доступ может быть осуществлён как через Web, так и при помощи клиентского ПО для настольных и мобильных систем. Предоставляются такие расширенные возможности, как полнотекстовый поиск, прикрепление файлов при отправке комментариев, выборочный контроль доступа, создание защищённых паролем ссылок для загрузки, интеграция с внешними хранилищами (FTP, CIFS/SMB, SharePoint, NFS, Google Drive, Dropbox и т.п.).
- Flow - оптимизирует бизнеc-процессы через автоматизацию выполнения типовых работ, таких как преобразование документов в PDF, отправка сообщений в чаты при загрузке новых файлов в определённые каталоги, автоматическое назначение тегов. Возможно создание собственных обработчиков, выполняющих действия в привязке к определённым событиям.
- Встроенные средства совместного редактирования документов, электронных таблиц и презентаций на базе пакета ONLYOFFICE. Обеспечена полная интеграция ONLYOFFICE с остальными компонентами платформы, например, несколько участников могут одновременно редактировать один документ, параллельно обсуждая изменения в видеочате и оставляя заметки.
- Photos - галерея изображений, упрощающая поиск, обмен и навигацию по совместной коллекции фотографий и изображений. Поддерживается ранжирование фотографий по времени, месту, тегам и частоте просмотра.
- Calendar - календарь-планировщик, позволяющий координировать проведение встреч, планировать чаты и видеоконференции. Поддерживается загрузка событий с внешних ресурсов, поддерживающих протокол WebCal.
- Mail - совместная адресная книга и web-интерфейс для работы с электронной почтой. Возможна привязка нескольких учётных записей к одному inbox. Поддерживается шифрование писем и прикрепление цифровых подписей на базе OpenPGP. Возможна синхронизация адресной книги при помощи CalDAV.
- Talk - система обмена сообщениями и проведения web-конференций (чат, аудио и видео). Имеется возможность предоставления доступа к содержимому экрана и поддержка SIP-шлюзов для интеграции с обычной телефонией.
Установка необходимых пакетов
Для работы NextCloud версии 27 требуются пакеты php версии 8.
Для корректной настройки NextCloud в РЕД ОС 7.3 необходимо подключить репозиторий php81-release, включающий в себя пакеты php версии 8. Подробную информацию о подключении репозитория с пакетами необходимой версии php см. в нашей инструкции «PHP 8.X на РЕД ОС».
Необходимо подготовить систему для установки NextCloud, для этого установите следующие пакеты (потребуются права администратора системы):
sudo dnf install httpd php php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-curl php-mcrypt php-pear setroubleshoot-server bzip2 php-ldap php-mysqlnd mariadb mariadb-server mod_auth_kerb php-fpm
Настройка 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 domain_can_mmap_files 1 setsebool -P daemons_dump_core 1
Настройка MySQL
В качестве базы данных используется MySQl.
Запустите и добавьте в автозагрузку службу mariadb:
sudo systemctl start mariadb && systemctl enable mariadb
Выполните скрипт mysql_secure_installation, чтобы защитить базу данных от злоумышленников:
sudo mysql_secure_installation
На первом шаге должен быть задан пароль root, по умолчанию пароль не задан, нажмите Enter.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): <нажмите_Enter> OK, successfully used password, moving on…
Далее укажите свой пароль root и удалите анонимных пользователей:
Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. Sett root password? [Y/n] y New password: <задайте_пароль_root> Re-enter new password: <повторите_пароль_root> 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!
Запретите удаленный вход для root, если необходимо:
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
Удалите тестовую базу данных и обновите таблицу привилегий:
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:
mysql -u root -p CREATE DATABASE nextcloud; CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'qwerqwer'; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost'; FLUSH PRIVILEGES; quit
Установка NextCloud
Установите NextCloud, выполнив команду:
sudo dnf install nextcloud nextcloud-httpd nextcloud-mysql
Настройка NextCloud
Создайте виртуальный хост, для этого отредактируйте файл /etc/httpd/conf.d/nextcloud.conf:
nano /etc/httpd/conf.d/nextcloud.conf
Добавив в него следующее содержимое:
<VirtualHost *:80>
ServerName localhost.localdomain
ServerAdmin admin@localdomain
DocumentRoot /usr/share/nextcloud
<directory /usr/share/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
SetEnv HOME /usr/share/nextcloud
SetEnv HTTP_HOME /usr/share/nextcloud
</directory>
</VirtualHost>
где:
- ServerName - полное имя сервера.
Создайте пустой файл CAN_INSTALL для разрешения установки:
touch /usr/share/nextcloud/config/CAN_INSTALL
Назначьте владельцем каталога nextcloud пользователя apache:
sudo chown -R apache. /usr/share/nextcloud
Настройте SELinux:
chcon -R -t httpd_sys_rw_content_t /usr/share/nextcloud
Добавьте в автозагрузку службу httpd и запустите ее:
sudo systemctl enable httpd --now
Отредактируйте файл /usr/share/nextcloud/config/config.php.
Создайте секцию trusted_domains в массиве и впишите IP-адрес этого сервера по образцу:
$CONFIG = array (
....
'trusted_domains' =>
array (
0 => '192.168.0.15',
),
...
)
Далее, с помощью браузера, перейдите в веб-интерфейс по адресу - http://<IP-адрес_сервера>/nextcloud
.
В открывшемся интерфейсе введите имя и пароль аккаунта будущего администратора сервера, а также выберите в качестве базы данных сервер MySQL/MariaDB. Введите ранее созданного пользователя MySQL и название базы данных:
Пользователь: nc_user
Пароль: qwerqwer
Название базы: nextcloud
Хост: localhost
Далее нажмите «Установить». Установка занимает некоторое время.
На данном этапе установка NextCloud завершена.
Дата последнего изменения: 21.11.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.