Поиск по сайту:

Установите и настройте 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 и завершить графическую настройку. В конце этого процесса ваша собственная облачная панель управления будет полностью доступна!

Статьи по данной тематике: