Přihlásit se

Článek o instalaci Joomla na Raspberry Pi vyšel už před víc než dvěma roky. Za tu dobu se toho hodně změnilo. Nejenže Joomla! Definitivně přechází na verzi 4, ale i PHP si polepšilo na verzi 8.1 a samotný linux Debian je už ve verzi 11. Pojďme se podívat, jak tyto změny ovlivnily instalaci Joomly na Raspberry Pi.

 

Celý postup opět rozdělím do několika samostatných kroků:

  1. Instalace linuxu, připojení telnetem, prvotní aktualizace systému
  2. Instalace webového serveru Apache2
  3. Instalace PHP 8.1
  4. Instalace SQLi mariadb
  5. Instalace Joomla! 4

Jednotlivé kroky nejsou složité a věřím, že se s nimi hladce vypořádáte.

1)  Instalace linuxu, připojení telnetem, prvotní aktualizace systému

Linux si stáhneme z oficiální adresy https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit Stačí Raspberry Pi OS Lite. Já jsem instaloval verzi Debian 11 bullseye z 6.9.2022. Archiv má poněkud nezvyklou koncovku *.xz, ale jde rozbalit běžnými programy pro práci s archivy typu zip nebo rar. Na SD kartu nebo lépe na SSD disk připojený přes redukci na USB jej nahrajeme programem Raspberry Pi Imager. https://www.raspberrypi.com/software/ Já jsem použil verzi 1.7.2. Důležité je v nastavení zatrhnout položku Enable SSH, Use password authentication. Po nahrání systému můžeme Raspberry Pi spustit.

Pokud neznáte IP adresu Raspberry Pi ve vaší domácí síti, můžete ji zjistit třeba programem IPScan https://www.advanced-ip-scanner.com/ Já jsem použil verzi 2.4.30. Nemusíte ho instalovat, stačí spustit. Raspberry Pi poznáte tak, že MAC adresa začíná čísly B8:27:EB… To platí u Raspberry Pi 3 model B.

S Raspberry Pi budeme komunikovat pomocí terminálu telnet - třeba programem putty. https://www.putty.org Já jsem použil verzi 0.76. Zadáme IP adresu a protokol Telnet, SSH, Port 22.

Při prvním připojení telnetem je defaultní jméno / heslo nastavené na pi / raspberry. Hned po připojení bychom měli provést základní konfiguraci.

sudo raspi-config

Zde doporučuji nastavit alespoň tyto položky:

  • Password: 1, S3 Change user password
  • Boot: 1, S5, B1 Console
  • Localization: 5, L2 Timezone, Europe, Prague
  • Localization: 5, L4 WLAN Country Set, CZ Czech Republic
  •  Advanced Option: 6, A1 Expand Filesystem

Na závěr těchto úprav je potřeba potvrdit restart. Při druhém připojení telnetem, teď už pod novým heslem, doporučuji provést aktualizace.

sudo apt-get update
sudo apt-get upgrade -y
sudo reboot

Tím máme Raspberry Pi připravené k provozu.

 

2) Instalace webového serveru Apache2

Zde se za poslední dva roky skoro nic nezměnilo. Opět použijeme server Apache2, který je v repozitářích Raspberry Pi OS. Instalace je jednoduchá.

sudo apt-get install apache2 -y

Úspěšnost instalace si můžeme snadno ověřit tak, že do libovolného webového prohlížeče zadáme jako adresu IP vašeho Raspberry Pi.

http://192.168.xxx.xxx

Apache by měl odpovědět svou defaultní stránkou. Pokud vás zajímá přesná verze, zadejte do terminálu:

apache2 -v

Program Apache2 používá jako kořenový adresář svého webu /var/www/html/ Přístupová práva pro zápis jsou povolena jen vlastníku adresáře, proto je rozšíříme i na ostatní uživatele.

sudo chmod -R 777 /var/www

Parametr -R říká, že změna platí i pro všechny podadresáře, tedy i pro původní /html/. Toto nastavení nám pomůže během přípravných prací. Před vlastní instalací Joomly jej opět změníme.

Na závěr ještě pomocí textového editoru zkontrolujeme a případně upravíme konfigurační soubor Apache2

sudo nano /etc/apache2/apache2.conf

zde vyhledáme sekci:

Directory /var/www/
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
/Directory

 

a případné rozdíly opravíme podle uvedeného příkladu. Pak změny uložíme a restartujeme Apache2 příkazem

sudo service apache2 restart

 

3) Instalace PHP 8.1

Verze skriptovacího jazyka PHP se už dostala na číslo 8.1. Ale v repozitářích  Raspberry Pi OS Debian 11 bullseye bychom ji hledali marně. Musíme tedy připojit repozitář třetí strany.

Nejdříve stáhneme GPG klíč

sudo wget -qO /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

pak přidáme novou položku do seznamu repozitářů

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

a zaktualizujeme informace o repozitářích

sudo apt-get update

Pak už můžeme instalovat PHP 8.1


sudo apt-get install -y php8.1-common php8.1-cli
sudo apt-get install -y libapache2-mod-php8.1
sudo service apache2 restart

 

Úspěšnost zkontrolujeme spuštěním nějakého PHP skriptu. Nejprve smažeme soubor index.html, který vytvořil Apache2

rm /var/www/html/index.html

a potom místo něj vytvoříme skript index.php

echo "<?php phpinfo ();?>" > /var/www/html/index.php

Když teď do libovolného webového prohlížeče zadáme jako adresu IP vašeho Raspberry Pi, zobrazí se vám výsledek vytvořený tímto skriptem. Mně se hlásí PHP jako verze 8.1.10.

Defaultní nastavení PHP ale není pro práci s Joomlou ideální. Bude potřeba některé položky změnit. Otevřeme tedy soubor php.ini v editoru nano

sudo nano /etc/php/8.1/apache2/php.ini

a pomocí Ctrl + W najdeme a pak upravíme položky:

  • upload_max_filesize: 2M změníme třeba na 32M
  • post_max_size: 8M změníme třeba na 32M
  • upload_tmp_dir: smažeme úvodní středník a doplníme hodnotu: upload_tmp_dir  = /tmp/

Uložíme a restartujeme apache

sudo service apache2 restart

 

4) Instalace SQLi mariadb

Posledním programem, který Joomla potřebuje pro svou funkčnost, je databáze. Ani zde se toho příliš nezměnilo, takže nainstalujeme SQLi  mariadb.

sudo apt-get install mariadb-server -y

Teď vyzkoušíme její funkčnost.

sudo mysql -u root -p

zde zadáme heslo uživatele pi, které jsme si změnili na začátku v bodu 1).

SELECT VERSION();

Tím se vypíše info o verzi pomocí SQL příkazu. Databáze běží. Ovšem obsahuje přístupová práva pro jediného uživatele root. Pokud se při instalaci Joomly snažíme připojit k databázi jako uživatel root, skončíme na chybovém hlášení: Could not connect to MySQL server. Je potřeba vytvořit libovolného jiného uživatele. Já jsem vytvořil uživatele hugo s heslem spoluprace.

CREATE USER 'hugo'@'localhost' IDENTIFIED BY 'spoluprace';

Protože nový uživatel nic moc nemůže, přiřadíme mu potřebná práva.

GRANT ALL PRIVILEGES ON *.* TO 'hugo'@'localhost' WITH GRANT OPTION;

Ještě můžeme zkontrolovat, že nově vytvořený uživatel skutečně existuje.

SELECT User FROM mysql.user;

A pak už můžeme práci s databází ukončit.

QUIT

Posledním úkolem je umožnit PHP skriptům, aby mohly pracovat s databází. Proto nainstalujeme program phpmyadmin, který vše potřebné zařídí.

sudo apt-get install –y phpmyadmin

Během instalace se zeptá, jaký typ webového serveru používáme - mezerníkem vybrat apache2. Pak se zeptá, jestli spustit konfiguraci - Ano. Na závěr se zeptá na heslo. Já jsem zadal stejné, jako pro vytvořeného uživatele hugo: spoluprace.

 

5) Instalace Joomla! 4

Tím by měly být všechny přípravné práce hotové a můžeme se pustit do vlastní instalace Joomly 4.

Nejprve smažeme soubor index.php, který jsme vytvořili v adresáři /var/www/html/ a místo něj sem nakopírujeme celou Joomlu. Můžeme to udělat pomocí libovolného ftp klienta,  třeba programem FileZilla. https://filezilla-project.org Já mám verzi 3.60.2. Komu se líbila práce z terminálu, může zkusit:

rm /var/www/html/index.php
wget https://github.com/joomla/joomla-cms/releases/download/4.2.2/Joomla_4.2.2-Stable-Full_Package.tar.gz
tar -xvzf Joomla_4.2.2-Stable-Full_Package.tar.gz -C /var/www/html
rm /home/pi/Joomla_4.2.2-Stable-Full_Package.tar.gz

Samozřejmě číslo verze si musíme upravit ručně podle aktuálního stavu. V době mých testů to byla Joomla 4.2.2. Příkaz wget stáhne soubor do adresáře /home/pi/. Odtud ho příkazem tar rozbalíme do adresáře /var/www/html/ a pak jej už můžeme příkazem rm smazat.

V tuto chvíli ještě znovu upravíme přístupová práva.

cd /var/www/html
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
sudo chown -R www-data .

a tečka za www-data je důležitá, tak ji nepřehlédněte. Chvíli to trvá, takže se zdá, jako by se nic nedělo. Ale mějte trpělivost. Instalaci Joomly spustíme tak, že do webového prohlížeče zadáme IP adresu vašeho Raspberry Pi s cestou ke spouštěcímu souboru.

http://192.168.xxx.xxx/installation/index.php

Na první stránce není co řešit, prostě zadáme své údaje. Na druhé stránce si zvolíme přihlašovací údaje. Jomla! 4 vyžaduje heslo o délce minimálně 12 znaků. Na třetí stránce musíme správně zadat údaje pro práci s databází. Já jsem je vyplnil takto:

  • typ databáze: MySQLi
  •  hostitel: localhost
  • jméno správce: hugo
  •  heslo: spoluprace
  •  název databáze: hugodb
  •  předpona tabulek: hu01_

Joomla! 4 nehlásí, jestli je prostředí správně připravené, a rovnou spustí instalaci. Předpokládám, že případné nesrovnalosti by přece jen ohlásila. Ale mě se to ještě nestalo. Na poslední stránce máme možnost doinstalovat další jazyky a případně vybrat, který bude výchozí. My Češi samozřejmě přidáme češtinu. A tím je hotovo.

Pokud si budeme chtít instalaci Joomly zopakovat, stačí smazat vše v adresáři /var/www/html/ a pak znovu projít bod 5). Pokud k mazání použijeme ftp klienta s přístupovými právy běžného uživatele pi, moc neuspějeme. Proto pro něj musíme nejdřív z terminálu povolit přístup k adresářům a souborům.

sudo chown pi.pi /var/www/html -R

Pak už lze ftp klientem předchozí instalaci smazat.