GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Drupal 8.1 s Nginx, PHP-FPM a SSL na Ubuntu 16.04

Drupal je známý open source redakční systém založený na PHP. Je k dispozici zdarma a uvolněna pod licencí GNU General Public License. Drupal lze použít pro všechny velikosti webových stránek, od velkých mezinárodních webových stránek po osobní blogy a firemní nebo vládní stránky. Stěžejní část drupalu se jmenuje "Drupal Core", obsahuje základní redakční systém, správu uživatelů, správu menu, přizpůsobení vzhledu a správu systému. Drupal Core lze rozšířit pomocí zásuvných modulů, dosud bylo komunitě Drupal poskytnuto více než 31 000 modulů pro Drupal.

V tomto tutoriálu nainstalujeme Drupal 8.1.10 s webovým serverem Nginx, MariaDB 10 jako databázový server a PHP-FPM (PHP 7.0) pro zpracování požadavků PHP. Také vám ukážu, jak nainstalovat SSL certifikát pro zabezpečení webu Drupal.

Předpoklady

  • Ubuntu 16.04 – 64bitová verze.
  • Oprávnění uživatele root.

Krok 1 – Aktualizace systému Ubuntu

Přihlaste se k serveru ubuntu pomocí ssh, staňte se uživatelem root a aktualizujte úložiště ubuntu:

sudo su
sudo apt-get update

Krok 2 – Instalace Nginx a PHP-FPM

Nginx nebo "engine-x" je rychlý HTTP server, který je zaměřen na vysoký výkon s nízkým využitím paměti/RAM. Nginx můžeme použít také jako reverzní proxy, pro protokoly HTTP, HTTPS, POP3 a IMAP. V tomto tutoriálu použijeme Nginx jako HTTP server s povoleným SSL.

Nainstalujte Nginx pomocí následujícího příkazu apt jako uživatel sudo/root:

sudo apt-get install nginx -y

Dále nainstalujte php7.0-fpm s rozšířením php-gd, které vyžaduje drupal core:

sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -y

V dalším kroku nakonfigurujeme Nginx.

Krok 3 – Konfigurace Nginx a PHP-FPM

V tomto kroku nakonfigurujeme Nginx tak, aby používal php-fpm pro obsluhu HTTP požadavků pro stránky PHP. Přejděte do adresáře php-fpm "/etc/php/7.0/fpm" a upravte soubor "php.ini":

cd /etc/php/7.0/fpm/
vim php.ini

On line 761 , odkomentujte řádek cgi.fix_pathinfo a změňte hodnotu na "0 ".

."
cgi.fix_pathinfo=0

Uložte soubor a ukončete editor.

Nyní upravíme výchozí konfiguraci virtuálního hostitele Nginx. Upravte "default" soubor a povolte direktivu php-fpm.

cd /etc/nginx/sites-available/
vim default

Zrušit komentář na řádku 51 – 58 použít php-fpm s nginx.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

Uložte soubor a ukončete.

Poté otestujte konfiguraci Nginx pomocí příkazu "nginx -t ", abyste se ujistili, že je platný:

nginx -t

Pokud nedojde k žádné chybě, restartujte nginx a službu php-fpm:

systemctl restart nginx
systemctl restart php7.0-fpm

Dále otestujte, že php-fpm funguje správně s nginx vytvořením nového souboru php info ve webovém adresáři "/var/www/html".

cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Navštivte soubor info.php na IP serveru (v mém případě http://192.168.1.4/info.php)  ve webovém prohlížeči. Výsledek by měl být podobný snímku obrazovky níže.

Krok 4 – Instalace a konfigurace MariaDB

MariaDB je rozvětvený databázový server systému správy relačních databází MYSQL, který nabízí funkci výměny za MySQL.

Nainstalujte nejnovější verzi MariaDB pomocí příkazu apt-get:

sudo apt-get install mariadb-client mariadb-server -y

Po dokončení instalace spusťte MariaDB:

systemctl start mysql

Název služby MariaDB je "mysql", proto zde příkaz systemctl používá slovo mysql.

Nyní nakonfigurujeme uživatelské jméno a heslo MariaDB pomocí příkazu níže:

mysql_secure_installation
mysql_secure_installation

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

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... Success!

Remove test database and access to it? [Y/n] Y
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!

Přihlaste se do prostředí MariaDB pomocí svého hesla a vytvořte novou databázi pro drupal s názvem „drupaldb “ a vytvořte nového uživatele MariaDB/MySQL „drupaluser “ s heslem „[e-mail chráněn] “ a nakonec udělte uživateli oprávnění k databázi. Pro svou instalaci zvolte bezpečné heslo místo „[email protected]“!

mysql -u root -p


create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;
\q

Databáze "drupaldb “ s uživatelem „drupaluser " byly vytvořeny.

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

Přejděte na /etc/nginx a vytvořte nový adresář s názvem "ssl" pro konfigurační soubor SSL.

mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl

Poté vygenerujte nový certifikát SSL s vlastním podpisem pomocí příkazu openssl níže:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/drupal.key -out /etc/nginx/ssl/drupal.crt

Vyplňte požadované informace. Soubor certifikátu SSL byl vygenerován, nyní změňte oprávnění souboru soukromého klíče „drupal.key“ na 600:

chmod 600 drupal.key

Krok 6 – Konfigurace VirtualHost pro Drupal

Drupal 8 nainstalujeme do adresáře „/var/www/drupal8“ s názvem domény „drupal8.me“. Nahraďte prosím název domény ve své instalaci názvem domény webu, pro který chcete tuto instalaci drupalu používat. Vytvořme tedy adresář:

mkdir -p /var/www/drupal8

Poté přejděte do adresáře virtuálního hostitele Nginx "/etc/nginx/sites-available/" a vytvořte nový soubor "drupal8" pomocí editoru vim:

cd /etc/nginx/sites-available/
vim drupal8

Vložte konfiguraci Nginx pro drupal níže do souboru drupal8:

server {
    server_name drupal8.me;
    root /var/www/drupal8; ## <-- Your only path reference.

    listen 80;
    listen [::]:80;
    listen 443 default ssl;

    ssl_certificate      /etc/nginx/ssl/drupal.crt;
    ssl_certificate_key  /etc/nginx/ssl/drupal.key;

    # Redirect HTTP to HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

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

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

Uložte soubor a ukončete editor.

Soubor virtuálního hostitele Drupal byl vytvořen, nyní jej musíme aktivovat vytvořením symbolického odkazu na soubor v adresáři „sites-enabled“:

ln -s /etc/nginx/sites-available/drupal8 /etc/nginx/sites-enabled/

Otestujte konfiguraci Nginx a restartujte Nginx:

nginx -t
systemctl restart nginx

Krok 7 – Instalace a konfigurace Drupal

Než začneme s instalací Drupalu, musíme nainstalovat git a drush. Drush je shell příkazového řádku a skriptovací rozhraní Unix pro Drupal. Nainstalujte jej pomocí apt následujícím příkazem:

sudo apt-get install git drush -y

Poté zadejte adresář drupal8, který jsme vytvořili dříve, a stáhněte si Drupal pomocí wget nebo drush. Zde použiji wget:

cd /var/www/drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz

Pokud chcete použít drush, spusťte místo toho příkaz níže:

drush dl drupal-8

Počkejte na dokončení stahování a poté přesuňte všechny soubory Drupal do hlavního adresáře:

tar -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10/* .
rm -rf drupal-8.1.10

V dalším kroku nakonfigurujeme soubor nastavení Drupalu. Z hlavního adresáře Drupalu přejděte do adresáře „sites/default“ a zkopírujte dva konfigurační soubory „settings.php “ a „services.yml “:

cd sites/default
cp default.settings.php settings.php
cp default.services.yml services.yml

Poté musíme vytvořit nový adresář s názvem "soubory " uvnitř adresáře "sites/default". Příkaz "chmod" zajišťuje, že konfigurační soubor a adresář "files" jsou zapisovatelné pro instalaci Drupalu:

mkdir files/
chmod a+w *

Nyní navštivte svůj web Drupal (v mém případě http://drupal8.me) s webovým prohlížečem budete automaticky přesměrováni na připojení https a zobrazí se stránka instalačního programu Drupal.

Upozorňujeme, že tato příručka byla právě aktualizována z Drupalu 8.1.8 na 8.1.10 v příkazech, aby zahrnovala nejnovější bezpečnostní záplaty pro Drupal vydané dnes, snímky obrazovky stále ukazují číslo verze 8.1.8, protože rozhraní se nezměnilo . Pro instalaci byste měli vždy použít nejnovější stabilní verzi Drupalu a nahradit číslo verze ve výše uvedených příkazech k instalaci.

Vyberte svůj jazyk, já budu používat "angličtinu" zde.

Klikněte na Uložit a pokračovat .

Nyní vyberte typ instalace. Můžete použít standardní nebo minimální typ. Použiji „Standardní ".

."

Nyní se vám zobrazí konfigurační stránka databáze. Vyplňte údaje o databázi pro databázi, kterou jsme vytvořili pro Drupal.

Počkejte na dokončení instalace.

Nyní musíme nakonfigurovat nastavení profilu webu, jako je název webu, uživatel a heslo pro správce, e-mailová adresa atd.

Nyní je nainstalován Drupal. Budete přesměrováni na domovskou stránku Drupalu.

Může se zobrazit chybová zpráva o oprávněních konfiguračních souborů drupalu „settings.php“ a „services.yml“. Stačí změnit jejich oprávnění pomocí následujících příkazů:

cd sites/default/
chmod 644 settings.php services.yml

Nyní je na ubuntu 16.04 nainstalován Drupal 8.1 s Nginx a SSL.

Závěr

Drupal je bezplatný open-source rámec pro správu obsahu založený na PHP. Může být použit pro osobní blog, soukromou domovskou stránku nebo firemní web. Drupal je distribuován pod licencí GNU-GPL. Hlavní komponenta Drupalu se nazývá „Drupal Core“ a komunita Drupalu dosud vyvinula více než 31 000 modulů pro její rozšíření. Aktuální stabilní verze je 8.1.10. Drupal se snadno instaluje a konfiguruje, můžeme použít Nginx nebo Apache jako webový server a PHP-FPM pro zpracování požadavků PHP na serveru Drupal.


Ubuntu
  1. Jak nainstalovat Nginx s PHP5 a MySQL na Ubuntu 11.10

  2. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04

  3. Jak nainstalovat PHP 7.4 s Nginx na Ubuntu 20.04

  1. Jak nainstalovat PHP 7.4 a 8.0 na Ubuntu 18.04 nebo 20.04

  2. Jak nainstalovat Nextcloud s Nginx a nechat šifrovat SSL na Ubuntu 20.04 LTS

  3. Nainstalujte OwnCloud 7 s Nginx a PHP-FPM na Ubuntu VPS

  1. Jak nainstalovat Drupal 8 s Nginx, PHP-FPM a SSL na Ubuntu 15.10

  2. Jak nainstalovat Drupal 8 s Apache, MySQL a SSL na Ubuntu 15.10

  3. Jak nainstalovat OpenCart 2 s Nginx a SSL na Ubuntu 15.10