Když na Virtuálním serveru (VPS) máme nainstalovaný LEMP (Linux, Nginx, MySQL a PHP) a bezpečnostní certifikát, konečně se můžeme pustit do samotných webových stránek. Ne každý však dokáže vytvořit web na zelené louce pomocí jazyků jako HTML, JavaScript nebo PHP, a tak tu máme systémy správy obsahu (anglická zkratka CMS, čili Content Management System).
Celosvětově jeden z nejpopulárnějších a nejpoužívanějších CMS je rozhodně Joomla (Joomla!). Ide o systém zprávy obsahu, který nám maximálně zjednoduší celý proces tvorby webových stránek. Web s unikátním vzhledem a obsahem dokážeme vytvořit bez programování, stačí pouze klikat ve webovém prohlížeči.
Nastavujeme webový server Nginx
Aby Joomla dokázal zobrazit články na trvalých odkazech (permalinks) v pěkném formátu (namísto /index.php/ahoj-svete/
bude na konci URL /ahoj-svete/
), musíme upravit konfigurační soubor webového serveru Nginx:
sudo nano /etc/nginx/sites-available/default
V konfiguračním souboru si najdeme řádek s obsahem server {
s následným komentářem # SSL configuration
a v části location / {
upravíme hodnotu direktivy try_files
takto:
try_files $uri $uri/ /index.php?$args =404;
Pod direktivu ssl_dhparam
ještě vložíme tyto řádky:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
Konfigurační soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Restartujeme webový server Nginx, aby se změna v konfiguračním souboru projevila:
sudo systemctl restart nginx
Podrobnější nastavení webového serveru Nginx pro potřeby Joomla najdete v oficiální dokumentaci projektu Nginx na adrese https://docs.joomla.org/Nginx#Configure_Nginx.
Nastavujeme PHP
V první řadě je potřeba zabezpečit aktuálnost všech balíků. Nainstalujeme tedy všechen updatovaný software pomocí dvou příkazů v jedné dávce:
sudo apt update && sudo apt upgrade
Když systém najde aktualizovatelné balíčky, takto se zeptá, jestli je chcete začít instalovat:
Do you want to continue? [Y/n]
Stlačte klávesu y
když chcete začít aktualizační proces nebo klávesu n
, když aktualizovat nechcete. Následně stlačte klávesu Enter
.
Aby Joomla fungoval správně jako celek, potřebuje moduly, které po běžné instalaci jazyka PHP nejsou k dispozici. Tímto příkazem je tedy nainstalujeme:
sudo apt install php-curl php-gd php-imagick php-mbstring php-xml php-zip
Systém se takto zeptá, jestli moduly chcete začít instalovat:
Do you want to continue? [Y/n]
Stlačte klávesu y
když chcete začít instalační proces nebo klávesu n
, když aktualizovat nechcete. Následně stlačte klávesu Enter
.
Zjistíme si verzi PHP, kterou máme nainstalovanou:
php -v
abychom ve správném konfiguračním souboru php.ini
sudo nano /etc/php/7.4/fpm/php.ini
mohli nastavit tyto řádky:
short_open_tag = On
cgi.fix_pathinfo = 0
max_execution_time = 600
max_input_time = 600
default_socket_timeout = 600
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
date.timezone = Europe/Bratislava
Konfigurační soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Restartujeme zjištěnou verzi PHP, aby se projevily změny zapsané do konfiguračního souboru:
sudo systemctl restart php7.4-fpm
Vytváříme uživatele a databázi v MySQL
Joomla textové údaje jako články nebo komentáře ukládá do databáze. Aby Joomla mohl s databázovým serverem MySQL bezpečně komunikovat, musíme vytvořit nového uživatele s omezenými právy (nepoužijeme uživatele root). Spustíme tedy komunikaci s databázovým serverem MySQL:
sudo mysql
vytvoříme uživatele (zde tibor
), kterému přiřadíme dostatečně silné heslo (zde Toto.Hes1o.je:silne
). V hesle použijeme minimálně 8 znaků – malá a velká písmena, čísla a speciální znaky jako tečka, čárka, dvojtečka, zavináč, otazník, vykřičník, …
create user 'tibor'@'localhost' identified by 'Toto.Hes1o.je:silne';
vytvoříme databázi s názvem joomla:
create database joomla;
a uživateli tibor
udělíme všechny práva na práci s databází joomla
takto:
grant all privileges on joomla.* to 'tibor'@'localhost';
flush privileges;
Ukončíme práci s MySQL serverem:
exit
Instalujeme Joomla
Před samotnou instalací Joomla vymažeme všechen obsah složky html
:
sudo rm -rf /var/www/html/*
Přemístíme se do složky html, kde budeme instalovat Joomla:
cd /var/www/html
Na adrese https://downloads.joomla.org/latest zkopírujeme URL adresu archívu tar.gz s nejnovější verzí Joomla. Stáhneme (první řádek) a rozbalíme (druhý řádek) potřebné soubory a složky aktuální verze Joomla:
sudo wget https://downloads.joomla.org/cms/joomla3/3-9-19/Joomla_3-9-19-Stable-Full_Package.tar.gz
sudo tar -zxvf Joomla_3-9-19-Stable-Full_Package.tar.gz
Vymažeme zbytečné složky a soubory (první řádek) a následně určíme vlastnictví a oprávnění souborů a složek (poslední 2 řádky):
sudo rm -rf Joomla_3-9-19-Stable-Full_Package.tar.gz
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
Ostatní nastavení zvládneme přes webový prohlížeč na adrese serveru (zde vps.websupport.tech) podle těchto kroků:
- Configuration > Select Language: Čeština (Česko)
- Konfigurace > Název webových stránek: Joomla
- Konfigurace > E-mail: jmeno.prijmeni@domena.cz
- Konfigurace > Uživatelské jméno: tibor
- Konfigurace > Heslo a Ověření hesla: Toto.Hes1o.je:silne
- Konfigurace > Web je vypnutý: Ne (zelené pozadí, bílé písmo)
- Konfigurace > modré tlačítko Nast.
- Databáze > Typ databáze: MySQLi
- Databáze > Jméno hostitele: localhost
- Databáze > Uživatelské jméno: tibor
- Databáze > Heslo: Toto.Hes1o.je:silne
- Databáze > Pro tento typ databáze neexistuje schéma databáze: joomla
- Databáze > Předpona tabulky: joomla_
- Databáze > Zpracování staré databáze: Odstranit (červené pozadí, bílé písmo)
- Databáze > modré tlačítko Nast.
- Přehled > Nainstalovat vzorové údaje: Žádné
- Přehled > Nastavení e-mailu: Ne (zelené pozadí, bílé písmo)
- Přehled > modré tlačítko Instalovat
Po úspěšné instalaci se zeleným zobrazí „Blahopřejeme! Joomla! je nainstalovaná.“ takto:
Klikněte na tlačítko „Odstraňte adresář„, následně na tlačítko „Administrátor“ a přihlaste se výše zvolenými přihlašovacími údaji.
Shrnutí
Nastavili jsme webový server Nginx, nainstalovali chybějící moduly jazyka PHP, nastavili jsme některé proměnné PHP a vytvořili jsme nového uživatele databázového serveru MySQL, abychom následně mohli nainstalovat CMS Joomla pomocí webového instalátoru. Část instalačního procesu proběhl v příkazovém řádku (linuxový shell bash) a část ve webovém prohlížeči. Všechny ostatní vlastnosti Joomla je možné nastavit v grafickém prostředí webového prohlížeče. Stejně tak přes webový prohlížeč zrealizujeme instalace, aktualizace a přidání nového obsahu.