GNU/Linux >> Znalost Linux >  >> Ubuntu

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

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šiřovat pomocí pluginů, dosud bylo komunitě drupal poskytnuto více než 31 000 modulů pro Drupal. Aktuální verze Drupalu je 8.0.

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

Předpoklady

  • Ubuntu 15.10 – 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 php-fpm s php-gd, který vyžaduje drupal core:

apt-get install php5-fpm php5-cli php5-gd php5-mysql -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/fpm" a upravte soubor "php.ini":

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

On line 773 , 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 45–52 použít php-fpm s nginx.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-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 php5-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 IP serveru:192.168.1.101/info.php webový prohlížeč. 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

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 " byl vytvořen.

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;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/var/run/php5-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í příkazu git nebo drush:

cd /var/www/drupal8
git clone --branch 8.0.x http://git.drupal.org/project/drupal.git

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:

mv drupal/* /var/www/drupal8/

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.

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-mail atd.

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

Zobrazí se 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 Drupal 8 nainstalován s Nginx a SSL na ubuntu 15.10.

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


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

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

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

  1. Jak nainstalovat Mattermost s PostgreSQL a Nginx na Ubuntu 16.04

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento 2 s Nginx a Letsencrypt na Ubuntu 18.04

  1. Jak nainstalovat Gitlab s PostgreSQL a Nginx na Ubuntu 15.04

  2. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10