Thank you for reading this post, don't forget to subscribe!
Синхронизируем время.
Устанавливаем утилиту ntpdate:
yum install ntpdate
Выставляем нужный часовой пояс:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* в данном примере московское время.
Синхронизируем время:
ntpdate ru.pool.ntp.org
Настройка брандмауэра.
Выполняется следующими командами:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Отключение SELinux.
Для отключения SELinux вводим две команды:
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
* первая команда отключает SELinux до перезагрузки, вторая — навсегда.
* подробнее об отключении SELinux. Подробнее о настройке SELinux.
Настройка сервера баз данных
В качестве СУБД используем MariaDB.
Устанавливаем:
yum install mariadb mariadb-server
Разрешаем автозапуск и стартуем сервис:
systemctl enable mariadb
systemctl start mariadb
Задаем пароль для суперпользователя mysql:
mysqladmin -u root password
Подключаемся к MariaDB, создаем базу данных и пользователя:
mysql -uroot -p
> CREATE DATABASE owncloud DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost IDENTIFIED BY 'owncloud' WITH GRANT OPTION;
> \q
Установка и настройка веб-сервера
PHP
В репозитории CentOS находится PHP версии 5.4. Для Owncloud требуется более новая версия php. Для этого установим репозиторий REMI:
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Устанавливаем PHP, PHP-FPM и необходимые для работы owncloud модули:
yum --enablerepo=remi-php72 install php php-fpm php-pdo php-zip php-dom php-intl php-gd php-mysql php-mbstring
Разрешаем автозапуск php-fpm и запускаем его:
systemctl enable php-fpm
systemctl start php-fpm
NGINX
Owncloud можно развернуть на NGINX или Apache. В данной инструкции будем использовать первый.
Устанавливаем веб-сервер:
yum install nginx
Создаем виртуальный домен и настраиваем его для работы с облачным сервисом:
vi /etc/nginx/conf.d/owncloud.test.ru.conf
[codesyntax lang="php" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
server { listen 80; server_name owncloud.test.ru; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name owncloud.test.ru; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/cert.key; root /var/www/owncloud; 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 127.0.0.1:9000; } location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires modified +30d; access_log off; } } |
[/codesyntax]
* где owncloud.test.ru — домен, на котором будет работать сервис; /etc/nginx/ssl — каталог, в котором будут храниться сертификаты; /var/www/owncloud — каталог с порталом.
Создаем каталог для хранения сертификатов и переходим в него:
mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
Генерируем сертификат:
openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=owncloud.test.ru/CN=owncloud"
* данная команда создаст сертификат на 4 года для URL owncloud.test.ru или owncloud.
Проверяем конфигурацию nginx, заррешаем его автозапуск и перезапускаем сервис:
nginx -t
systemctl enable nginx
systemctl start nginx
Установка Owncloud
Заходим на страницу owncloud и копируем ссылку на скачивание последней версии программы:
Переходим во временную папку и скачиваем исходник для установки:
cd /tmp
wget https://download.owncloud.org/community/owncloud-10.0.3.tar.bz2
* если система вернет ошибку, устанавливаем wget командой yum install wget.
Распаковываем скачанный архив:
tar -xvjf owncloud-*.tar.bz2 -C /var/www/
* при ошибке устанавливаем bzip2.
Задаем права доступа:
chown -R apache:apache /var/www/owncloud
Открываем браузер и переходим по адресу https://owncloud.test.ru, где owncloud.test.ru — адрес облачного сервиса.
Кликаем по Хранилище и база данных - переключаемся на MySQL/MariaDB:
В качестве базы данных выбираем MySQL/MariaDB и вводим в качестве логина, пароля и базы owncloud.
Завершаем установку.
Работа с пользователями из UNIX-Shell
В состав owncloud входит php-скрипт occ, с помощью которого можно управлять сервисом из командной строки Linux.
Добавление пользователя
Создать нового пользователя можно командой:
sudo -u apache php /var/www/owncloud/occ user:add admin
* где admin — имя учетной записи.
Сброс пароля
При необходимости сбросить пароль пользователя, можно воспользоваться командой:
sudo -u apache php /var/www/owncloud/occ user:resetpassword admin
* где admin — учетная запись пользователя, чей пароль хотим сбросить.
Автоматическая чистка удаленных файлов
При удалении файлов, они не удаляются из системы, а перемещаются в корзину — каталог files_trashbin соответственного пользователя. Со временем, это приведет к израсходованию дискового пространства на сервере.
Чтобы выполнить чистку всех каталогов пользователей, необходимо выполнить команду:
sudo -u apache php /var/www/owncloud/occ trashbin:cleanup
В результате будут удалены все файлы из каталогов files_trashbin всех пользователей.
Также мы можем указать период, за который можно считать удаленные файлы устаревшими и удалить только их. Для этого открываем конфигурационный файл owncloud:
vi /var/www/owncloud/config/config.php
* где /var/www/owncloud — каталог, в который мы развернули наш портал.
Добавляем опцию:
…
'trashbin_retention_obligation' => '25,31',
…
* данной настройкой мы указываем, что owncloud должен хранить файлы и каталоги в корзине не менее 25 дней. Удалять можно по прошествии 30 дней.
Теперь мы можем выполнить команду:
sudo -u apache php /var/www/owncloud/occ trashbin:expire
Она удалит только файлы, которые являются устаревшими в соответствии с нашей настройкой.