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

Nainstalujte a nakonfigurujte Drupal 8 pomocí Nginx a Lets Encrypt na CentOS 8

Drupal je bezplatný, open-source a škálovatelný systém pro správu obsahu, který mohou jednotlivci používat k vytváření a správě libovolných typů webových stránek. Je napsán v PHP a k ukládání dat používá MySQL/MariaDB. Drupal poskytuje bohatou sadu funkcí, které lze rozšířit o tisíce doplňků. Drupal podporuje mnoho webových serverů včetně Apache, Nginx, IIS, Lighttpd a databáze MySQL, MariaDB, MongoDB, SQLite, PostgreSQL a server MS SQL. Drupal přichází s jednoduchým a uživatelsky přívětivým webovým uživatelským rozhraním, které vám umožňuje vytvářet webové stránky bez znalosti kódování.

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

Požadavky

  • Server se systémem CentOS 8.
  • Platný název domény s adresou IP vašeho serveru
  • Na serveru je nakonfigurováno heslo uživatele root.

Instalovat Nginx, MariaDB a PHP

Než začnete, budete muset na svůj server nainstalovat server LEMP. Můžete jej nainstalovat spuštěním následujícího příkazu:

dnf install nginx mariadb-server php php-fpm php-cli php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache -y

Po instalaci spusťte Nginx, MariaDB a službu php-fpm a povolte jim spuštění po restartu systému pomocí následujícího příkazu:

systemctl spustit nginx
systemctl spustit php-fpm
systemctl spustit mariadb
systemctl povolit nginx
systemctl povolit php-fpm
systemctl povolit mariadb

Konfigurovat databázi

Ve výchozím nastavení není MariaDB zabezpečena, takže ji budete muset zabezpečit. Můžete jej zabezpečit spuštěním následujícího příkazu:

mysql_secure_installation

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

Zadejte aktuální heslo pro uživatele root (zadejte pro žádné):Nastavit heslo uživatele root? [A/n] YNové heslo:Znovu zadejte nové heslo:Odstranit anonymní uživatele? [A/n] YZakázat vzdálené přihlášení root? [A/N] YOdebrat testovací databázi a získat k ní přístup? [A/n] YNačíst nyní tabulky oprávnění? [A/n] A

Jakmile budete hotovi, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:

mysql -u root -p

Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi a uživatele pro Drupal pomocí následujícího příkazu:

MariaDB [(none)]> VYTVOŘIT DATABÁZI drupaldb SADA ZNAKŮ utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> VYTVOŘIT UŽIVATELE [chráněný e-mailem] IDENTIFIKOVANÝ PODLE "hesla";

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

MariaDB [(none)]> UDĚLEJTE VŠE NA drupaldb.* DO [e-mail chráněno] IDENTIFIKUJE "heslo";

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;

Stáhnout Drupal

Nejprve si budete muset stáhnout nejnovější verzi Drupalu z jejich oficiálních stránek. Můžete si jej stáhnout pomocí následujícího příkazu:

wget https://ftp.drupal.org/files/projects/drupal-8.7.10.tar.gz

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

tar -xvzf drupal-8.7.10.tar.gz

Dále přesuňte extrahovaný adresář do kořenového webového adresáře Nginx pomocí následujícího příkazu:

mv drupal-8.7.10 /var/www/html/drupal

Dále vytvořte adresář pro ukládání souborů webových stránek a přejmenujte soubor default.settings.php, jak je znázorněno níže:

mkdir /var/www/html/drupal/sites/default/files
cp /var/www/html/drupal/sites/default/default.settings.php /var/www/html/drupal/ sites/default/settings.php

Dále změňte vlastnictví adresáře Drupal na nginx, jak je znázorněno níže:

chown -R nginx:nginx /var/www/html/drupal/

Konfigurace Nginx pro Drupal

Nejprve vytvořte konfigurační soubor php-fpm pro Drupal pomocí následujícího příkazu:

nano /etc/php-fpm.d/drupal.conf

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

[drupal]user =nginxgroup =nginxlisten.owner =nginxlisten.group =nginxlisten =/run/php-fpm/drupal.sockpm =ondemandpm.max_children =50pm.process_idle_timeout =10spm.dir50s =
 Po dokončení uložte a zavřete soubor. Poté vytvořte konfigurační soubor virtuálního hostitele Nginx pro Drupal:

nano /etc/nginx/conf.d/drupal.conf

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

server { poslouchat 80; název_serveru example.com; root /var/www/html/drupal; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; umístění =/favicon.ico { log_not_found off; access_log off; } umístění =/robots.txt { povolit vše; log_not_found off; access_log off; } umístění ~ \..*/.*\.php$ { return 403; } umístění ~ ^/sites/.*/private/ { return 403; } # Blokovat přístup ke skriptům v umístění adresáře souborů webu ~ ^/sites/[^/]+/files/.*\.php$ { zakázat vše; } umístění ~ (^|/)\. { návrat 403; } umístění / { try_files $uri /index.php?$query_string; } umístění @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } umístění ~ /vendor/.*\.php$ { zakázat vše; návrat 404; } umístění ~ '\.php$|^/update.php' { fastcgi_split_path_info ^(.+?\.php)(|/.*)$; zahrnout fastcgi_params; # Blokujte útoky httpoxy. Viz https://httpoxy.org/. fastcgi_param HTTP_PROXY ""; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_intercept_errors on; fastcgi_pass unix:/run/php-fpm/drupal.sock; } umístění ~ ^/sites/.*/files/styles/ { # Pro Drupal>=7 try_files $uri @rewrite; } # Zpracovávat soukromé soubory přes Drupal. Cesta k soukromému souboru může mít # s předponou jazyka. umístění ~ ^(/[a-z\-]+)?/system/files/ { # Pro Drupal>=7 try_files $uri /index.php?$query_string; } umístění ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { try_files $uri @rewrite; vyprší max; log_not_found off; }}

Uložte a zavřete soubor. Poté restartujte php-fpm a službu Nginx, abyste použili změny:

systemctl restart php-fpm
systemctl restart nginx

Konfigurovat SELinux a bránu firewall

Ve výchozím nastavení je SELinux povolen v CentOS 8. Takže budete muset nakonfigurovat SELinux pro Drupal, aby fungoval správně.

Nejprve umožňuje Drupalu zapisovat do adresářů veřejných a soukromých souborů pomocí následujícího příkazu:

správa fcontext -a -t httpd_sys_rw_content_t "/var/www/html/drupal(/.*)?"
správa fcontext -a -t httpd_sys_rw_content_t '/var/www/html/drupal/sites/default /settings.php'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/drupal/sites/default/files'
restorecon -Rv /var/www/html/drupal
restorecon -v /var/www/html/drupal/sites/default/settings.php
restorecon -Rv /var/www/html/drupal/sites/default/files

Dále umožňuje Drupalu odesílat odchozí e-maily pomocí následujícího příkazu:

setsebool -P httpd_can_sendmail on

Dále budete muset vytvořit pravidlo brány firewall pro povolení služeb HTTP a HTTPS z externích sítí. Můžete to povolit pomocí následujícího příkazu:

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

Zabezpečte Drupal pomocí Let's Encrypt SSL

Drupal je nyní nainstalován a nakonfigurován. Je čas to zabezpečit pomocí bezplatného SSL Let's Encrypt.

Chcete-li tak učinit, budete si muset na svůj server stáhnout klienta certbot. Správná oprávnění si můžete stáhnout a nastavit spuštěním následujícího příkazu:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot- auto
chmod 0755 /usr/local/bin/certbot-auto

Nyní spusťte následující příkaz k získání a instalaci certifikátu SSL pro váš web Drupal.

certbot-auto --nginx -d example.com

Výše uvedený příkaz nejprve nainstaluje všechny požadované závislosti na váš server. Po instalaci budete požádáni o zadání e-mailové adresy a přijetí podmínek služby, jak je uvedeno níže:

Ukládání protokolu ladění do /var/log/letsencrypt/letsencrypt.log Vybrané pluginy:Authenticator apache, Installer apacheZadejte e-mailovou adresu (používá se pro naléhavá upozornění na obnovení a zabezpečení) (Zadejte „c“ pro zrušení):[email protected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Přečtěte si podmínky služby na https://letsencrypt.org /documents/LE-SA-v1.2-November-15-2017.pdf. Chcete-li se zaregistrovat na serveru ACME na adrese https://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel:A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Byli byste ochotni sdílet svou e-mailovou adresu s Electronic FrontierFoundation, zakládajícím partnerem projektu Let's Encrypt a neziskovou organizací, která vyvíjí Certbot? Rádi bychom vám zaslali e-mail o naší práci na šifrování webu, novinkách EFF, kampaních a způsobech podpory digitální svobody.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(Y)es/(N)ne:Y Získání nového certifikátu Provedení následujících výzev:http-01 challenge for example.comČekání na ověření...Probíhá úklid challengeDeploying Certificate to VirtualHost /etc/nginx/conf.d/drupal.conf

Dále budete muset zvolit, zda chcete přesměrovat provoz HTTP na HTTPS, jak je znázorněno níže:

Zvolte prosím, zda chcete přesměrovat provoz HTTP na HTTPS a odebrat přístup HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1:Žádné přesměrování - Nedělejte žádné další změny v konfiguraci webového serveru.2:Přesměrování - Proveďte přesměrování všech požadavků na zabezpečený přístup HTTPS. Vyberte toto pro nové weby, nebo pokud jste si jisti, že váš web funguje na HTTPS. Tuto změnu můžete vrátit zpět úpravou konfigurace vašeho webového serveru.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vyberte příslušné číslo [1-2] a poté [enter] (zrušte stisknutím 'c'):2

Zadejte 2 a pokračujte stisknutím klávesy Enter. Po dokončení instalace byste měli vidět následující výstup:

Přesměrování veškerého provozu na portu 80 na ssl v /etc/nginx/conf.d/drupal.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Gratulujeme! Úspěšně jste povolili https://example.comMěli byste otestovat svou konfiguraci na:https://www.ssllabs.com/ssltest/analyze.html?d=example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DŮLEŽITÉ POZNÁMKY:- Gratulujeme! Váš certifikát a řetězec byly uloženy na:/etc/letsencrypt/live/example.com/fullchain.pem Váš soubor klíče byl uložen na:/etc/letsencrypt/live/example.com/privkey.pem Platnost vašeho certifikátu vyprší dne 2020-03-23. Chcete-li v budoucnu získat novou nebo vylepšenou verzi tohoto certifikátu, jednoduše znovu spusťte certbot-auto s možností „certonly“. Chcete-li neinteraktivně obnovit *všechny* své certifikáty, spusťte „certbot-auto renew“ – Pokud se vám Certbot líbí, zvažte prosím podporu naší práce:Darováním pro ISRG / Let's Encrypt:https://letsencrypt.org/donate Darováním pro EFF:https://eff.org/donate-le

Přístup k webu Drupal

Nyní otevřete webový prohlížeč a zadejte adresu URL https://example.com . Budete přesměrováni na následující stránku:

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

Vyberte svůj instalační profil a klikněte na Uložit a pokračovat knoflík. Měli byste vidět následující stránku:

Zadejte podrobnosti o databázi a klikněte na Uložit a pokračovat knoflík. Měli byste vidět následující stránku:

Zadejte název svého webu, uživatelské jméno správce, heslo a klikněte na tlačítko Uložit a pokračovat knoflík. Na následující stránce byste měli vidět svůj řídicí panel Drupal:

Gratulujeme! úspěšně jste nainstalovali a zabezpečili Drupal na serveru CentOS 8.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Zabezpečte Nginx pomocí Lets Encrypt na CentOS 7

  3. Zabezpečte Apache pomocí Lets Encrypt na CentOS 7

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

  2. Jak nainstalovat OwnCloud 8 s Nginx a MariaDB na CentOS 7

  3. Jak nainstalovat Shopware s NGINX a Lets Encrypt na CentOS 7

  1. Jak nainstalovat WonderCMS s Nginx a nechat šifrovat SSL na CentOS 7

  2. Jak nainstalovat Pico CMS s Nginx a Lets Encrypt na CentOS 7

  3. Nainstalujte Automad CMS s Nginx a Lets Encrypt SSL na CentOS 7