GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7

OwnCloud je serverový software pro synchronizaci dat a sdílení souborů se snadno použitelným webovým rozhraním, které je dostupné pod licencí open source. OwnCloud lze nainstalovat na webový server Linux nebo Windows, snadno se konfiguruje a má obsáhlou online dokumentaci. Nativní klient je dostupný pro Windows, MacOS a Linux (Desktop Application). K dispozici je také mobilní aplikace pro Android a iOS.

V tomto tutoriálu vás provedu instalací a konfigurací ownCloud 9.1 na serveru CentOS 7. Ukážu vám, jak nakonfigurovat ownCloud s Nginx a PHP 7 (jako FPM) a MariaDB jako databázový systém.

Předpoklady

  • Server CentOS 7
  • Kořenová oprávnění

Krok 1 – Instalace Nginx a PHP7-FPM

Než začneme s instalací Nginx a php7-fpm, musíme přidat úložiště EPEL, které obsahuje další software, který není dostupný ze základního úložiště CentOS. Nainstalujte EPEL pomocí tohoto příkazu yum.

yum -y install epel-release

Nyní nainstalujte Nginx z úložiště Epel.

yum -y install nginx

Nyní musíme přidat další úložiště pro php7-fpm. Na netu je dostupných několik repozitářů pro PHP 7, já použiji webtatic repozitář zde.

Přidejte webtatické úložiště:

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

Dále nainstalujte PHP7-FPM s několika dalšími balíčky pro instalaci ownCloud.

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

Zkontrolujte verzi PHP z terminálu serveru a ujistěte se, že instalace proběhla úspěšně.

php -v

Krok 2 – Konfigurace PHP7-FPM

V tomto kroku nakonfigurujeme php-fpm tak, aby běžel s nginx. Php7-fpm poběží pod uživatelem nginx a naslouchá na portu 9000.

Upravte výchozí konfiguraci php7-fpm pomocí vim.

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

V řádku 8 a 10 změňte uživatele a skupinu na 'nginx '.

user = nginx
group = nginx

V řádku 22 se ujistěte, že php-fpm běží pod serverovým portem 9000.

listen = 127.0.0.1:9000

Odkomentujte řádky 366-370 pro systémové proměnné prostředí php-fpm.

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

Uložte soubor a ukončete editor

Dále vytvořte nový adresář pro cestu relace v adresáři '/var/lib/' a změňte vlastníka na uživatele 'nginx'.

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

Spusťte php-fpm a nginx a poté je přidejte, aby se spustily při spouštění.

sudo systemctl start php-fpm
sudo systemctl start nginx

sudo systemctl enable php-fpm
sudo systemctl enable nginx

Konfigurace PHP7-FPM je hotová.

Krok 3 – Instalace a konfigurace MariaDB

OwnCloud podporuje databáze PostgreSQL a MySQL, v tomto tutoriálu použijeme MariaDB pro databázi ownCloud. Nainstalujte balíček mariadb-server z úložiště CentOS pomocí příkazu yum.

yum -y install mariadb mariadb-server

Spusťte službu MariaDB a nakonfigurujte kořenové heslo MariaDB.

systemctl start mariadb
mysql_secure_installation

Na požádání zadejte své root heslo.

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

Kořenové heslo MariaDB bylo nastaveno, nyní se můžeme přihlásit do prostředí MySQL a vytvořit novou databázi a uživatele pro ownCloud. Vytvoříme novou databázi '

Vytvoříme novou databázi 'owncloud_db ' pod uživatelem 'ownclouduser ' s heslem '[e-mail chráněn] '. Zvolte prosím pro svou instalaci jiné a bezpečné heslo!

mysql -u root -p
Type Password

Zadejte níže dotaz MySQL a vytvořte novou databázi a nového uživatele.

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;

Databáze 'owncloud_db' s uživatelem 'ownclouduser' byla vytvořena.

Krok 4 – Vygenerování certifikátu SSL s vlastním podpisem

V tomto tutoriálu spustíme pro klienta owncloud pod připojením https. Můžete použít bezplatný certifikát SSL, jako je let's encrypt. V tomto tutoriálu vytvořím svůj vlastní soubor certifikátu SSL pomocí příkazu OpenSSL.

Vytvořte nový adresář pro soubor SSL.

mkdir -p /etc/nginx/cert/

Poté pomocí příkazu OpenSSL níže vygenerujte nový soubor certifikátu SSL.

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

Zadejte podrobnosti pro certifikát SSL, jak požaduje příkaz OpenSSL. Poté změňte oprávnění všech souborů certifikátů na 600 pomocí chmod.

chmod 600 /etc/nginx/cert/*

Krok 5 – Stáhnout OwnCloud

Stáhneme si ownCloud pomocí příkazu wget, takže musíme nejprve nainstalovat balíček wget. Dále potřebujeme balíček rozbalit.

yum -y install wget unzip

Přejděte do adresáře tmp a stáhněte si nejnovější stabilní ownCloud 9.1 ze stránky ownCloud pomocí wget.

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

Rozbalte soubor zip ownCloud a přesuňte jej do adresáře '/usr/share/nginx/html/'.

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

Dále přejděte do kořenového adresáře webu nginx a vytvořte nový adresář 'data' pro owncloud.

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

Změňte vlastníka adresáře 'owncloud' na uživatele a skupinu 'nginx'.

chown nginx:nginx -R owncloud/

Krok 6 – Konfigurace virtuálního hostitele OwnCloud v Nginx

V kroku 5 jsme si stáhli zdrojový kód ownCloud a nakonfigurovali jej tak, aby běžel pod webovým serverem Nginx. Stále však musíme nakonfigurovat virtuálního hostitele pro ownCloud.

Vytvořte nový konfigurační soubor virtuálního hostitele 'owncloud.conf' v adresáři 'conf.d'.

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

Níže vložte konfiguraci virtuálního hostitele ownCloud.

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

Uložte soubor a ukončete editor.

Nakonec otestujte konfiguraci Nginx a ujistěte se, že nedošlo k chybě, a poté službu restartujte.

nginx -t
systemctl restart nginx

Krok 7 – Konfigurace SELinux a FirewallD

V tomto tutoriálu ponecháme SELinux zapnutý v režimu vynucení, takže k jeho konfiguraci potřebujeme balíček nástrojů pro správu SELinuxu.

Nainstalujte nástroje pro správu SELinux pomocí tohoto příkazu yum.

yum -y install policycoreutils-python

Poté spusťte níže uvedené příkazy jako root, aby se ownCloud spustil pod SELinux. Nezapomeňte změnit adresář ownCloud v případě, že pro instalaci ownCloud používáte jiný adresář.

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/'

Dále povolte službu firewalld a otevřete port HTTP a HTTPS pro owncloud.

Spusťte firewalld a nakonfigurujte jej tak, aby se spouštěl při spouštění.

systemctl start firewalld
systemctl enable firewalld

Otevřete porty HTTP a HTTPS pomocí příkazu firewall-cmd a poté znovu načtěte bránu firewall.

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

Část konfigurace serveru je dokončena.

Krok 8 – Průvodce instalací OwnCloud

Nyní otevřete webový prohlížeč a do pole URL zadejte název domény ownCloud, moje je:data.owncloud.co, a budete přesměrováni na zabezpečené připojení HTTPS.

Zadejte své nové uživatelské jméno a heslo správce, poté zadejte přihlašovací údaje k databázi a klikněte na 'Dokončit nastavení '.

Správce souborů řídicího panelu správce.

Uživatelská nastavení.

Nastavení správce.

Owncloud byl úspěšně nainstalován s Nginx, PHP7-FPM a MariaDB na CentOS 7 Server.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat ownCloud 8 na CentOS 7 VPS

  3. Nainstalujte Magento na CentOS 7 s Nginx, PHP-FPM a MariaDB

  1. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  2. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  3. Jak nainstalovat WordPress s HHVM a Nginx na CentOS 7

  1. Jak nainstalovat Nextcloud s Nginx a PHP7-FPM na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7

  3. Jak nainstalovat SuiteCRM s Nginx na CentOS 7