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.