GNU/Linux >> Znalost Linux >  >> OpenSuse

Jak nainstalovat ownCloud 9 s Nginx na OpenSUSE Leap 42.1

ownCloud je OpenSource aplikace pro sdílení souborů založená na programovacím jazyce PHP. OwnCloud poskytuje synchronizaci a sdílení souborů s vlastním hostitelem s pěkným webovým rozhraním a synchronizaci aplikací pro všechny hlavní mobilní a stolní platformy s funkčními funkcemi, jako je dropbox, mega atd. ownCloud usnadňuje přístup a synchronizaci souborů, kalendářů a kontaktů napříč vašimi zařízení.

V tomto tutoriálu vás provedu vytvořením vlastní platformy pro synchronizaci a sdílení serverů s ownCloud. Nainstalujeme ownCloud s Nginx jako webovým serverem, MariaDB (fork MySQL) jako databází a php-fpm pro zpracování požadavku na php v Linuxu OpenSUSE Leap 42.1.

Předpoklad

  • OpenSUSE Leap 42.1
  • Oprávnění uživatele root
  • Porozumění příkazu Zypper

Krok 1 – Instalace SuSEfirewall2

SuSEfirewall je skript firewallu, který ukládá svou konfiguraci do souboru "/etc/sysconfig/SuSEfirewall2". Pomocí SuSEfirewall2 můžete otevřít porty úpravou souboru "SuSEfirewall2".

Nainstalujte SuSEfirewall2 pomocí příkazu zypper:

zypper in SuSEfirewall2

Když je firewall nainstalován, přejděte do adresáře sysconfig a upravte konfiguraci "SuSEfirewall2" pomocí vim:

cd /etc/sysconfig/
vim SuSEfirewall2

Přejděte na řádek 253 a přidejte porty všech služeb, které chcete používat. V tomto kroku přidám porty:ssh, http a https.

FW_SERVICES_EXT_TCP="22 80 443"

Uložte soubor a ukončete editor.

Dále spusťte SuSEfirewall2 a povolte jeho spuštění při spouštění:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Nyní restartujte službu sshd:

systemctl restart sshd

Pokud chcete otestovat port serveru SSH, můžete se pomocí příkazu telnet připojit k portu 22:

telnet 192.168.1.101 22

Krok 2 – Instalace Nginx

Nginx je lehký webový server s nízkou spotřebou paměti a procesoru. Jako webový server pro naši vlastní instalaci cloudu použijeme nginx.

Nainstalujte nginx pomocí příkazu zypper:

zypper in nginx

Spusťte nginx a povolte jeho spuštění při spouštění pomocí příkazu systemctl:

systemctl start nginx
systemctl enable nginx

Dále přidejte soubor index.html a otestujte, zda nginx funguje.

echo "This is Nginx Page OpenSUSE Leap" > /srv/www/htdocs/index.html

Nyní můžete přistupovat k webovému serveru nginx z vašeho webového prohlížeče nebo jej můžete zkontrolovat pomocí curl:

curl -I 192.168.1.101
curl 192.168.1.101

Krok 3 – Instalace a konfigurace MariaDB

MariaDB je vidlice databáze MySQL založená na OpenSource RDBMS. V tomto kroku nainstalujeme a nakonfigurujeme MariaDB. Poté vytvoříme nového uživatele a databázi pro instalaci ownCloud.

Nainstalujte MariaDB pomocí příkazu zypper níže:

zypper in mariadb mariadb-client

Nyní spusťte MariaDB a přidejte ji do spuštění systému:

systemctl start mysql
systemctl enable mysql

MariaDB byla spuštěna, nyní můžete nakonfigurovat heslo uživatele root pro MariaDB pomocí příkazu níže:

mysql_secure_installation

Nastavte heslo MariaDB/MySQL:

Enter current password for root (enter for none): PRESS ENTER
Set root password? [Y/n] Y
New password: TYPE YOUR PASSWORD
Re-enter new password: REPEAT PASSWORD
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Kořenové heslo MariaDB bylo nakonfigurováno. Nyní se můžeme přihlásit do prostředí MariaDB/MySQL a vytvořit novou databázi a nového uživatele pro ownCloud.

Přihlaste se do prostředí MariaDB/MySQL:

mysql -u root -p
TYPE your password

Vytvořte novou databázi „owncloud_db“ a nového uživatele „ownclouduser“ s heslem „[email protected]“:

create database owncloud_db;
create user [email protected] identified by '[email protected]';
grant all privileges on owncloud_db.* to [email protected] identified by '[email protected]';
flush privileges;
exit

Databáze pro instalaci ownCloud byla vytvořena.

Krok 4 – Instalace a konfigurace PHP-FPM

PHP-FPM (FastCGI Process Manager) je moderní FastCGI alternativa pro práci s weby s velkým počtem návštěvníků. PHP-FPM má pokročilou správu procesů a snadno se spravuje a konfiguruje.

V tomto kroku nainstalujeme php-fpm a některá rozšíření PHP a poté nakonfigurujeme webový server nginx tak, aby zpracovával požadavky na soubory php prostřednictvím php-fpm.

Nainstalujte php-fpm pomocí tohoto příkazu "zypper in":

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

Po dokončení instalace přejděte do adresáře php-fpm a zkopírujte výchozí konfigurační soubor:

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

Upravte soubor php-fpm.conf pomocí editoru vim nebo nano:

vim php-fpm.conf

Odkomentujte řádek 32, abyste povolili protokol php-fpm. Pokud se později ve vašich skriptech PHP objeví chyba, můžete soubor protokolu najít v adresáři "/var/log/".

error_log = log/php-fpm.log

Změňte řádek 148–149 na „nginx“ pro unixového uživatele/skupinu procesů.

user = nginx
group = nginx

Změňte hodnotu na řádku 159, aby se spustil php-fpm se souborem soketu.

listen = /var/run/php-fpm.sock

Odkomentujte a změňte hodnotu na řádcích 170 - 172, abyste nastavili oprávnění unixového socketu.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Uložte soubor a ukončete editor.

Dále upravte soubor php.ini v adresáři cli:

cd /etc/php5/cli/
vim php.ini

Odkomentujte a změňte hodnotu na řádku 758:

cgi.fix_pathinfo=0

Uložte a ukončete.

Zkopírujte soubor php.ini do adresáře conf.d:

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

Nyní nakonfigurujte cestu obsluhy relace php. V tomto tutoriálu spouštíme php-fpm jako uživatel nginx, takže se ujistěte, že uživatel nginx může zapisovat do adresáře sessions. Konfiguraci cesty relace můžete vidět v souboru php.ini na řádku 1390.

session.save_path = "/var/lib/php5"

Změňte vlastníka adresáře relace „/var/lib/php5/“, udělejte z uživatele nginx vlastníka adresáře:

chown -R nginx:nginx /var/lib/php5/

Dále nakonfigurujte php-fpm tak, aby fungoval s webovým serverem nginx. Před úpravou konfigurace přejděte do konfiguračního adresáře nginx a zálohujte soubor nginx.conf.

cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vim nginx.conf

Přidejte následující novou konfiguraci na řádek 65 – tato konfigurace zpracuje všechny požadavky na soubory PHP.

       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žte a ukončete a poté otestujte konfiguraci nginx, abyste se ujistili, že v konfiguraci není žádná chyba:

nginx -t

Pokud nedojde k žádné chybě, můžete vidět výsledky níže:

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

Nyní spusťte php-fpm a přidejte jej do statu při spouštění, poté restartujte službu nginx:

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

Nginx a php-fpm jsou nakonfigurovány, soubor php můžete otestovat vytvořením nového souboru phpinfo() v kořenovém adresáři webu:

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Otevřete prohlížeč a navštivte server IP:

http://192.168.1.101/info.php

nebo můžete použít curl:

curl -I 192.168.1.101/info.php

Krok 5 – Vygenerování certifikátu SSL

Spuštění ownCloud přes zabezpečené připojení https je velmi důležité, aby byly vaše soubory v bezpečí a soukromé. Pokud provozujete ownCloud ve vlastní společnosti, můžete si zakoupit SSL certifikát, nebo pokud chcete SSL certifikát zdarma, můžete použít Let's-encrypt. Zde vytvořím tzv. „self-signed“ SSL certifikát, šifrování self-signed certifikátu není nižší než u oficiálního certifikátu, ale při prvním přístupu ke službě budete muset přijmout bezpečnostní varování ve vašem prohlížeči .

Vytvořte nový adresář „ssl“ a vygenerujte certifikát pomocí příkazu openssl:

cd /etc/nginx/
mkdir ssl; cd ssl/
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/example-owncloud.crt -keyout /etc/nginx/ssl/example-owncloud.key

Dále změňte oprávnění klíče:

chmod 600 example-owncloud.key

Krok 6 – Instalace a konfigurace ownCloud

V tomto kroku nainstalujeme ownCloud a nakonfigurujeme nového virtuálního hostitele nginx pro doménu ownCloud. Nainstalujeme owncloud s názvem domény „example-owncloud.co“ a kořenovým souborem webu v adresáři „/srv/www/owncloud/“.

Stáhnout ownCloud

Přejděte do adresáře "/srv/www/" a stáhněte si zdroj ownCloud a rozbalte jej:

cd /srv/www/
wget https://download.owncloud.org/community/owncloud-9.0.2.zip
unzip owncloud-9.0.2.zip

Nyní vytvořte nový datový adresář v adresáři owncloud pro uložení všech uživatelských dat. Změňte vlastníka adresáře ownCloud na uživatele nginx:

mkdir -p owncloud/data/
chown -R nginx:nginx owncloud/

Nakonfigurujte virtuálního hostitele Nginx pro ownCloud

Přejděte do adresáře nginx a vytvořte nový adresář pro konfiguraci souboru virtuálního hostitele:

cd /etc/nginx/
mkdir vhosts.d/

Přejděte do adresáře vhosts.d a vytvořte nový soubor virtuálního hostitele pro owncloud "example-owncloud.conf".

cd vhosts.d/
vim example-owncloud.conf

vložte konfiguraci níže:

upstream php-handler {
  #server 127.0.0.1:9000;
  server unix:/var/run/php-fpm.sock;
}

server {
  listen 80;
  server_name example-owncloud.co;
  # enforce https
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  server_name example-owncloud.co;

  ssl_certificate /etc/nginx/ssl/example-owncloud.crt;
  ssl_certificate_key /etc/nginx/ssl/example-owncloud.key;

  # 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 soubor a ukončete editor.

Otestujte konfiguraci nginx a nezapomeňte restartovat všechny služby:

nginx -t
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mysql

Testování

Navštivte doménu owncloud:

example-owncloud.co

Budete přesměrováni na připojení https.

Dále zadejte uživatele a heslo správce, název databáze, uživatele a heslo a klikněte na „Dokončit nastavení“.

Počkejte sekundu a uvidíte správce souborů owncloud:

Instalace ownCloud s nginx a MariaDB na OpenSUSE Leap 42.1 je dokončena.

Odkazy

  • https://doc.owncloud.org/
  • https://www.howtoforge.com/tutorial/install-nginx-php-and-mysql-lemp-stack-on-opensuse-leap-42.1/
  • https://www.howtoforge.com/tutorial/how-to-install-owncloud-8-with-nginx-and-mariadb-on-centos-7/


OpenSuse
  1. Jak nainstalovat Mongodb 5 v Opensuse Leap 15.3

  2. Jak nainstalovat Mysql Server 8 na OpenSUSE Leap 15.3

  3. Jak nainstalovat a nakonfigurovat Redis 6 na OpenSUSE Leap 15.3

  1. Jak nainstalovat Java 17 v OpenSUSE Leap 15.3

  2. Jak nainstalovat a nastavit Nginx jako proxy OpenSUSE Leap 15.3

  3. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na OpenSUSE Leap 15.3

  1. Jak nainstalovat Seafile s Nginx na openSUSE Leap 42.1

  2. Jak nainstalovat Nginx s PHP-FPM a MySQL na openSUSE 12.1

  3. Jak nainstalovat Erlang na Opensuse Leap 15.3