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

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

Nextcloud je bezplatný (Open Source) software podobný Dropboxu, který je součástí projektu ownCloud. Nextcloud je napsán v PHP a JavaScriptu, podporuje mnoho databázových systémů jako MySQL/MariaDB, PostgreSQL, Oracle Database a SQLite. Aby byly vaše soubory synchronizovány mezi Desktopem a vaším vlastním serverem, Nextcloud poskytuje aplikace pro Windows, Linux a Mac desktopy a mobilní aplikaci pro Android a iOS. Nextcloud není jen klon schránky, poskytuje další funkce, jako je Kalendář, Kontakty, Plánování úkolů a streamování médií pomocí Ampache.

V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat nejnovější vydání Nextcloud 10 na serveru CentOS 7. Spustím Nextcloud s webovým serverem Nginx a PHP7-FPM a jako databázový systém použiji MariaDB.

Předpoklad

  • CentOS 7 64bit
  • Oprávnění uživatele root na serveru

Krok 1 – Instalace Nginx a PHP7-FPM na CentOS 7

Než začneme s instalací Nginx a php7-fpm, musíme přidat úložiště balíčků EPEL. Nainstalujte jej pomocí tohoto příkazu yum.

yum -y install epel-release

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

yum -y nainstalujte nginx

Pak musíme přidat další úložiště pro php7-fpm. Na internetu je k dispozici několik repozitářů, které poskytují balíčky PHP 7, zde použiji webtatic.

Přidejte webové úložiště PHP7-FPM:

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

Dále nainstalujte PHP7-FPM a některé další balíčky pro instalaci Nextcloud.

yum -y install php70w-fpm php70w-cli php70w-gd php70w-mcrypt php70w-mysql php70w-pear php70w-xml php70w-mbstring php70w-pdo php70w-json phpapcu-de-pecl-phpapcu-de-pecl-phpapcu-de-pecl /před> 

Nakonec zkontrolujte verzi PHP ze serverového terminálu a ověřte, zda je PHP správně nainstalováno.

php -v

Krok 2 – Konfigurace PHP7-FPM

V tomto kroku nakonfigurujeme php-fpm pro spuštění s Nginx. Php7-fpm poběží pod uživatelským nginx a naslouchá na portu 9000.

Upravte výchozí konfigurační soubor 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
skupina =nginx

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

poslouchat =127.0.0.1:9000

Chcete-li aktivovat systémové proměnné prostředí php-fpm, odkomentujte řádek 366-370.

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 vim.

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/

Nyní spusťte php-fpm a Nginx a poté povolte spouštění služeb při bootování.

sudo systemctl spustit php-fpm
sudo systemctl spustit nginx

sudo systemctl povolit php-fpm
sudo systemctl povolit nginx

Konfigurace PHP7-FPM je hotová.

Krok 3 – Instalace a konfigurace MariaDB

Pro databázi Nextcloud budu používat MariaDB. Nainstalujte balíček mariadb-server z úložiště CentOS pomocí yum.

yum -y nainstalujte mariadb mariadb-server

Spusťte službu MariaDB a přidejte ji ke spuštění při spouštění.

systemctl spustit mariadb
systemctl povolit mariadb

Nyní nakonfigurujte root heslo MariaDB.

mysql_secure_installation

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

Nastavit heslo root? [A/n] A
Nové heslo:
Znovu zadejte nové heslo:

Odebrat anonymní uživatele? [A/n] A
Zakázat vzdálené přihlášení root? [A/N] A
Odebrat testovací databázi a získat k ní přístup? [A/n] A
Načíst nyní tabulky oprávnění? [A/n] A

Kořenové heslo MariaDB bylo nastaveno, nyní se můžeme přihlásit do shellu mysql a vytvořit novou databázi a nového uživatele pro Nextcloud. Vytvořím novou databázi s názvem 'nextcloud_db “ a uživatelem „nextclouduser ' s heslem '[e-mail chráněn] '. Zvolte si pro svou instalaci bezpečné heslo!

mysql -u root -p
Zadejte heslo

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

vytvořit databázi nextcloud_db;
vytvořit uživatele [chráněno e-mailem] označeného jako '[chráněno e-mailem]';
udělit všechna oprávnění na nextcloud_db.* uživateli [chráněno e-mailem] označenému jako '[chráněn e-mailem]';
vyprázdnit oprávnění;

Databáze nextcloud_db s uživatelem 'nextclouduser' byla vytvořena.

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

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

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

mkdir -p /etc/nginx/cert/

A vygenerujte nový soubor certifikátu SSL pomocí příkazu openssl níže.

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

Nakonec změňte oprávnění všech souborů certifikátů na 600 pomocí chmod.

chmod 700 /etc/nginx/cert
chmod 600 /etc/nginx/cert/*

Krok 5 – Stažení a instalace Nextcloud

Stáhneme Nextcloud s wget přímo na server, takže musíme nejprve nainstalovat wget. Dále potřebujeme program rozbalení. Nainstalujte obě aplikace pomocí yum.

yum -y install wget unzip

Přejděte do adresáře /tmp a stáhněte si nejnovější stabilní verzi Nextcloud 10 z webu Nextcloud pomocí wget.

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip

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

rozbalte nextcloud-10.0.2.zip
mv nextcloud/ /usr/share/nginx/html/

Dále přejděte do kořenového webového adresáře Nginx a vytvořte nový adresář „data“ pro Nextcloud.

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

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

chown nginx:nginx -R nextcloud/

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

V kroku 5 jsme si stáhli zdrojový kód Nextcloud a nakonfigurovali jej tak, aby běžel pod webovým serverem Nginx. Stále však musíme nakonfigurovat virtuálního hostitele pro Nextcloud. Vytvořte nový konfigurační soubor virtuálního hostitele 'nextcloud.conf' v adresáři Nginx 'conf.d'.

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

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

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

server {
    listen 80;
    název_serveru cloud.nextcloud.co;
    # vynutit https
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    název_serveru cloud.nextcloud.co;

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

    # Přidejte záhlaví pro poskytování záhlaví souvisejících se zabezpečením
    # Před povolením záhlaví Strict-Transport-Security si přečtěte toto
# topic first.
    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;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    # Cesta ke kořenovému adresáři vaší instalace
    root /usr/share/nginx/html/nextcloud/;

    umístění =/robots.txt {
        povolit vše;
        log_not_found off;
        access_log off;
    }

# Následující 2 pravidla jsou potřebná pouze pro aplikaci user_webfinger.
    # Odkomentujte, pokud tuto aplikaci plánujete používat.
    #rewrite ^/.well-known/host-meta /public.php ?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
    # last;

    umístění =/.well-known/carddav {
      návrat 301 $scheme://$host/remote.php/dav;
    }
    umístění =/.well-known/ caldav {
      return 301 $scheme://$host/remote.php/dav;
    }

    # nastavit maximální velikost nahrávání
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Vypněte gzip, abyste se vyhnuli e odstranění hlavičky ETag
    gzip off;

    # Odkomentujte, pokud je váš server sestaven s modulem ngx_pagespeed
    # Tento modul aktuálně není podporován.
    #pagespeed vypnuto;

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

    umístění / {
        přepsat ^ /index.php$uri;
    }

    umístění ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
    }
    umístění ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        zakázat vše;
    }

    umístění ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templáty /40[34])\.php(?:$|/) {
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param SCRIPT_NAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
   fastcgi_param HTTPS on;
        #Vyhněte se odesílání bezpečnostních hlaviček dvakrát
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
      g_g_  php; rychlé g     g   php;>        fastcgi_request_buffering off;
    }

    umístění ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }

    # Přidání hlavičky řízení mezipaměti pro soubory js a css
    # Ujistěte se, že je POD blokem PHP
    umístění ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        # Přidejte záhlaví pro poskytování záhlaví souvisejících se zabezpečením (je určeno k
        #, aby byly duplikovány s výše uvedenými)
         # Před povolením záhlaví Strict-Transport-Security si přečtěte
        # # toto téma jako první.
        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;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies           Volitelné:Neodhlašovat přístup k aktivům
        access_log off;
    }

    umístění ~* \.(?:svg|gif|png|html|ttf|woff|ico |jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Volitelné:Nepřihlašovat přístup k dalším aktivům
        access_log off;
   
}

Uložte soubor a ukončete vim.

Nyní otestujte konfiguraci Nginx, abyste se ujistili, že nedošlo k žádné chybě, s- Potom restartujte službu.

nginx -t
systemctl restart nginx

Krok 7 – Konfigurace SELinux a FirewallD pro Nextcloud

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

Pomocí tohoto příkazu nainstalujte nástroje pro správu SELinux.

yum -y install policycoreutils-python-utils

Poté spusťte níže uvedené příkazy jako uživatel root, abyste umožnili Nextcloud běžet pod SELinux. Nezapomeňte změnit adresář Nextcloud v případě, že používáte jiný adresář.

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

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

Dále povolíme službu firewalld a otevřeme porty HTTP a HTTPS pro Nextcloud.

Spusťte firewalld a povolte jeho spuštění při startu.

systemctl spustit firewalld
systemctl povolit firewalld

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

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

Veškerá konfigurace serveru je hotová.

Krok 8 – Průvodce instalací Nextcloud

Otevřete webový prohlížeč a zadejte název své domény Nextcloud, moje je:cloud.nextcloud.co. Budete přesměrováni na zabezpečené připojení https.

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

Zobrazí se ovládací panel Nextcloud Admin Dashboard (Správce souborů).

Uživatelská nastavení Nextcloud.

Nastavení správce.

Nextcloud byl 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 WordPress s Nginx na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na CentOS 7

  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 ownCloud 9.1 s Nginx a MariaDB na CentOS 7

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

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

  3. Jak nainstalovat SuiteCRM s Nginx na CentOS 7