Как установить ownCloud на Rocky Linux
ownCloud — это программное обеспечение для создания файловых хостингов, таких как Google Drive и DropBox. Это бесплатное программное обеспечение для хостинга файлов с открытым исходным кодом, которое позволяет вам настроить автономный хостинг файлов на вашем собственном сервере. ownCloud предлагает серверное приложение (основной компонент программного обеспечения ownCloud) и клиентские приложения, которые можно установить в нескольких операционных системах, таких как Linux, Windows, macOS, Android и iOS.
ownCloud в основном написан на PHP, JavaScript и Go. И позволяет легко синхронизировать события календаря, сохраняя архивы, изображения и файлы любых форматов. А также позволяет организовывать такие задачи, адресные книги и многое другое. ownCloud — это расширяемое приложение, позволяющее устанавливать поверх него дополнительные приложения.
В этом руководстве мы познакомим вас с процессом установки и настройки файлового хостинга ownCloud с открытым исходным кодом на сервере Rocky Linux. В этом руководстве представлены завершенные установки ownCloud, которые включают в себя стек LAMP, Redis, настройку SELinux и Firewalld.
Предварительные требования
Для начала вам потребуются следующие требования для завершения этого руководства:
- Сервер Rocky Linux. В этом примере используется Rocky Linux 8.x с именем хоста «owncloud-server» и IP-адресом «192.168.5.100».
- Пользователь без полномочий root с правами администратора sudo/root — или вы можете использовать пользователя root.
- Доменное имя или поддомен, указывающий на IP-адрес сервера. В этом примере используется доменное имя «hwdomain.io».
Установка основных зависимостей
На следующем шаге вы настроите репозитории и установите базовые зависимости для ownCloud. Вы установите репозиторий EPEL, настроите репозиторий Redis и установите последнюю версию Redis v6, а затем установите базовые зависимости, такие как openssl, ImageMagick и zip. инструменты.
Установите репозиторий EPEL с помощью приведенной ниже команды dnf.
sudo dnf install epel-release
При появлении запроса на подтверждение введите y и нажмите ENTER, чтобы продолжить.
Затем выполните следующую команду, чтобы включить репозиторий для Redis v6. Репозиторий Rocky Linux предоставляет несколько версий Redis, вам следует включить последнюю версию для установки ownCloud.
sudo dnf module reset redis
sudo dnf module enable redis:6
Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.
Теперь, когда репозитории настроены, выполните следующую команду dnf, чтобы установить зависимости базового пакета для ownCloud.
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick
Нажмите y, когда будет предложено выполнить настройку, затем нажмите ENTER.
После установки базовых зависимостей пакета выполните следующую команду systemctl, чтобы запустить и включить службу «redis».
sudo systemctl enable redis
sudo systemctl start redis
Служба Redis теперь должна быть запущена и включена, что означает, что она будет автоматически запускаться при загрузке системы.
Наконец, проверьте службу Redis, используя следующую команду systemctl. Вы должны увидеть, что служба Redis работает и включена.
sudo systemctl status redis
Установка пакетов и расширений PHP 7.4
Для установки последней версии ownCloud по-прежнему требуется PHP 7.4, и она еще не полностью совместима с PHP 8. Для этого руководства вы установите PHP 7.4 через сторонний репозиторий REMI.
Теперь вы настроите дополнительный репозиторий REMI и установите пакеты PHP 7.4 из репозитория REMI.
Сначала выполните следующую команду, чтобы добавить репозиторий REMI для сервера Rocky Linux 8.x.
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Введите y при появлении запроса и нажмите ENTER, чтобы продолжить.
Затем выполните следующую команду, чтобы включить репозиторий REMI для пакетов PHP 7.4. Введите y и нажмите ENTER для подтверждения.
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Теперь, когда репозиторий REMI настроен, выполните следующую команду dnf, чтобы установить PHP 7.4 с дополнительными расширениями PHP для ownCloud.
sudo dnf install --enablerepo=remi php php-intl php-mysql php-mbstring \
php-imagick php-igbinary php-gmp php-bcmath \
php-curl php-gd php-zip php-imap php-ldap \
php-bz2 php-ssh2 php-common php-json \
php-xml php-devel php-apcu php-redis \
php-smbclient php-pear php-phpseclib
При появлении запроса введите y для подтверждения, затем нажмите ENTER.
После установки пакетов PHP выполните следующую команду, чтобы проверить текущую версию PHP в вашей системе.
php --version
Вы должны увидеть, что в вашей системе установлен PHP 7.4.
Установка веб-сервера httpd
Хостинг файлов ownCloud можно запустить на некоторых популярных веб-серверах, таких как Apache/httpd, Nginx и Microsoft IIS. В этом примере вы будете использовать Apache/Httpd для развертывания ownCloud.
Итак, сначала вы установите пакеты Httpd на свой сервер Rocky Linux.
Пакеты веб-сервера httpd по умолчанию доступны в репозитории Appstream Rocky Linux. Установите их с помощью команды dnf, приведенной ниже.
sudo dnf install httpd httpd-devel httpd-tools mod_ssl
При появлении запроса на настройку введите y и нажмите ENTER, чтобы продолжить.
После установки httpd выполните следующую команду systemctl, чтобы запустить и включить службу httpd. И теперь веб-сервер httpd должен работать.
sudo systemctl enable httpd
sudo systemctl start httpd
Проверьте состояние веб-сервера httpd, используя команду ниже.
sudo systemctl status httpd
Как только вы запустите команду, на вашем терминале будет напечатано следующее: служба httpd в данный момент запущена и включена, что означает, что httpd будет автоматически запускаться при загрузке системы.
Теперь, когда веб-сервер httpd запущен, вам следует настроить firewalld и разрешить доступ к службам HTTP и HTTPS.
Выполните следующую команду, чтобы добавить службы HTTP и HTTPS в файл firewalld.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
После этого перезагрузите firewalld, чтобы применить новые изменения, и убедитесь, что службы HTTP и HTTPS добавлены в firewalld.
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Следующий вывод показывает, что службы HTTP и HTTPS добавлены в файл firewalld. И теперь вы можете получить доступ к своей установке httpd из-за пределов вашей сети.
Теперь, когда вы установили PHP 7.4 и веб-сервер httpd, вы проверите установку, создав файл PHPINFO и открыв его через веб-браузер. Это будет означать, что и PHP 7.4, и httpd работают, и вы получите подробную информацию о ваших конфигурациях PHP.
Выполните следующую команду, чтобы создать новый файл PHPINFO '/var/www/html/info.php'.
cat <<EOF | sudo tee /var/www/html/info.php
<?php
phpinfo();
?>
EOF
Наконец, откройте веб-браузер на своем компьютере и перейдите по IP-адресу сервера, а затем по пути «/info.php» (т. е. http://192.168.5.100/info.php).
Ваша страница должна выглядеть так, как показано на следующем снимке экрана: веб-сервер PHP 7.4 и httpd работает, и вы также увидите подробную информацию и конфигурации PHP на своем экране.
Установка и настройка сервера MariaDB
ownCloud поддерживает установку нескольких баз данных. Он поддерживает такие СУБД, как MariaDB/MySQL, PostgreSQL, базы данных Oracle и SQLite (установка по умолчанию). Для производства вам следует запустить ownCloud с MySQL/MariaDB или PostgreSQL, который более стабилен и обеспечивает большую производительность.
На этом этапе вы установите сервер базы данных MariaDB, защитите MariaDB с помощью инструмента mysql_secure_installation и создадите новую базу данных и пользователя для развертывания ownCloud.
Сервер базы данных MariaDB по умолчанию доступен в репозитории Rocky Linux. Чтобы установить его, выполните команду dnf ниже.
sudo dnf install mariadb-server
Введите y, когда будет предложено указать конфигурацию, и нажмите ENTER для установки.
После установки MariaDB запустите и включите службу mariadb с помощью команды systemctl ниже.
sudo systemctl enable mariadb
sudo systemctl start mariadb
Сервер MariaDB теперь должен быть запущен. Используйте следующую команду, чтобы проверить службу и убедиться, что она работает.
sudo systemctl status mariadb
В следующем выводе вы можете видеть, что сервер базы данных MariaDB запущен и включен.
После установки MariaDB вы защитите свое развертывание с помощью команды mysql-secure_installation, предоставляемой пакетами MariaDB. Эта команда поможет вам защитить развертывание MariaDB, установив пароль root, удалив анонимного пользователя по умолчанию и тест базы данных по умолчанию, а также удаленно отключив root-вход в MariaDB.
Выполните следующую команду, чтобы начать защиту MariaDB.
sudo mysql_secure_installation
Это даст вам несколько вопросов о конфигурации MariaDB, и вам нужно будет ввести y для подтверждения или n для ответа «нет».
- Переключить метод аутентификации для пользователя root на unix_socket? Введите номер.
- Изменить пароль root MariaDB? Введите y для подтверждения, затем введите новый пароль и повторите.
- Запретить удаленный вход в систему для пользователя root? Введите y для подтверждения.
- Удалить анонимного пользователя по умолчанию из MariaDB? Введите y, чтобы удалить анонимного пользователя.
- Удалить тест базы данных по умолчанию из MariaDB? Введите y, чтобы удалить тест базы данных.
- Перезагрузить права доступа к таблицам? Введите y для подтверждения, и MariaDB перезагрузит все привилегии и применит новые изменения.
На этом этапе вы установили и защитили установку MariaDB. Теперь вы будете настраивать новую базу данных MariaDB и пользователя для ownCloud. И это можно сделать через оболочку MariaDB/MySQL.
Войдите в оболочку MariaDB от имени пользователя root с помощью команды «mysql» ниже.
sudo mysql -u root -p
Когда вас спросят пароль, введите пароль для вашего root-пользователя MariaDB.
Теперь выполните следующие запросы MariaDB, чтобы создать новую базу данных и пользователя для ownCloud. В этом примере вы создадите новую базу данных и пользователя owncloud для установки ownCloud. Также обязательно замените пароль.
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Затем выполните следующий запрос, чтобы проверить привилегии пользователя owncloud. Затем запустите запрос «quit» или «exit», чтобы выйти из оболочки MariaDB.
SHOW GRANTS FOR 'owncloud'@'localhost';
quit
На снимке экрана ниже вы увидите, что пользователь owncloud имеет доступ и привилегии к базе данных owncloud.
Загрузка исходного кода ownCloud
После того, как вы установили MariaDB и создали базу данных и пользователя для winCloud. На следующем шаге вы загрузите исходный код ownCloud и настроите каталог установки «/var/www/owncloud». На момент написания этой статьи последняя версия ownCloud — v10.11. и вы загрузите его исходный код.
Переместите рабочий каталог в «/var/www».
cd /var/www
Загрузите последнюю версию исходного кода ownCloud и файл SHA256 для проверки исходного кода.
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256
Теперь проверьте исходный код ownCloud с помощью команды sha256sum ниже. Если исходный код проверен, вы должны получить выходное сообщение «ОК».
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2
Затем извлеките исходный код ownCloud с помощью команды tar ниже. Вы должны получить новый каталог '/var/www/owncloud', который будет использоваться для установки ownCloud.
sudo tar -xvjf owncloud-complete-latest.tar.bz2
Наконец, измените владельца каталога установки ownCloud на пользователя «apache» с помощью приведенной ниже команды.
sudo chown -R apache:apache /var/www/owncloud
Настройка виртуального хоста httpd
Прежде чем получить доступ к установке winCloud, вам необходимо создать новую конфигурацию виртуального хоста httpd. Кроме того, убедитесь, что у вас есть доменное имя, указывающее на IP-адрес вашего сервера, и сгенерированы SSL-сертификаты для этого домена.
Теперь вы создадите новую конфигурацию виртуального хоста httpd для ownCloud. Также вы включите безопасное соединение HTTPS для owncloud с помощью SSL-сертификатов от Letsencrypt.
Создайте новую конфигурацию виртуального хоста httpd для owncloud '/etc/httpd/conf.d/owncloud.conf' с помощью редактора nano ниже.
sudo nano /etc/httpd/conf.d/owncloud.conf
Добавьте в файл следующую конфигурацию и обязательно измените домен и путь SSL-сертификатов. В этом примере вы установите owncloud в подкаталог с основным доменом «hwdomain.io».
<VirtualHost *:80>
ServerName hwdomain.io
Redirect permanent / https://hwdomain.io/
</VirtualHost>
<VirtualHost *:443>
ServerName hwdomain.io
DocumentRoot /var/www
Protocols h2 http:/1.1
<If "%{HTTP_HOST} == 'www.hwdomain.io'">
Redirect permanent / https://hwdomain.io/
</If>
ErrorLog /var/log/httpd/hwdomain.io-error.log
CustomLog /var/log/httpd/hwdomain.io-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off
Header always set Strict-Transport-Security "max-age=63072000"
Alias /owncloud "/var/www/owncloud/"
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
</Directory>
</VirtualHost>
Сохраните файл и выйдите из редактора, когда закончите.
Затем выполните следующую команду, чтобы проверить конфигурацию httpd и убедиться в отсутствии ошибок. Если ошибок нет, вы должны получить выходное сообщение, например «Синтаксис в порядке».
sudo apachectl configtest
Теперь перезапустите службу httpd, чтобы применить новые изменения.
sudo systemctl restart httpd
На этом базовая настройка LAMP Stack для установки ownCloud завершена. Вы можете получить доступ к своей установке ownCloud через свой домен, но, наконец, вам нужно будет настроить SELinux, если вы используете ownCloud с принудительным режимом SELinux.
Настройка SELinux
На этом этапе вы настроите конфигурацию SELinux для ownCloud. Сначала вы установите инструмент управления SELinux, затем настроите маркировку исходного кода ownCloud и разрешите службе httpd доступ к другим службам.
Выполните следующую команду, чтобы установить пакет «policycoreutils-python-utils» для управления SELinux.
sudo dnf install policycoreutils-python-utils
Введите y, когда будет предложено настроить конфигурацию, и нажмите ENTER, чтобы продолжить.
Затем выполните следующую команду, чтобы настроить маркировку исходного кода ownCloud.
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps-external(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.htaccess'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.user.ini'
sudo restorecon -Rv '/var/www/owncloud/'
Теперь выполните следующую команду, чтобы разрешить службам httpd доступ к другим сетевым службам.
sudo setsebool -P httpd_can_network_connect_db on
sudo setsebool httpd_unified on
sudo setsebool -P httpd_can_connect_ldap on
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_can_network_memcache on
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_use_cifs on
sudo setsebool -P httpd_use_fusefs on
sudo setsebool -P httpd_use_gpg on
Теперь, когда SElinux настроен, вы можете начать установку ownCloud через веб-браузер.
Процесс установки ownCloud
Теперь, когда вы завершили настройку стека LAMP и добавили виртуальный хост для ownCloud, также настроили SELinux. Теперь вы можете начать установку ownCloud из веб-браузера.
На этом этапе вы начнете установку ownCloud и узнаете, как создать новый каталог и загружать файлы через панель управления пользователя ownCloud.
Откройте веб-браузер и перейдите к доменному имени вашей установки ownCloud по пути «/owncloud» (т. е.: https://hwdomain.io/owncloud/).
Теперь вы должны получить страницу установки ownCloud.
Введите нового пользователя администратора и пароль для вашего ownCloud. Затем выберите тип базы данных MySQL/MariaDB и введите сведения о созданной вами базе данных MariaDB и, наконец, нажмите кнопку «Завершить настройку», чтобы продолжить и установить.
После установки ownCloud вы получите страницу входа в ownCloud.
Введите пользователя и пароль администратора для своего ownCloud и нажмите «Войти».
Если вы используете правильный пользователь и пароль администратора, вы должны получить страницу панели управления пользователя ownCloud.
На панели пользователя ownCloud теперь вы можете создать новый каталог и загружать новые файлы в ownCloud.
Нажмите кнопку + вверху, чтобы создать новый каталог и загрузить новые файлы.
На следующем снимке экрана вы можете видеть, как создается новый каталог «test-directory», в который загружаются новые файлы.
Завершение: настройка Cron для ownCloud.
ownCloud предоставляет несколько способов запуска процесса в фоновом режиме. И вам следует использовать cron для запуска процесса ownCloud в фоновом режиме.
Выполните следующую команду, чтобы переключить фоновый процесс ownCloud на cron.
sudo -u apache /var/www/owncloud/occ background:cron
Теперь создайте новый cron с помощью команды ниже.
sudo crontab -u apache -e
Когда будет предложено выбрать редактор, выберите предпочтительный редактор и добавьте в файл новую конфигурацию, указанную ниже.
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron
Сохраните файл и выйдите из редактора, когда закончите.
Теперь вернитесь на панель пользователя ownCloud и щелкните меню пользователя вверху, затем выберите «Настройки».
Затем нажмите меню «Общие» слева и в разделе «Предупреждения безопасности и настройки» вы должны увидеть сообщение «Все проверки пройдены».'. Вы завершили установку ownCloud в Rocky Linux без каких-либо ошибок.
Заключение
В этом руководстве вы установили ownCloud на сервер Rocky Linux. Вы установили собственный файловый хостинг ownCloud со стеком LAMP (Linux, Apache2/httpd, MariaDB/MySQL и PHP). Вы также защитили установку ownCloud с помощью сертификатов SSL и запустили ownCloud с включенным SELinux на сервере Rocky Linux.
После завершения установки ownCloud вы можете начать загружать файлы на свой сервер ownCloud. Или, если вы хотите продолжить, теперь вы можете интегрировать ownCloud со сторонними приложениями, которые могут использовать функциональные возможности ownCloud, например, от файлового хостинга до инструмента для совместной работы.