Установите и настройте ownCloud 9.1.4 на openSUSE Leap 42.2.
Введение
ownCloud – это программное обеспечение с открытым исходным кодом для синхронизации и обмена файлами, такое же, как Dropbox. Просто разместив файлы в локальном общем каталоге, эти файлы будут немедленно синхронизированы с сервером и другими устройствами с помощью клиента ownCloud Desktop Sync Client, приложения для Android или iOS.
В этом руководстве объясняется, как установить и настроить серверную часть ownCloud в openSUSE 42.2.
Начиная
Прежде всего установите SuSEfirewall2. Это скрипт, который генерирует правила iptables на основе конфигураций, хранящихся в
/etc/sysconfig/SuSEfirewall2
. Установите его с помощью Zipper:
zypper in SuSEfirewall2
Также существует модуль конфигурации YaST, но он не позволяет настроить все параметры фаервола, поэтому необходимо вручную редактировать файл конфигурации:
$EDITOR /etc/sysconfig/SuSEfirewall2
Там ищите
FW_SERVICES_EXT_TCP
строку и измените следующим образом:
FW_SERVICES_EXT_TCP="22 80 443"
Это: порты ssh, http и https.
Сохранить и выйти.
Затем запустите его и включите его запуск во время загрузки:
systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2
Перезапуск
sshd
:
systemctl restart sshd
Установить НГИНКС
NGINX также доступен в репозиториях openSUSE, поэтому:
zypper in nginx
Запустите и включите его:
systemct start nginx
systemctl enable nginx
Установка МариаДБ
Что касается NGINX, MariaDB также доступен в виде пакета openSUSE, поэтому:
zypper in mariadb mariadb-client
Следующий :
systemctl start mysqld
systemctl enable mysqld
Настройте его корневую учетную запись:
mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n]
New password:
Re-enter new password:
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Reload privilege tables now? [Y/n]
Теперь можно войти в оболочку MariaDB и создать новую базу данных и пользователя, которые будут использоваться для ownCloud:
mysql -u root -p
В оболочке системы базы данных:
mysql> CREATE DATABASE myownclouddb;
mysql> CREATE USER 'ocuser'@'localhost' IDENTIFIED BY 'user_strong_password';
mysql> GRANT ALL PRIVILEGES ON 'myownclouddb.*' TO 'ocuser'@'localhost' IDENTIFIED BY 'user_strong_password';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
Теперь MariaDB правильно настроена для ownCloud.
Установите PHP-FPM
ownCloud требует PHP 5.4+. Установите PHP-FPM, альтернативу FastCGI, полезную при работе с сайтами с большим количеством посетителей. В этом руководстве мы будем использовать PHP7.
Через молнию:
zypper in php7-fpm php7-gd php7-mysql php7-mcrypt php7-curl php7-pear php7-zip php7-json php7-ldap
Затем скопируйте файл конфигурации php-fpm по умолчанию, выполнив следующие команды:
cd /etc/php7/fpm
cp php-fpm.conf.default php-fpm.conf
Откройте этот файл в текстовом редакторе:
$EDITOR php-fpm.conf
Там найдите (и измените следующим образом) следующие строки:
error_log = log/php-fpm.log
user = nginx
group = nginx
listen = /var/run/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Сохраните и выйдите.
Теперь измените
php.ini
:
$EDITOR /etc/php7/cli/php.ini
Раскомментируйте строку 761 и измените ее значение:
cgi.fix_pathinfo=0
Сохраните, выйдите и скопируйте этот файл в
conf.d
:
cp php.ini /etc/php7/conf.d/
Каталог сеансов PHP7:
/var/lib/php7
. Измените его владельца на пользователя nginx:
chown -R nginx:nginx /var/lib/php7/
Настройте NGINX для работы с PHP-FPM.
Создайте новый файл конфигурации NGINX, сделав резервную копию старого:
cd /etc/nginx
cp nginx.conf nginx.conf.bk
$EDITOR nginx.conf
В строке 65 добавьте следующую конфигурацию:
location ~ \.php$ {
root /srv/www/htdocs;
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Сохраните, выйдите и протестируйте 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 start php-fpm
systemctl enable php-fpm
systemctl restart nginx
Установить ownCloud
Перейдите в корневой каталог веб-сайта, который
/srv/www
и там скачиваем ownCloud:
wget https://download.owncloud.org/community/owncloud-9.1.4.tar.bz2
Распакуйте архив:
tar xf owncloud-9.1.4.tar.bz2
в
owncloud
извлеченную папку, создайте новый каталог данных и измените его владельца на пользователя nginx:
mkdir owncloud/data
chown -R nginx:nginx owncloud/
Настройте виртуальный хост для ownCloud
Следующий шаг — настройка виртуального хоста в NGINX для ownCloud.
mkdir /etc/nginx/vhosts.d && cd /etc/nginx/vhosts.d
Там создайте новый файл:
$EDITOR owncloud.conf
Вставьте в этот файл следующий контент:
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php-fpm.sock;
}
server {
listen 80; # If you have a SSL certificate (Recommended), change this line with "listen 443 ssl;" and add certificate lines;
server_name storage.mydomain.com;
# Path to the root of your installation
root /srv/www/owncloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
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 ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README){
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
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/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}
Сохраните, выйдите и перезапустите службы:
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql
Выводы
Серверная часть теперь хорошо настроена. Последний шаг — перейти с помощью веб-браузера по адресу http://storage.mydomain.com и завершить графическую настройку. В конце этого процесса ваша собственная облачная панель управления будет полностью доступна!