GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare ownCloud 9.1 con Nginx e MariaDB su CentOS 7

OwnCloud è un software server per la sincronizzazione dei dati e la condivisione di file con un frontend basato sul Web facile da usare disponibile con una licenza open source. OwnCloud può essere installato su un server Web Linux o Windows, è facile da configurare e dispone di una documentazione online completa. Il client nativo è disponibile per Windows, MacOS e Linux (applicazione desktop). C'è anche un'app mobile per Android e iOS.

In questo tutorial, ti guiderò a installare e configurare ownCloud 9.1 su un server CentOS 7. Ti mostrerò come configurare ownCloud con Nginx e PHP 7 (come FPM) e MariaDB come sistema di database.

Prerequisiti

  • Server CentOS 7
  • Privilegi di root

Passaggio 1 - Installa Nginx e PHP7-FPM

Prima di iniziare con l'installazione di Nginx e php7-fpm, dobbiamo aggiungere il repository EPEL che contiene software aggiuntivo che non è disponibile dal repository di base CentOS. Installa EPEL con questo comando yum.

yum -y install epel-release

Ora installa Nginx dal repository Epel.

yum -y install nginx

Ora dobbiamo aggiungere un altro repository per php7-fpm. Ci sono diversi repository per PHP 7 disponibili in rete, userò il repository webtatic qui.

Aggiungi il repository webtatic:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Quindi, installa PHP7-FPM con alcuni pacchetti aggiuntivi per l'installazione di ownCloud.

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json

Controlla la versione PHP dal terminale del server per assicurarti che l'installazione sia riuscita.

php -v

Passaggio 2 - Configura PHP7-FPM

In questo passaggio, configureremo php-fpm per l'esecuzione con nginx. Php7-fpm verrà eseguito sotto l'utente nginx e sarà in ascolto sulla porta 9000.

Modifica la configurazione predefinita di php7-fpm con vim.

vim /etc/php-fpm.d/www.conf

Nella riga 8 e 10, cambia utente e gruppo in "nginx '.

user = nginx
group = nginx

Nella riga 22, assicurati che php-fpm sia in esecuzione sulla porta del server 9000.

listen = 127.0.0.1:9000

Decommentare le righe 366-370 per le variabili di ambiente di sistema php-fpm.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Salva il file ed esci dall'editor

Quindi, crea una nuova directory per il percorso della sessione nella directory '/var/lib/' e cambia il proprietario nell'utente 'nginx'.

mkdir -p /var/lib/php/session
chown nginx:nginx -R /var/lib/php/session/

Avvia php-fpm e nginx, quindi aggiungilo all'avvio all'avvio.

sudo systemctl start php-fpm
sudo systemctl start nginx

sudo systemctl enable php-fpm
sudo systemctl enable nginx

La configurazione di PHP7-FPM è terminata.

Fase 3 - Installa e configura MariaDB

OwnCloud supporta i database PostgreSQL e MySQL, in questo tutorial utilizzeremo MariaDB per il database ownCloud. Installa il pacchetto mariadb-server dal repository CentOS con il comando yum.

yum -y install mariadb mariadb-server

Avvia il servizio MariaDB e configura la password root di MariaDB.

systemctl start mariadb
mysql_secure_installation

Digita la tua password di root quando richiesto.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

La password di root di MariaDB è stata impostata, ora possiamo accedere alla shell MySQL per creare un nuovo database e un nuovo utente per ownCloud. Creeremo un nuovo database '

Creeremo un nuovo database 'owncloud_db ' sotto l'utente 'ownclouduser ' con password '[email protetta] '. Scegli una password diversa e sicura per la tua installazione!

mysql -u root -p
Type Password

Digita la query MySQL di seguito per creare un nuovo database e un nuovo utente.

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;

Il 'databaseowncloud_db' con l'utente 'ownclouduser' è stato creato.

Fase 4:genera un certificato SSL autofirmato

In questo tutorial, eseguiremo owncloud con una connessione https per il client. Puoi utilizzare un certificato SSL gratuito come Let's encrypt. In questo tutorial creerò il mio file di certificato SSL con il comando OpenSSL.

Crea una nuova directory per il file SSL.

mkdir -p /etc/nginx/cert/

Quindi genera un nuovo file di certificato SSL con il comando OpenSSL di seguito.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/owncloud.crt -keyout /etc/nginx/cert/owncloud.key

Immettere i dettagli per il certificato SSL come richiesto dal comando OpenSSL. Quindi cambia l'autorizzazione di tutti i file di certificato su 600 con chmod.

chmod 600 /etc/nginx/cert/*

Fase 5:scarica OwnCloud

Scaricheremo ownCloud con il comando wget, quindi dobbiamo prima installare il pacchetto wget. Inoltre, è necessario decomprimere il pacchetto.

yum -y install wget unzip

Vai alla directory tmp e scarica l'ultima versione stabile di ownCloud 9.1 dal sito ownCloud con wget.

cd /tmp
wget https://download.owncloud.org/community/owncloud-9.1.2.zip

Estrai il file zip di ownCloud e spostalo nella directory '/usr/share/nginx/html/'.

unzip owncloud-9.1.2.zip
mv owncloud/ /usr/share/nginx/html/

Quindi, vai alla directory principale web di nginx e crea una nuova directory 'data' per owncloud.

cd /usr/share/nginx/html/
mkdir -p owncloud/data/

Cambia il proprietario della directory 'owncloud' nell'utente e nel gruppo 'nginx'.

chown nginx:nginx -R owncloud/

Passaggio 6:configurazione dell'host virtuale OwnCloud in Nginx

Al passaggio 5, abbiamo scaricato il codice sorgente di ownCloud e l'abbiamo configurato per l'esecuzione nel server Web Nginx. Ma dobbiamo ancora configurare l'host virtuale per ownCloud.

Crea un nuovo file di configurazione dell'host virtuale 'owncloud.conf' nella directory 'conf.d'.

cd /etc/nginx/conf.d/
vim owncloud.conf

Incolla la configurazione dell'host virtuale ownCloud di seguito.

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

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

server {
    listen 443 ssl;
    server_name data.owncloud.co;

    ssl_certificate /etc/nginx/cert/owncloud.crt;
    ssl_certificate_key /etc/nginx/cert/owncloud.key;

    # Add headers to serve security related headers
    # Before enabling Strict-Transport-Security headers please read into this topic first.
    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
    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;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    # Path to the root of your installation
    root /usr/share/nginx/html/owncloud/;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
        return 301 $scheme://$host/remote.php/dav;
    }

    location /.well-known/acme-challenge { }

    # set max upload size
    client_max_body_size 512M;
    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;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location / {
        rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        return 404;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        return 404;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.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_param modHeadersAvailable true; #Avoid sending the security headers twice
        fastcgi_param front_controller_active true;
        fastcgi_pass php-handler;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri $uri/ =404;
        index index.php;
    }

    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
        # Before enabling Strict-Transport-Security headers please read into this topic first.
        #add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";
        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;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        # Optional: Don't log access to assets
        access_log off;
    }

    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
    }
}

Salva il file ed esci dall'editor.

Infine, verifica la configurazione di Nginx e assicurati che non ci siano errori, quindi riavvia il servizio.

nginx -t
systemctl restart nginx

Fase 7 - Configura SELinux e FirewallD

In questo tutorial, lasceremo SELinux in modalità enforcing, quindi abbiamo bisogno del pacchetto degli strumenti di gestione di SELinux per configurarlo.

Installa gli strumenti di gestione di SELinux con questo comando yum.

yum -y install policycoreutils-python

Quindi esegui i comandi seguenti come root per consentire a ownCloud di funzionare sotto SELinux. Ricordarsi di cambiare la directory di ownCloud nel caso in cui si utilizzi una directory diversa per l'installazione di ownCloud.

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/owncloud/.user.ini'

restorecon -Rv '/usr/share/nginx/html/owncloud/'

Quindi, abilita il servizio firewalld e apri la porta HTTP e HTTPS per owncloud.

Avvia firewalld e configuralo per l'avvio all'avvio.

systemctl start firewalld
systemctl enable firewalld

Apri le porte HTTP e HTTPS con il comando firewall-cmd, quindi ricarica il firewall.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

La parte di configurazione del server è terminata.

Fase 8 - Installazione guidata di OwnCloud

Ora apri il tuo browser web e digita il nome di dominio ownCloud nel campo URL, il mio è:data.owncloud.co e verrai reindirizzato alla connessione HTTPS sicura.

Digita il tuo nuovo nome utente e password di amministratore, quindi digita le credenziali del database e fai clic su 'Termina configurazione '.

Admin Dashboard File Manager.

Impostazioni utente.

Impostazioni amministratore.

Owncloud è stato installato con successo con Nginx, PHP7-FPM e MariaDB su un server CentOS 7.


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare phpMyAdmin con Nginx su CentOS 7

  3. Come installare Nextcloud con Nginx e PHP 7.3 su CentOS 8

  4. Come installare ownCloud 8 su un VPS CentOS 7

  5. Installa Magento su CentOS 7, con Nginx, PHP-FPM e MariaDB

Come installare e configurare ownCloud su CentOS 7

Come installare Nginx con ngx_pagespeed su CentOS

Come installare OwnCloud 8 con Nginx e PHP-FPM su CentOS 6

Come installare Nginx con PHP-FastCGI su CentOS 6

Come installare Magento con Nginx su CentOS 7

Come installare ownCloud su CentOS 8