3.231.25.104

Как настроить ownCloud на CentOS 7

Как настроить ownCloud на CentOS 7

ownCloud - это программное обеспечение с открытым исходным кодом, которое позволяет вам запускать собственный облачный сервер или сервер файлового хостинга. ownCloud основан на модели клиент-сервер, и его функциональность аналогична Dropbox или Google Drive. ownCloud является открытым исходным кодом и бесплатен, поэтому любой может установить его на свой частный сервер. ownCloud также поддерживает различные расширения, которые добавляют множество дополнительных функций, таких как онлайн-редактор документов, календарь и многое другое. Пользователи могут синхронизировать файлы с различных клиентов рабочего стола, так как клиент ownCloud доступен для Windows, OS X, Linux и FreeBSD. Также доступны мобильные клиенты для IOS и Android. Кроме того, файлы могут быть загружены или скачены с помощью веб-интерфейса. Любое обновление в его файловой системе мгновенно отражается на других подключенных устройствах. ownCloud написан на PHP и JavaScript и использует сервер Sabre / DAV для удаленного доступа. ownCloud может работать с несколькими системами управления базами данных, такими как SQLite, MySQL, MariaDB или PostgreSQL.

Хотя ownCloud поставляется с множеством функций, вот немногие из них

  • OwnCloud предлагает простой пользовательский интерфейс с возможностью поиска, фаворитами, тегами и другими способами быстрой навигации по файлам
  • Он поддерживает редактирование файлов и предварительный просмотр PDF, изображений, текстовых файлов, открытого документа, файлов Word и многого другого
  • Комментарий к файлам
  • ownCloud содержит комментарии, обмен внутри и между серверами ownCloud, публичные ссылки и многое другое
  • Интеграция функции антивирусного сканирования с антивирусным приложением
  • Он поддерживает интеграцию LDAP / Active Directory вместе с мощной интегрированной регистрацией
  • Полный контроль над доступом к данным и возможностям обмена по пользователю и по группам
  • Расширенное управление квотами с настраиваемым учетом внешнего хранилища
  • Предыдущие версии файлов, которые вы изменили, сохраняются и могут быть возвращены. Удаленные файлы можно найти в корзине
  • Гибкая обработка внешнего хранилища позволяет вам получить доступ к вашим существующим данным через ownCloud

В этом руководстве мы научимся устанавливать последнюю версию ownCloud на CentOS 7.x.

Требования

Для ownCloud требуется не менее 128 МБ ОЗУ, но рекомендуется 512 МБ ОЗУ, которое следует увеличить в зависимости от количества пользователей, файлов и активности. Также вам понадобится сервер с установленным CentOS 7.x. В этом руководстве мы будем использовать учетную запись roo для запуска команд. Если вы вошли в систему как пользователь без полномочий root, используйте команду sudo в начале команд, которые мы собираемся выполнить. Вы также можете запустить команду sudo su, чтобы перейти к учетной записи root.

Установка ownCloud

Перед установкой любых пакетов рекомендуется обновить систему и пакеты, используя следующую команду.

yum -y update

Теперь нам нужно будет установить стек LAMP, чтобы собрать необходимую платформу для установки ownCloud. Нам нужно будет установить Apache 2.4 с mod_php, PHP 5.4+ и MySQL / MariaDB.

Чтобы установить Apache 2.4, выполните следующую команду.

yum -y install httpd

Теперь запустите и включите его для автоматического запуска во время загрузки, используя следующие команды.

systemctl start httpd
systemctl enable httpd

ownCloud работает на любой версии PHP 5.4+, но PHP 5.4 получает EOL, мы установим PHP 5.5 на наш сервер в соответствии с рекомендациями ownCloud. Выполните следующие команды, чтобы установить PHP 5.5 в вашей системе. PHP 5.5 недоступен в репозитории YUM по умолчанию, поэтому вам также необходимо добавить репозитории SCL.

yum -y install centos-release-scl
yum -y install php55 php55-php php55-php-gd php55-php-mbstring php55-php-mysqlnd

Теперь перезапустите веб-сервер Apache, используя следующую команду.

systemctl restart httpd

Теперь установите и настройте Sendmail, чтобы ownCloud мог отправлять push-уведомления с помощью Sendmail. Для установки Sendmail выполните следующую команду.

yum -y install sendmail

Теперь запустите Sendmail и включите его для запуска во время загрузки, используя следующую команду

systemctl start sendmail
systemctl enable sendmail

Теперь вам нужно будет установить MySQL / MariaDB, для этого выполните следующую команду.

yum install mariadb mariadb-server

Теперь запустите и включите автоматический запуск MariaDB во время загрузки, используя следующие команды.

systemctl start mariadb
systemctl enable mariadb

Теперь защитите вашу установку MariaDB, используя следующую команду.

mysql_secure_installation

Это запустит небольшой скрипт и запросит ваш текущий пароль root, так как мы только что установили MariaDB, так что пароль root не существует, просто оставьте его пустым и продолжайте, чтобы создать новый пароль root для сервера MariaDB. Далее он попросит удалить анонимного пользователя, образец базы данных и спросит, хотите ли вы отключить удаленный вход. Просто нажмите Enter для всех заданных вопросов, так как мы хотим использовать выбор по умолчанию для каждого вопроса. Это настроит и запустит наш сервер базы данных. Когда сервер MariaDB будет готов, нам нужно будет создать базу данных и пользователя базы данных для ownCloud. Войдите в интерфейс командной строки MariaDB, используя следующую команду.

mysql -u root -p

введите пароль для пользователя root, который вы создали при защите сервера MySQL. После входа в систему вы увидите следующий вывод.

[root@Testbox ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 10
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]>

Создайте базу данных, используя следующую команду.

MariaDB [(none)]> CREATE DATABASE owncloud;

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

MariaDB [(none)]> GRANT ALL ON owncloud.* to 'ownclouduser'@'localhost' IDENTIFIED BY 'StrongPassword';

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

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Поскольку у нас все готово, мы можем начать установку ownCloud, выполнив следующие команды.

rpm --import https://download.owncloud.org/download/repositories/stable/CentOS_7/repodata/repomd.xml.key
wget http://download.owncloud.org/download/repositories/stable/CentOS_7/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo
yum clean expire-cache
yum -y install owncloud

Теперь вам нужно исправить некоторые права доступа к каталогам, чтобы ownCloud мог управлять данными на вашем сервере. Создайте новый файл, используя любой редактор по вашему выбору. В этом пособии мы будем использовать nano. Если у вас не установлен nano, вы можете легко установить его, используя yum -y install nano.

nano ~/prm.sh

Теперь добавьте следующие строки кода в скрипт.

#!/bin/bash
ocpath='/var/www/html/owncloud'
htuser='apache'
htgroup='apache'
rootuser='root'
printf Creating possible missing Directoriesn
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
printf chmod Files and Directoriesn
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
printf chown Directoriesn
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
chmod +x ${ocpath}/occ
printf chmod/chown .htaccessn
if [ -f ${ocpath}/.htaccess ]
then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

Теперь сохраните файл и выйдите из редактора. Теперь сделайте ваш файл исполняемым и запустите его с помощью следующей команды.

chmod 750 ~/prm.sh && bash ~/prm.sh

Вы увидите следующий вывод.

[root@Testbox ~]# chmod 750 ~/prm.sh && bash ~/prm.sh
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess

Если в вашей системе включен SELinux, вам необходимо настроить модуль SELinux, в противном случае вы получите некоторые сообщения о запрещении доступа в журнале. Чтобы проверить, включен ли у вас SELinux, выполните следующую команду.

sestatus

Вы получите вывод, похожий на этот.

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

В первой строке вы увидите статус SELinux. Если включено, выполните следующие команды для настройки разрешений SELinux.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data'
restorecon '/var/www/html/owncloud/data'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config'
restorecon '/var/www/html/owncloud/config'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps'
restorecon '/var/www/html/owncloud/apps'

После настройки соответствующих конфигураций SELinux для каталогов вам нужно будет выполнить эти команды, чтобы ownCloud мог подключаться к другим серверам, а также мог отправлять уведомления с помощью Sendmail.

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_sendmail on

Теперь настройте виртуальные хосты, чтобы вы могли получить доступ к ownCloud через свой домен. Создайте новый файл /etc/httpd/conf.d/owncloud.conf, используя ваш любимый текстовый редактор.

nano /etc/httpd/conf.d/owncloud.conf

Добавьте следующие строки в файл.

ServerName MyCloud
ServerName your-domain.com
DocumentRoot /var/www/html/owncloud/
Alias /owncloud /var/www/html/owncloud/
Options +FollowSymLinks
AllowOverride All
Dav off
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud

Убедитесь, что вы измените your-domain.com в соответствии с доменом, который вы собираетесь использовать. Теперь сохраните файл, выйдите из редактора и перезапустите веб-сервер Apache.

systemctl restart httpd

Теперь вы можете получить доступ к вашей установке ownCloud через интерфейс, используя домен, который вы использовали при настройке виртуального хоста, если вы настроили DNS. Вы также можете получить доступ к ownCloud, используя IP-адрес вашего сервера.

http://your-domain.com

Или

http://Your-ServerIP

Вы увидите следующую страницу. Создайте имя пользователя и пароль для учетной записи администратора. Затем нажмите на ссылку «Хранилище и база данных» и выберите MySQL / MariaDB в разделе «Настройка базы данных». Теперь укажите имя пользователя базы данных, пароль и имя базы данных базы данных, которую вы создали ранее. Нажмите на кнопку «Готово» после завершения. После завершения установки вы увидите следующий экран, теперь вы вошли в свою панель мониторинга ownCloud.

Безопасность ownCloud

Вы можете использовать ownCloud поверх обычного HTTP, но настоятельно рекомендуется использовать SSL / TLS для шифрования всего трафика вашего сервера, а также для защиты логинов и данных пользователя при передаче. Для защиты трафика вы можете использовать любые сертификаты SSL, например, самозаверяющий сертификат, Certbot или Let's Encrypt SSL или Enterprise SSL. Для настройки Certbot или Let's Encrypt SSL следуйте этому руководству. Получив работающий сертификат SSL, вы можете перенаправить весь трафик на HTTPS, отредактировав файл виртуальных хостов /etc/httpd/conf.d/owncloud.conf.

nano /etc/httpd/conf.d/owncloud.conf

Теперь добавьте следующую строку под виртуальным хостом.

Redirect permanent / https://your-domain.com/

После редактирования ваш файл должен выглядеть так, как показано ниже.

ServerName MyCloud
ServerName your-domain.com
DocumentRoot /var/www/html/owncloud/
Redirect permanent / https://your-domain.com/
Alias /owncloud /var/www/html/owncloud/
Options +FollowSymLinks
AllowOverride All
Dav off
SetEnv HOME /var/www/html/owncloud
SetEnv HTTP_HOME /var/www/html/owncloud

Администраторам рекомендуется установить заголовок HTTP Strict Transport Security, который просит браузеры не разрешать какое-либо подключение к серверу ownCloud с использованием HTTP, и пытается запретить посетителям сайта обходить предупреждения о недействительных сертификатах. Чтобы включить HSTS на вашем сервере, отредактируйте файл Virtual Hosts.

nano /etc/httpd/conf.d/owncloud.conf

Теперь добавьте следующие строки в ваш файл.

ServerName your-domain.com
Header always set Strict-Transport-Security max-age=15552000; includeSubDomains; preload

Сохраните файл и выйдите из редактора. Теперь перезапустите сервер Apache, используя следующую команду.

systemctl restart httpd

После перезапуска сервера все ваши HTTP-запросы будут отправлены на HTTPS, также HSTS будет включен и на вашем сервере.

Вывод

В этом уроке мы установили ownCloud на CentOS 7.x. Мы также приняли некоторые меры для обеспечения безопасности нашей собственной установки Cloud. Теперь вы можете успешно развернуть свой собственный облачный сервер на своем сервере. Вы можете скачать клиенты для разных платформ для синхронизации ваших данных.