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!