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 nainstalujeme Drupal 8.1.10 s webovým serverem Nginx, MariaDB 10 jako databázový server a PHP-FPM (PHP 7.0) pro zpracování požadavků PHP. Také vám ukážu, jak nainstalovat SSL certifikát pro zabezpečení webu Drupal.
Předpoklady
- Ubuntu 16.04 – 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 php7.0-fpm s rozšířením php-gd, které vyžaduje drupal core:
sudo apt-get install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-xml -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/7.0/fpm" a upravte soubor "php.ini":
cd /etc/php/7.0/fpm/
vim php.ini
On line 761 , 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 51 – 58 použít php-fpm s nginx.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-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 php7.0-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 soubor info.php na IP serveru (v mém případě http://192.168.1.4/info.php) ve webovém prohlížeči. 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
mysql_secure_installation
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
... Success!
Disallow root login remotely? [Y/n] Y
... Success!
Remove test database and access to it? [Y/n] Y
... Success!
Reload privilege tables now? [Y/n] Y
... Success!
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 " byly vytvořeny.
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;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.0-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í wget nebo drush. Zde použiji wget:
cd /var/www/drupal8
wget https://ftp.drupal.org/files/projects/drupal-8.1.10.tar.gz
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:
tar -xzvf drupal-8.1.10.tar.gz
mv drupal-8.1.10/* .
rm -rf drupal-8.1.10
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.
Upozorňujeme, že tato příručka byla právě aktualizována z Drupalu 8.1.8 na 8.1.10 v příkazech, aby zahrnovala nejnovější bezpečnostní záplaty pro Drupal vydané dnes, snímky obrazovky stále ukazují číslo verze 8.1.8, protože rozhraní se nezměnilo . Pro instalaci byste měli vždy použít nejnovější stabilní verzi Drupalu a nahradit číslo verze ve výše uvedených příkazech k instalaci.
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-mailová adresa atd.

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

Může se zobrazit 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 na ubuntu 16.04 nainstalován Drupal 8.1 s Nginx a SSL.
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-GPL. 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.1.10. 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 na serveru Drupal.