Տեղադրեք և կարգավորեք սեփականCloud 9.1.4-ը openSUSE Leap 42.2-ում


Ներածություն

ownCloud-ը բաց կոդով ֆայլերի համաժամացման և համօգտագործման ծրագիր է, ինչպես Dropbox-ը: Պարզապես տեղադրելով ֆայլերը տեղական ընդհանուր գրացուցակում՝ այդ ֆայլերը անմիջապես կհամաժամեցվեն սերվերի և այլ սարքերի հետ՝ օգտագործելով սեփականCloud Desktop Sync Client-ը, Android հավելվածը կամ iOS հավելվածը:

Այս ձեռնարկը բացատրում է, թե ինչպես տեղադրել և կարգավորել սեփականCloud-ի սերվերի կողմը openSUSE 42.2-ում:

Սկսել

Առաջին հերթին տեղադրեք SuSEfirewall2-ը: Սա սկրիպտ է, որը ստեղծում է iptables կանոններ՝ պահպանված կոնֆիգուրացիաներից

/etc/sysconfig/SuSEfirewall2

. Տեղադրեք այն zypper-ով.

zypper in SuSEfirewall2

Կա նաև YaST կազմաձևման մոդուլ, բայց այն թույլ չի տալիս կարգավորել firewall-ի բոլոր կարգավորումները, ուստի անհրաժեշտ է ձեռքով խմբագրել կազմաձևման ֆայլը.

$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

NGINX-ը հասանելի է նաև openSUSE պահոցներում, ուստի.

zypper in nginx

Սկսեք և միացրեք այն.

systemct start nginx
systemctl enable nginx

MariaDB-ի տեղադրում

Ինչ վերաբերում է 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 shell և ստեղծել նոր տվյալների բազա և օգտվող, որը կօգտագործվի 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:
Zipper-ի միջոցով.

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/
Կազմաձևեք վիրտուալ հոսթ սեփականCloud-ի համար

Հաջորդ քայլը 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 և ավարտել գրաֆիկական կազմաձևումը: Այս գործընթացի ավարտին ձեր սեփական Cloud Dashboard-ը լիովին հասանելի կլինի: