Ak na Virtuálnom serveri (VPS) máme nainštalovaný LEMP (Linux, Nginx, MySQL a PHP) a bezpečnostný certifikát, konečne sa môžeme pustiť do samotných webových stránok. Nie každý však dokáže vytvoriť web na zelenej lúke pomocou jazykov ako HTML, JavaScript alebo PHP, a tak tu máme systémy správy obsahu (anglická skratka CMS, čiže Content Management System).
Celosvetovo jeden z najpopulárnejších a najpoužívanejších CMS je rozhodne Joomla (Joomla!). Ide o systém správy obsahu, ktorý nám maximálne zjednoduší celý proces tvorby webových stránok. Web s unikátnym vzhľadom a obsahom dokážeme vytvoriť bez programovania, stačí iba klikať vo webovom prehliadači.
Nastavujeme webový server Nginx
Aby Joomla dokázal zobraziť články na trvalých odkazoch (permalinks) v peknom formáte (namiesto /index.php/ahoj-svet/
bude na konci URL /ahoj-svet/
), musíme upraviť konfiguračný súbor webového servera Nginx:
sudo nano /etc/nginx/sites-available/default
V konfiguračnom súbore si nájdeme riadok s obsahom server {
s následným komentárom # SSL configuration
a v časti location / {
upravíme hodnotu direktívy try_files
takto:
try_files $uri $uri/ /index.php?$args =404;
Pod direktívu ssl_dhparam
ešte vložíme tieto riadky:
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
Konfiguračný súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Reštartujeme webový server Nginx, aby sa zmena v konfiguračnom súbore prejavila:
sudo systemctl restart nginx
Podrobnejšie nastavenia webového servera Nginx pre potreby Joomla nájdete v oficiálnej dokumentácii projektu Nginx na adrese https://docs.joomla.org/Nginx#Configure_Nginx.
Nastavujeme PHP
V prvom rade je potrebné zabezpečiť aktuálnosť všetkých balíkov. Nainštalujeme teda všetok updatovaný softvér pomocou dvoch príkazov v jednej dávke:
sudo apt update && sudo apt upgrade
Ak systém nájde aktualizovateľné balíčky, takto sa opýta, či ich chcete začať inštalovať:
Do you want to continue? [Y/n]
Stlačte klávesu y
ak chcete začať aktualizačný proces alebo tlačidlo n
, ak aktualizovať nechcete. Následne stlačte klávesu Enter
.
Aby Joomla fungoval správne ako celok, potrebuje moduly, ktoré po bežnej inštalácii jazyka PHP nie sú k dispozícii. Týmto príkazom ich teda nainštalujeme:
sudo apt install php-curl php-gd php-imagick php-mbstring php-xml php-zip
Systém sa takto opýta, či moduly chcete začať inštalovať:
Do you want to continue? [Y/n]
Stlačte klávesu y
ak chcete začať inštalačný proces alebo tlačidlo n
, ak aktualizovať nechcete. Následne stlačte klávesu Enter
.
Zistíme si verziu PHP, ktorú máme nainštalovanú:
php -v
aby sme v správnom konfiguračnom súbore php.ini
sudo nano /etc/php/7.4/fpm/php.ini
mohli nastaviť tieto riadky:
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ý súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesy y
a potvrdením klávesou Enter
.
Reštartujeme zistenú verziu PHP, aby sa prejavili zmeny zapísané do konfiguračného súboru:
sudo systemctl restart php7.4-fpm
Vytvárame používateľa a databázu v MySQL
Joomla textové údaje ako články alebo komentáre ukladá do databázy. Aby Joomla mohol s databázovým serverom MySQL bezpečne komunikovať, musíme vytvoriť nového používateľa s obmedzenými právami (nepoužijeme používateľa root). Spustíme teda komunikáciu s databázovým serverom MySQL:
sudo mysql
vytvoríme používateľa (tu tibor
), ktorému priradíme dostatočne silné heslo (tu Toto.Hes1o.je:silne
). V hesle použijeme minimálne 8 znakov – malé a veľké písmená, čísla a špeciálne znaky ako bodka, čiarka, dvojbodka, zavináč, otáznik, výkričník, …
create user 'tibor'@'localhost' identified by 'Toto.Hes1o.je:silne';
vytvoríme databázu s názvom joomla:
create database joomla;
a používateľovi tibor
udelíme všetky práva na prácu s databázou joomla
takto:
grant all privileges on joomla.* to 'tibor'@'localhost';
flush privileges;
Ukončíme prácu s MySQL serverom:
exit
Inštalujeme Joomla
Pred samotnou inštaláciou Joomla vymažeme všetok obsah priečinka html
:
sudo rm -rf /var/www/html/*
Premiestnime sa do priečinka html, kde budeme inštalovať Joomla:
cd /var/www/html
Na adrese https://downloads.joomla.org/latest skopírujeme URL adresu archívu tar.gz s najnovšou verziou Joomla. Stiahneme (prvý riadok) a rozbalíme (druhý riadok) potrebné súbory a priečinky aktuálnej verzie 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 zbytočné priečinky a súbory (prvý riadok) a následne určíme vlastníctvo a oprávnenie súborov a priečinkov (posledné 2 riadky):
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é nastavenia zvládneme cez webový prehliadač na adrese servera (tu vps.websupport.tech) podľa týchto krokov:
- Configuration > Select Language: Slovenčina (Slovensko)
- Konfigurácia > Názov webových stránok: Joomla
- Konfigurácia > E-mail: meno.priezvisko@domena.sk
- Konfigurácia > Používateľské meno: tibor
- Konfigurácia > Heslo a Overenie hesla: Toto.Hes1o.je:silne
- Konfigurácia > Web je vypnutý: Nie (zelené pozadie, biele písmo)
- Konfigurácia > modré tlačidlo Nasl.
- Databáza > Typ databázy: MySQLi
- Databáza > Meno hostiteľa: localhost
- Databáza > Používateľské meno: tibor
- Databáza > Heslo: Toto.Hes1o.je:silne
- Databáza > Pre tento typ databázy neexistuje schéma databázy: joomla
- Databáza > Predpona tabuľky: joomla_
- Databáza > Spracovanie starej databázy: Odstrániť (červené pozadie, biele písmo)
- Databáza > modré tlačidlo Nasl.
- Prehľad > Nainštalovať vzorové údaje: Žiadne
- Prehľad > Nastavenie e-mailu: Nie (zelené pozadie, biele písmo)
- Prehľad > modré tlačidlo Inštalovať
Po úspešnej inštalácií sa zeleným zobrazí „Blahoželáme! Joomla! je nainštalovaná.“ takto:
Kliknite na tlačidlo „Odstráňte adresár„, následne na tlačidlo „Administrátor“ a prihláste sa vyššie zvolenými prihlasovacími údajmi.
Zhrnutie
Nastavili sme webový server Nginx, nainštalovali chýbajúce moduly jazyka PHP, nastavili sme niektoré premenné PHP a vytvorili sme nového používateľa databázového servera MySQL, aby sme následne mohli nainštalovať CMS Joomla pomocou webového inštalátora. Časť inštalačného procesu prebehol v príkazovom riadku (linuxový shell bash) a časť vo webovom prehliadači. Všetky ostatné vlastnosti Joomla je možné nastaviť v grafickom prostredí webového prehliadača. Rovnako cez webový prehliadač zrealizujeme inštalácie, aktualizácie a pridanie nového obsahu.