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.