GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Drupal 9 s Nginx a nechat šifrovat SSL na Debian 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šířit pomocí zásuvných modulů, dosud bylo komunitě Drupal poskytnuto více než 31 000 modulů pro Drupal.

V tomto tutoriálu vám ukážeme, jak nainstalovat Drupal 9 na Debian Buster 10. Drupal spustíme pod LEMP Stackem (Linux, Nginx, MySQL/MariaDB a PHP-FPM) a instalaci zabezpečíme pomocí SSL Letsencrypt .

Předpoklady

V této příručce otestujeme naši instalaci Drupalu na nejnovější verzi Debian Buster 10 s 2 GB RAM, 50 GB volného místa na disku a 2 CPU. Potřebujeme také oprávnění root sudo pro instalaci nových balíčků a úpravu konfigurace systémového softwaru.

Co budeme dělat?

  • Nainstalujte webový server Nginx
  • Nainstalujte a nakonfigurujte PHP-FPM
  • Nainstalujte a nakonfigurujte MariaDB
  • Vygenerujte SSL Letsencrypt
  • Nastavení virtuálního hostitele Nginx pro Drupal 9
  • Stáhněte si zdrojový kód Drupal 9
  • Po instalaci Drupal 9

Krok 1 – Instalace webového serveru Nginx

Nejprve nainstalujeme webový server Nginx na náš server Debian.

Aktualizujte dostupná úložiště ve vašem systému a upgradujte všechny balíčky na nejnovější verzi pomocí příkazu apt níže.

sudo apt update
sudo apt upgrade

Dále nainstalujte balíčky webového serveru Nginx pomocí následujícího příkazu.

sudo apt install nginx -y

Po dokončení instalace spusťte službu Nginx a přidejte ji do spouštění systému.

systemctl start nginx
systemctl enable nginx

Služba Nginx je v provozu, zkontrolujte ji pomocí následujícího příkazu.

systemctl status nginx

Níže je výsledek, který dostanete.

V důsledku toho je služba Nginx spuštěna a spuštěna na Debian Buster 10.

Krok 2 – Instalace a konfigurace PHP-FPM

V tomto kroku nainstalujeme a nakonfigurujeme PHP-FPM 7.3 na Debian 10 pro naši instalaci Drupalu.

Nainstalujte balíčky PHP a PHP-FPM 7.3 pomocí příkazu apt níže.

sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y

Po dokončení instalace přejděte do adresáře '/etc/php/7.3' a upravte konfiguraci 'php.ini' pomocí editoru vim.

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

Odkomentujte a změňte konfiguraci podrobností, jak je uvedeno níže.

date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0

Uložit a zavřít.

Dále restartujte službu PHP-FPM a přidejte ji do spouštění systému.

systemctl restart php7.3-fpm
systemctl enable php7.3-fpm

Služba PHP-FPM je v provozu a ve výchozím nastavení běží pod souborem sock

Zkontrolujte službu PHP-FPM pomocí následujícího příkazu.

ss -plnt | grep php
systemctl status php7.3-fpm

Níže je výsledek, který dostanete.

V důsledku toho byla instalace a konfigurace PHP-FPM pro Drupal 9 na Debian Buster 10 dokončena.

Krok 3 – Instalace a konfigurace serveru MariaDB

Po instalaci balíčků PHP a PHP-FPM nainstalujeme databázi MariaDB a vytvoříme novou databázi pro Drupal 9.

Nainstalujte balíčky MariaDB pomocí příkazu apt níže.

sudo apt install mariadb-server mariadb-client

Poté spusťte službu MariaDB a přidejte ji do spouštění systému.

systemctl start mysql
systemctl enable mysql

V důsledku toho byla databáze MariaDB nainstalována na server Debian.

Dále nastavíme heslo pro výchozího uživatele root MariaDB pomocí příkazu 'mysql_secure_installation', jak je uvedeno níže.

mysql_secure_installation

Zadejte heslo pro výchozí root a napište „Y ' pro všechny možnosti.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Set a root password? [Y/n] Y
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

A kořenové heslo MariaDB bylo nakonfigurováno.

Dále potřebujeme přístup do prostředí MySQL a vytvořit novou databázi a uživatele pro naši instalaci Drupalu.

Přihlaste se do prostředí MySQL pomocí výchozího uživatele root a svého hesla, jak je uvedeno níže.

mysql -u root -p

Pomocí níže uvedených dotazů MySQL vytvořte novou databázi s názvem 'drupaldb' a uživatele 'drupaluser' s heslem '[email protected]'.

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;

Zadejte „exit nebo stiskněte 'Ctrl+d ' pro ukončení prostředí MySQL.

V důsledku toho byla vytvořena nová databáze a uživatel pro instalaci Drupalu.

Krok 4 – Vygenerování SSL Letsencrypt

Pro tento tutoriál zajistíme instalaci Drupalu 9 pomocí SSL Letsencrypt. Ujistěte se tedy, že máte název domény, který se překládá na IP adresu vašeho serveru.

Chcete-li použít SSL Letsencrypt, musíme vygenerovat certifikáty SSL pomocí nástroje certbot.

Nainstalujte nástroj certbot pomocí příkazu apt níže.

sudo apt install certbot -y

Poté zastavte službu Nginx a pomocí následujícího příkazu vygenerujte SSL Letsencrypt pro název vaší domény Drupal.

systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io

Nezapomeňte změnit e-mailovou adresu na svou vlastní. Jakmile bude vše dokončeno, vaše certifikáty SSL budou k dispozici v adresáři '/etc/letsencrypt/live/yourdomain.com'.

Krok 6 – Nastavení virtuálního hostitele Nginx pro Drupal 9

V tomto kroku vytvoříme novou konfiguraci virtuálního hostitele Nginx pro Drupal.

Přejděte do adresáře etc/nginx/sites-available a vytvořte novou konfiguraci virtuálního hostitele 'drupal9' pomocí editoru vim.

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

Změňte název domény a cestu certifikátů SSL Letsencrypt svými vlastními, které do nich vložte.

server {
    server_name drupal.hakase-labs.io;
    root /var/www/drupal9; ## <-- Your only path reference.

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

    ssl_certificate      /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;

    # 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.3-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žit a zavřít.

Dále aktivujte konfiguraci virtuálního hostitele Nginx pro Drupal.

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

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

nginx -t
systemctl restart nginx

V důsledku toho byla konfigurace virtuálního hostitele Nginx pro Drupal dokončena.

Krok 6 – Stáhněte si Drupal

V tomto kroku si stáhneme a nainstalujeme nejnovější Drupal verze 9 do adresáře '/var/www'.

Nyní přejděte do adresáře '/var/www' a stáhněte si zdrojový kód Drupalu pomocí příkazu wget, jak je uvedeno níže.

cd /var/www/
wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz

Rozbalte zdrojový kód drupalu a přejmenujte adresář na 'drupal9'.

tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/

Poté změňte vlastnictví instalačního adresáře Drupalu na uživatele 'www-data'.

chown -R www-data:www-data /var/www/drupal9

V důsledku toho je instalační adresář Drupalu umístěn v adresáři '/var/www/drupal9'.

Krok 7 – Drupal Post Installation

Otevřete webový prohlížeč a do adresního řádku zadejte adresu instalace Drupal.

https://drupal.hakase-labs.io/

A budete přesměrováni na zabezpečené připojení HTTPS.

Nyní vyberte výchozí jazyk pro instalaci Drupalu. Výchozí jazyk je „Angličtina '.

Vyberte jako preferovaný jazyk a klikněte na 'Uložit a pokračovat '.

Vyberte svůj instalační profil Drupal a klikněte na 'Uložit a pokračovat '. Pokud instalujete Drupal poprvé, zvolte 'Standardní ' instalační profil.

Pro konfigurace databáze MySQL zadejte podrobnosti databáze vytvořená nahoře a klikněte na 'Uložit a pokračovat '.

A získáte instalační proces Drupalu, jak je uvedeno níže.

Po dokončení instalace nakonfigurujte název webu, uživatele správce, heslo, e-mail atd.

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

Nyní budete přesměrováni na výchozí indexovou stránku Drupal, jak je uvedeno níže.

Klikněte na položku Konfigurace ' v nabídce t op a získáte řídicí panel konfigurace správce Drupal.

V důsledku toho byla instalace Drupalu 9 se zásobníkem LEMP na Debian Buster 10 úspěšně dokončena.


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

  2. Nainstalujte Lets Encrypt and Secure Nginx pomocí SSL/TLS v Debianu 9

  3. Nainstalujte Automad CMS s Nginx a Lets Encrypt SSL na Debian 10

  1. Jak nainstalovat OpenCart s Nginx a Lets Encrypt na Debian 10

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

  3. Jak nainstalovat Joomla s Apache a nechat šifrovat SSL na Debian 10

  1. Jak nainstalovat Drupal s Apache a nechat šifrovat SSL na Debian 11

  2. Jak nainstalovat DokuWiki pomocí Lets Encrypt SSL na Debian 11

  3. Jak nainstalovat SuiteCRM s Apache a zdarma Lets Encrypt SSL na Debian 11