Nainštalujte a nakonfigurujte ownCloud 9.1.4 na openSUSE Leap 42.2


Úvod

ownCloud je softvér s otvoreným zdrojovým kódom na synchronizáciu a zdieľanie súborov, rovnako ako Dropbox. Stačí umiestniť súbory do miestneho zdieľaného adresára a tieto súbory sa okamžite zosynchronizujú so serverom a inými zariadeniami pomocou vlastného synchronizačného klienta služby Cloud Desktop, aplikácie pre Android alebo iOS.

Tento tutoriál vysvetľuje, ako nainštalovať a nakonfigurovať serverovú stranu ownCloud na openSUSE 42.2.

Začíname

Najprv nainštalujte SuSEfirewall2. Toto je skript, ktorý generuje pravidlá iptables z konfigurácií uložených v

/etc/sysconfig/SuSEfirewall2

. Nainštalujte ho pomocou zipperu:

zypper in SuSEfirewall2

K dispozícii je tiež konfiguračný modul YaST, ale ten vám neumožňuje konfigurovať všetky nastavenia brány firewall, takže je potrebné manuálne upraviť konfiguračný súbor:

$EDITOR /etc/sysconfig/SuSEfirewall2

Hľadajte tam

FW_SERVICES_EXT_TCP

riadok a zmeňte takto:

FW_SERVICES_EXT_TCP="22 80 443"

Sú to: porty ssh, http a https.
Uložiť a ukončiť.

Potom ho spustite a povoľte jeho spustenie v čase zavádzania:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Reštart

sshd

:

systemctl restart sshd

Nainštalujte NGINX

NGINX je k dispozícii aj v repozitároch openSUSE, takže:

zypper in nginx

Spustite a povoľte:

systemct start nginx
systemctl enable nginx

Inštalácia MariaDB

Pokiaľ ide o NGINX, MariaDB je k dispozícii aj ako balík openSUSE, takže:

zypper in mariadb mariadb-client

Ďalšie :

systemctl start mysqld
systemctl enable mysqld

Nakonfigurujte jeho root účet:

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]

Teraz je možné prihlásiť sa do prostredia MariaDB a vytvoriť novú databázu a používateľa, ktorý bude použitý pre ownCloud:

mysql -u root -p

V prostredí databázového systému:

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;

Teraz je MariaDB správne nakonfigurovaná pre ownCloud.

Nainštalujte PHP-FPM

ownCloud vyžaduje PHP 5.4+. Nainštalujte PHP-FPM, čo je alternatíva FastCGI užitočná pri práci s stránkami s množstvom návštevníkov. V tejto príručke budeme používať PHP7.
Cez zipper:

zypper in php7-fpm php7-gd php7-mysql php7-mcrypt php7-curl php7-pear php7-zip php7-json php7-ldap

Ďalej skopírujte predvolený konfiguračný súbor php-fpm a spustite nasledujúce príkazy:

cd /etc/php7/fpm
cp php-fpm.conf.default php-fpm.conf

Otvorte tento súbor pomocou textového editora:

$EDITOR php-fpm.conf

Tam vyhľadajte (a upravte nasledovne) nasledujúce riadky:

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

Uložte a ukončite.
Teraz upravte

php.ini

:

$EDITOR /etc/php7/cli/php.ini

Odkomentujte riadok 761 a zmeňte jeho hodnotu:

cgi.fix_pathinfo=0

Uložte, ukončite a skopírujte tento súbor do

conf.d

:

cp php.ini /etc/php7/conf.d/

Adresár relácie PHP7 je

/var/lib/php7

. Zmeňte jeho vlastníka na používateľa nginx:

chown -R nginx:nginx /var/lib/php7/
Nakonfigurujte NGINX na prácu s PHP-FPM

Vytvorte nový konfiguračný súbor NGINX a vytvorte zálohu starého:

cd /etc/nginx
cp nginx.conf nginx.conf.bk
$EDITOR nginx.conf

Na riadok 65 pridajte nasledujúcu konfiguráciu:

 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;
       }

Uložiť, ukončiť a otestovať nginx:

nginx -t

Mali by ste si prečítať nasledujúce riadky:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nakoniec:

systemctl start php-fpm
systemctl enable php-fpm
systemctl restart nginx

Nainštalujte si ownCloud

Prejdite do koreňového adresára webu, čo je

/srv/www

a tam si stiahnite ownCloud:

wget https://download.owncloud.org/community/owncloud-9.1.4.tar.bz2

Extrahujte archív:

tar xf owncloud-9.1.4.tar.bz2

V

owncloud

extrahovaný priečinok, vytvorte nový adresár s údajmi a zmeňte jeho vlastníka na používateľa nginx:

mkdir owncloud/data
chown -R nginx:nginx owncloud/
Nakonfigurujte virtuálneho hostiteľa pre ownCloud

Ďalším krokom je konfigurácia virtuálneho hostiteľa v NGINX pre ownCloud.

mkdir /etc/nginx/vhosts.d && cd /etc/nginx/vhosts.d

Tam vytvorte nový súbor:

$EDITOR owncloud.conf

Do tohto súboru prilepte nasledujúci obsah:

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;
  }
}

Uložte, ukončite a reštartujte služby:

systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

Závery

Strana servera je teraz dobre nakonfigurovaná. Posledným krokom je prejsť pomocou webového prehliadača na: http://storage.mydomain.com a dokončiť grafickú konfiguráciu. Na konci tohto procesu bude váš vlastný Cloud Dashboard plne k dispozícii!