Instalace systému Joomla! na Raspberry Pi

04.03.2020 10:28 1258 zhlédnutí
Autor článku
Hugocz
Článek uživatele

Joomla se většinou instaluje na webhosting někam daleko do hlubin internetu. Ale třeba jste začátečníci, kteří si chtějí nejdříve práci s joomlou jen tak nezávazně osahat. Nebo chcete zkoušet věci, pro které Váš provider (zatím) nemá pochopení. Pak se Vám bude hodit Joomla na nějakém malém domácím serveru. A k tomu je Raspberry Pi jako stvořené.

 Použití Raspberry Pi pro instalaci Joomly má pár drobných záludností. Není to nic nepřekonatelného, ale sbírat střípky informací od lidí kolem Raspberry Pi, kteří se Joomle nevěnují, může být poněkud zdlouhavé. Proto se zde pokusím shrnout vše, čím jsem si musel projít. Celý postup 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
  4. Instalace MySQL / mariadb
  5. Instalace Joomla!

Seznam to není dlouhý, tak nebudeme zbytečně otálet a vzhůru do díla.

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

 Nakopírování linuxu na paměťové médium je vcelku podrobně rozebrané na mnoha webech o Raspberry Pi, takže to zde nebudu opakovat. Postup můžeme najít třeba tady
 První rozhodnutí, které budeme muset udělat, je kam s ním. Běžně se používá SD karta. Na starších typech Raspberry Pi 1 a 2 jiná možnost téměř není. U typu Raspberry Pi 3 lze použít USB disk, nebo SSD disk mSATA připojený přes externí redukci do USB portu.  Možnost spouštět systém z USB se ale musí nejprve aktivovat zápisem bitu usb_boot_mode = 1 do paměti Raspberry Pi. Postup najdeme třeba tady. Pro Raspberry Pi 4 tento postup neplatí. Autoři slibují jeho implementaci v budoucnu, ale nevím, jestli se tak už stalo. Nicméně lze použít SD kartu jen pro zavedení systému a celý linux i s uživatelskými programy a daty mít na USB disku. Trocha teorie je třeba tady
 Pokud budeme testovat Joomlu jen krátce, řekněme tak několik  měsíců, stačí dobrá SD karta. Pokud ale své dílo budeme chtít testovat ve větším provozním zatížení a delší dobu, důrazně doporučuji použít USB disk, který vydrží mnohem větší nápor fyzických zápisů. USB fleška nic neřeší, je to stejná technologie jako SD karta.
 Jako systém jsem použil oficiální Raspbian Buster. Pokud budeme Raspberry Pi používat pouze jako server pro Joomlu, stačí nejmenší varianta Lite. Abychom nemuseli připojovat monitor a mohli s Raspberry Pi hned od začátku komunikovat telnetem, vytvoříme v kořenovém adresáři oddílu naformátovaném na Fat32 textový soubor ssh. Může mít nulovou velikost, ale název musí být jen tyto tři malá písmena. Pokud jej budeme vytvářet na počítači s windows, kde není povoleno zobrazení přípon, bude se soubor nejspíš jmenovat ssh.txt, i když vy budete vidět jen ssh - a to je špatně. Při prvním startu Raspberry Pi hledá soubor ssh a pokud existuje, povolí přístup z terminálu telnet - třeba programem putty
 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:

  • Change user password
  • Boot Options: B1 Desktop/CLI, B1 Console
  • Localization: I2 Change Timezone, Europe, Prague
  • Localization: I4 Change Wi-fi Country, CZ Czech Republic
  • Advanced Option: A1 Expand Filesystem

Poslední položka má smysl pouze pokud používáte SD kartu. Pro USB médium ji Raspbian provede automaticky při prvním startu. 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

Pro úplnost ještě zmíním možnost další aktualizace.

sudo rpi-update
sudo reboot

Ale pro naše využítí Raspberry Pi jako server pro Joomlu tato aktualizace už není důležitá. Tím máme Raspberry Pi připravené k provozu.

2) Instalace webového serveru Apache2

Program Apache2 je asi nejrozšířenější webový server. Existují i alternativy, například Nginx nebo lighttpd, ale těmi se nebudu zabývat. 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.
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/. Pokud Raspberry Pi provozujeme jen doma v lokální síti bez přístupu cizích lidí, nemusíme řešit bezpečnostní souvislosti a to vám zjednoduší práci.

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/:

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

Skriptovací jazyk PHP je srdcem či motorem Joomly. Nezkoumal jsem, jestli už je součástí Raspbianu Lite, protože stejně musíme doinstalovat knihovny pro součinnost se serverem Apache2. Tak to vezmeme všechno z jedné vody.

sudo apt-get install php libapache2-mod-php -y
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.

4) Instalace MySQL / mariadb

Posledním programem, který Joomla potřebuje pro svou funkčnost, je databáze. Zde mě čekalo nemilé překvapení. Obvykle se používá MySQL, bohužel Raspbian od verze Buster ji už ve svých repozitářích nemá. Pro naše použití by plnohodnotnou náhradou měla být databáze  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). Pak vypíšeme info o verzi pomocí SQL příkazu.

SELECT VERSION();

Databáze běží. Ovšem obsahuje přístupová práva pro jediného uživatele root. Chvíli mi trvalo, než jsem zjistil, že pokud se při instalaci Joomly snažím připojit k databázi jako uživatel root, neuspěji. Objeví se chybové 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 phpmyadmin -y

 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 application password. Já jsem zadal stejné, jako pro vytvořeného uživatele hugo: spoluprace.

5) Instalace Joomly

 Tím by měly být všechny přípravné práce hotové a můžeme se pustit do vlastní instalace Joomly. Zde už by měl fungovat obecně platný postup, takže jen ve zkratce.
 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 klientem FileZilla. 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/3.9.10/Joomla_3.9.10-Stable-Full_Package.tar.gz
tar -xvzf Joomla_3.9.10-Stable-Full_Package.tar.gz -C /var/www/html
rm /home/pi/Joomla_3.9.10-Stable-Full_Package.tar.gz

Samozřejmě číslo verze si musíme upravit ručně podle aktuálního stavu. 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 se ještě obvykle upravují přístupová práva.

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

 Ta tečka za www-data je důležitá, tak ji nepřehlédněte. A chvíli to trvá, tak 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 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_
  • starou databázi: odebrat

Na poslední stránce v části Kontrola před instalací by už nemělo být nic červené. Pak tlačítko nainstalovat. Alternativně tlačítko Instalace jazyků. Na závěr tlačítko Odstraňte instalační složku. 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.

Informace o autorovi Hugocz

Líbil se vám článek?
(10 hlasů)

Štítky: Návod

5 komentáře

Cony
napsal(a) Cony 09. bře 2020 15:25

Super článek, dík.
Jaké jsou pak praktické zkušenosti s provozem, hlavně rychlostí. Zvládá to reagovat dostatečně rychle?

Odkaz Komentáře
Hugocz
napsal(a) Hugocz 09. bře 2020 20:21

Rychlost je relativní pojem. Jak ji chceš definovat? Já mám Raspberry Pi 3, SSD disk přes redukci do USB (dovoz Čína) a tahle konfigurace je rozhodně výrazně rychlejší, než použití SD karty. Ale já se zatím učím spíš základy jomly, takže žádné komplikované aplikace (komponenty) neprovozuji. Jestli neodpoví někdo jiný, budeš to muset vyzkoušet a dát nám vědět. :-)

Odkaz Komentáře
Cony
napsal(a) Cony 10. bře 2020 01:10

Dlouho si hraju s myšlenkou koupit si Raspberry Pi a hrát s ním, vždycky kolabuju na nedostatku času :)

Obecně jsem myslel tak nějak "rozumnou" rychlost načítání webu. Prostě když bych vzal třeba tu čistou Joomlu, tak abych v administraci nemusel na vše čekat. Třeba nějaké subjektivní srovnání s běžným hostingovým účtem (je to srovnatelné, pětkrát rychlejší, nebo pětkrát pomalejší)...

Odkaz Komentáře
Hugocz
napsal(a) Hugocz 10. bře 2020 06:08

Reakce na administraci jsou naprosto normální, takže nepozoruji žádné prodlevy. Rozhodně nemusím na nic čekat. Pokud budeš Pi teprve kupovat, asi bych zatím nedoporučil verzi 4 kvůli komplikacím s USB diskem. Já mám SSD 128 GB mSATA a chodí skvěle.

Odkaz Komentáře
Hugocz
napsal(a) Hugocz 25. bře 2020 18:31

Tak už si někdo vyzkoušel instalaci Joomly na Raspberry Pi? Pokud ano, tak jste nejspíš narazili na následující problém. Když se přihlásíte do administrace a potřebujete uploadovat nějaký soubor, třeba instalovat novou komponentu nebo přes Média nahrát nějakou fotku, maximální velikost takového souboru je 2MB. A to je docela málo. Změnit to jde v souboru php.ini, který jsem našel v adresáři /etc/php/7.3/apache2/

Postup úpravy:
1) Připojit se telnetem k Raspberry Pi.
2) Otevřít soubor pomocí příkazu: sudo nano /etc/php/7.3/apache2/php.ini
3) Najít položku (CTRL+W) upload_max_filesize, přepsat na hodnotu 8MB (víc nebere)
4) Uložit (CTRL+O, Enter).
5) Ukončit editor nano (CTRL+X).

Od této chvíle půjde uploadovat soubory až 8 MB.

Odkaz Komentáře

Nové články

Související články