GNU/Linux >> Linux Esercitazione >  >> OpenSuse

Come installare ownCloud 9 con Nginx su OpenSUSE Leap 42.1

ownCloud è un'applicazione di condivisione file OpenSource basata sul linguaggio di programmazione PHP. OwnCloud fornisce la sincronizzazione e la condivisione di file self-hosted con una bella interfaccia web e la sincronizzazione di app per tutte le principali piattaforme mobili e desktop con funzionalità come dropbox, mega, ecc. ownCloud semplifica l'accesso e la sincronizzazione di file, calendari e contatti tra i tuoi dispositivi.

In questo tutorial, ti guiderò a creare la tua piattaforma server di sincronizzazione e condivisione con ownCloud. Installeremo ownCloud con Nginx come web server, MariaDB (un fork di MySQL) come database e php-fpm per gestire la richiesta di php su Linux OpenSUSE Leap 42.1.

Prerequisito

  • OpenSUSE Leap 42.1
  • Privilegi di root
  • Comprendere il comando zypper

Passaggio 1:installazione di SuSEfirewall2

SuSEfirewall è uno script firewall che memorizza la sua configurazione nel file "/etc/sysconfig/SuSEfirewall2". Con SuSEfirewall2 puoi aprire le porte modificando il file "SuSEfirewall2".

Installa SuSEfirewall2 con il comando zypper:

zypper in SuSEfirewall2

Quando il firewall è installato, vai nella directory sysconfig e modifica la configurazione "SuSEfirewall2" con vim:

cd /etc/sysconfig/
vim SuSEfirewall2

Vai alla riga 253 e aggiungi le porte di tutti i servizi che desideri utilizzare. In questo passaggio, aggiungerò le porte:ssh, http e https.

FW_SERVICES_EXT_TCP="22 80 443"

Salva il file ed esci dall'editor.

Quindi, avvia SuSEfirewall2 e abilitalo all'esecuzione all'avvio:

systemctl start SuSEfirewall2
systemctl enable SuSEfirewall2

Ora riavvia il servizio sshd:

systemctl restart sshd

Se vuoi testare la porta del server SSH, puoi usare il comando telnet per connetterti alla porta 22:

telnet 192.168.1.101 22

Passaggio 2:installa Nginx

Nginx è un server web leggero con memoria e consumo di CPU ridotti. Useremo nginx come server web per la nostra installazione di cloud.

Installa nginx con il comando zypper:

zypper in nginx

Avvia nginx e abilitalo all'esecuzione all'avvio con il comando systemctl:

systemctl start nginx
systemctl enable nginx

Quindi, aggiungi un file index.html per verificare se nginx funziona.

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

Ora puoi accedere al server web nginx dal tuo browser web, oppure puoi verificarlo con curl:

curl -I 192.168.1.101
curl 192.168.1.101

Fase 3 - Installa e configura MariaDB

MariaDB è un fork del database MySQL basato su RDBMS OpenSource. In questo passaggio installeremo e configureremo MariaDB. Quindi creeremo un nuovo utente e database per l'installazione di ownCloud.

Installa MariaDB con il comando zypper di seguito:

zypper in mariadb mariadb-client

Ora avvia MariaDB e aggiungilo all'avvio del sistema:

systemctl start mysql
systemctl enable mysql

MariaDB è stato avviato, ora puoi configurare la password di root per MariaDB con il comando seguente:

mysql_secure_installation

Imposta la password 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

La password di root di MariaDB è stata configurata. Ora possiamo accedere alla shell MariaDB/MySQL e creare un nuovo database e un nuovo utente per ownCloud.

Accedi alla shell MariaDB/MySQL:

mysql -u root -p
TYPE your password

Crea un nuovo database "owncloud_db" e un nuovo utente "ownclouduser" con password "[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

Il database per l'installazione di ownCloud è stato creato.

Fase 4 - Installa e configura PHP-FPM

PHP-FPM (FastCGI Process Manager) è una moderna alternativa FastCGI per gestire siti con molti visitatori. PHP-FPM ha una gestione avanzata dei processi ed è facile da gestire e configurare.

In questo passaggio, installeremo php-fpm e alcune estensioni PHP, quindi configureremo il server web nginx per gestire le richieste di file php tramite php-fpm.

Installa php-fpm con questo comando "zypper in":

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

Al termine dell'installazione, vai nella directory php-fpm e copia il file di configurazione predefinito:

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

Modifica il file php-fpm.conf con l'editor vim o nano:

vim php-fpm.conf

Decommentare la riga 32 per abilitare il log php-fpm. Se si verifica un errore in seguito nei tuoi script PHP, puoi trovare il file di registro nella directory "/var/log/".

error_log = log/php-fpm.log

Cambia la riga 148 - 149 in "nginx" per l'utente/gruppo unix dei processi.

user = nginx
group = nginx

Modificare il valore nella riga 159 per eseguire php-fpm con un file socket.

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

Decommenta e cambia il valore sulle righe 170 - 172 per impostare i permessi del socket unix.

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

Salva il file ed esci dall'editor.

Quindi, modifica il file php.ini nella directory cli:

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

Decommenta e modifica il valore alla riga 758:

cgi.fix_pathinfo=0

Salva ed esci.

Copia il file php.ini nella directory conf.d:

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

Ora configura il percorso del gestore di sessione php. In questo tutorial, eseguiamo php-fpm come utente nginx, quindi assicurati che l'utente nginx possa scrivere nella directory delle sessioni. Puoi vedere la configurazione del percorso della sessione nel file php.ini alla riga 1390.

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

Cambia il proprietario della directory di sessione "/var/lib/php5/", imposta l'utente nginx come proprietario della directory:

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

Quindi, configura php-fpm per funzionare con il server web nginx. Vai alla directory di configurazione di nginx ed esegui il backup del file nginx.conf prima di modificare la configurazione.

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

Aggiungi la seguente nuova configurazione alla riga 65:questa configurazione gestirà tutte le richieste di file 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;
       }

Salva ed esci, quindi prova la configurazione di nginx per assicurarti che non ci siano errori nella configurazione:

nginx -t

Se non ci sono errori, puoi vedere i risultati di seguito:

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

Ora avvia php-fpm e aggiungilo a stat all'avvio, quindi riavvia il servizio nginx:

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

Nginx e php-fpm sono configurati, puoi testare il file php creando un nuovo file phpinfo() nella directory principale web:

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

Apri il tuo browser e visita l'IP del server:

http://192.168.1.101/info.php

oppure puoi usare curl:

curl -I 192.168.1.101/info.php

Fase 5 - Genera certificato SSL

L'esecuzione di ownCloud su una connessione https sicura è molto importante per mantenere i tuoi file protetti e privati. Se stai utilizzando ownCloud sulla tua azienda, puoi acquistare il certificato SSL, oppure se desideri un certificato SSL gratuito puoi utilizzare Let's-encrypt. Qui creerò un certificato SSL cosiddetto "autofirmato", la crittografia di un certificato autofirmato non è inferiore a un certificato ufficiale ma dovrai accettare un avviso di sicurezza nel tuo browser quando accedi al servizio la prima volta .

Crea una nuova directory "ssl" e genera il certificato con il comando 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

Quindi, modifica i permessi della chiave:

chmod 600 example-owncloud.key

Fase 6 - Installa e configura ownCloud

In questo passaggio, installeremo ownCloud e configureremo un nuovo host virtuale nginx per il dominio ownCloud. Installeremo owncloud con il nome di dominio "example-owncloud.co" e il file web root nella directory "/srv/www/owncloud/".

Scarica ownCloud

Vai nella directory "/srv/www/" e scarica il sorgente ownCloud ed estrailo:

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

Ora crea una nuova directory di dati nella directory owncloud per memorizzare tutti i dati utente. Cambia il proprietario della directory ownCloud nell'utente nginx:

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

Configura un host virtuale Nginx per ownCloud

Vai alla directory nginx e crea una nuova directory per la configurazione del file host virtuale:

cd /etc/nginx/
mkdir vhosts.d/

Vai alla directory vhosts.d e crea un nuovo file host virtuale per owncloud "example-owncloud.conf".

cd vhosts.d/
vim example-owncloud.conf

incolla la configurazione qui sotto:

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

Salva il file ed esci dall'editor.

Testa la configurazione di nginx e non dimenticare di riavviare tutti i servizi:

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

Test

Visita il dominio owncloud:

esempio-propriocloud.co

Verrai reindirizzato alla connessione https.

Quindi, digita l'utente e la password di amministratore, il nome del database, l'utente e la password e fai clic su "Termina configurazione".

Aspetta un secondo e vedrai il file manager di owncloud:

L'installazione di ownCloud con nginx e MariaDB su OpenSUSE Leap 42.1 è terminata.

Riferimenti

  • 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. Come installare Mongodb 5 in Opensuse Leap 15.3

  2. Come installare Mysql Server 8 su OpenSUSE Leap 15.3

  3. Come installare e configurare Redis 6 su OpenSUSE Leap 15.3

  4. Come installare Erlang su Opensuse Leap 15.3

  5. Come installare Java 17 in OpenSUSE Leap 15.3

Come installare TeamViewer 12 su openSUSE Leap 42.2

Come installare Dropbox su openSUSE Leap 42.2

Come installare RabbitMQ in OpenSUSE Leap 15.3

Come installare Google Chrome su openSUSE Leap 15

Come installare PHP 8.0 su openSUSE 15 Leap

Come installare Tor Browser su openSUSE Leap 15