GNU/Linux >> Znalost Linux >  >> Ubuntu

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

Drupal je bezplatný a otevřený systém pro správu obsahu, který vám pomáhá vytvářet a dodávat digitální obsah pro web a mobilní telefony. Je napsán v PHP a používá jej mnoho organizací po celém světě. S Drupalem můžete vytvářet různé typy webových stránek, od malých blogů až po velké firemní webové stránky. Nabízí snadno použitelné rozhraní a výkonné editační nástroje pro správu obsahu.

V tomto tutoriálu vám ukážeme, jak nainstalovat Drupal s Nginx a zabezpečit jej pomocí Let's Encrypt SSL na Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Platný název domény odkazovaný na váš server.
  • Na vašem serveru je nakonfigurováno heslo uživatele root.

Instalovat LEMP Server

Nejprve budete muset na svůj server nainstalovat webový server Nginx, databázi MariaDB, PHP a další požadovaná rozšíření. Všechny je můžete nainstalovat pomocí následujícího příkazu:

apt-get install nginx mariadb-server php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip -y

Jakmile jsou všechny balíčky nainstalovány, upravte soubor php.ini a upravte některá nastavení:

nano /etc/php/7.4/fpm/php.ini

Změňte následující řádky:

short_open_tag = On 
cgi.fix_pathinfo=0
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 300
date.timezone = America/Chicago

Po dokončení uložte a zavřete soubor.

Konfigurace databáze MariaDB

Nejprve zabezpečte instalaci MariaDB a nastavte heslo roota MariaDB pomocí následujícího příkazu:

mysql_secure_installation

Odpovězte na všechny otázky, jak je uvedeno níže:

Enter current password for root (enter for none): 
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

Jakmile je MariaDB zabezpečená, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:

mysql -u root -p

Zadejte své root heslo MariaDB a poté vytvořte databázi a uživatele pro Drupal:

MariaDB [(none)]> CREATE DATABASE drupaldb;
MariaDB [(none)]> CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'password';

Dále udělte všechna oprávnění databázi Drupal pomocí následujícího příkazu:

MariaDB [(none)]> GRANT ALL ON drupaldb.* TO 'drupal'@'localhost' WITH GRANT OPTION;

Dále vyprázdněte oprávnění a ukončete prostředí MariaDB pomocí následujícího příkazu:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Stáhnout Drupal

V době psaní tohoto návodu je nejnovější verze Drupalu 8.8.5. Můžete si jej stáhnout do kořenového adresáře webu Nginx pomocí následujícího příkazu:

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

Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:

tar -xvzf drupal-8.8.5.tar.gz

Dále přejmenujte extrahovaný adresář na drupal a udělte správná oprávnění pomocí následujícího příkazu:

mv drupal-8.8.5 drupal
chown -R www-data:www-data drupal
chmod -R 755 drupal

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Konfigurace Nginx pro Drupal

Dále vytvořte konfigurační soubor virtuálního hostitele Nginx pro drupal pomocí následujícího příkazu:

nano /etc/nginx/sites-available/drupal

Přidejte následující řádky:

server {
    listen 80;
    listen [::]:80;
    root /var/www/html/drupal;
    index  index.php index.html index.htm;
    server_name  drupal.linuxbuz.com;

    client_max_body_size 100M;
    autoindex off;

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

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

    # Block access to scripts in site files directory
    location ~ ^/sites/[^/]+/files/.*\.php$ {
        deny all;
    }

    location ~ (^|/)\. {
        return 403;
    }

    location / {
        try_files $uri /index.php?$query_string;
    }

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

    # Don't allow direct access to PHP files in the vendor directory.
    location ~ /vendor/.*\.php$ {
        deny all;
        return 404;
    }

    location ~ '\.php$|^/update.php' {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ ^/sites/.*/files/styles/ { # For Drupal >= 7
        try_files $uri @rewrite;
    }
    location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7
        try_files $uri /index.php?$query_string;
    }
}

Uložte a zavřete soubor a poté vytvořte symbolický odkaz na adresář s povolenými weby:

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

Dále nastavte hash_bucket_size ve výchozím konfiguračním souboru Nginx:

nano /etc/nginx/nginx.conf

Přidejte následující řádek pod „http { "

."
    server_names_hash_bucket_size 64;

Uložte a zavřete soubor a poté zkontrolujte, zda Nginx neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste získat následující výstup:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Poté restartujte službu Nginx, aby se změny aplikovaly:

systemctl restart nginx

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Zabezpečte Drupal pomocí Let's Encrypt SSL

Doporučuje se zabezpečit Drupal pomocí Let's Encrypt SSL. Nejprve přidejte úložiště Certbot pomocí následujícího příkazu:

add-apt-repository ppa:ahasenack/certbot-tlssni01-1875471

Dále aktualizujte úložiště a nainstalujte klienta Certbot pomocí následujícího příkazu:

apt-get update -y
apt-get install certbot python3-certbot-nginx -y

Po instalaci klienta Certbot spusťte následující příkaz ke stažení a instalaci Let's Encrypt SSL pro váš web:

certbot --nginx -d drupal.linuxbuz.com

Budete vyzváni k zadání platného e-mailu a přijetí podmínek služby, jak je uvedeno níže:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y



Obtaining a new certificate
Performing the following challenges:
http-01 challenge for drupal.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/drupal

Dále zvolte, zda chcete přesměrovat provoz HTTP na HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Zadejte 2 a stiskněte Enter pro dokončení instalace:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/drupal

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://drupal.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=drupal.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/drupal.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/drupal.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-08-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

V tuto chvíli je váš web Drupal zabezpečený pomocí Let's Encrypt SSL.

Přístup k průvodci webovou instalací Drupal

Nyní otevřete webový prohlížeč a zadejte adresu URL https://drupal.linuxbuz.com. Budete přesměrováni na stránku výběru jazyka Drupal:

Vyberte požadovaný jazyk a klikněte na tlačítko Uložit a pokračovat knoflík. Měli byste vidět stránku Instalační profil:

Vyberte požadovaný instalační profil a klikněte na tlačítko Uložit a pokračovat knoflík. Měli byste vidět konfigurační stránku databáze:

Klikněte na tlačítko Uložit a pokračovat knoflík. Měli byste vidět stránku Konfigurace webu:

Zadejte název webu, uživatelské jméno správce, heslo a klikněte na tlačítko Uložit a pokračovat knoflík. Budete přesměrováni na výchozí řídicí panel Drupal na následující stránce:

Závěr

Gratulujeme! úspěšně jste nainstalovali a zabezpečili Drupal pomocí Let's Encrypt SSL na Ubuntu 20.04. Nyní můžete začít přizpůsobovat svůj web Drupal. Pro více informací navštivte oficiální dokumentaci Drupalu.


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 Seafile s Nginx na Ubuntu 20.04 LTS

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

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

  3. Jak nainstalovat Wordpress s Nginx, MariaDB a HHVM na Ubuntu 16.04 LTS

  1. Jak nainstalovat Shopware s NGINX a nechat šifrovat na Ubuntu 18.04 LTS

  2. Jak nainstalovat Grav CMS s Nginx a nechat šifrovat na Ubuntu 18.04 LTS

  3. Jak nainstalovat X-Cart s Nginx a nechat šifrovat SSL na Ubuntu 18.04 LTS