Pomocí webserveru můžeme z našeho RPI zobrazovat například naměřená data, nebo RPI ovládat přes webové rozhraní (webová stránka v prohlížeči)... Tento článek se bude věnovat instalaci webového serveru s podporou PHP a MySQL. Postup je založen na sestavení Debianu...
Každý webový server je připojen k počítačové síti a přijímá požadavky ve tvaru HTTP. Tyto požadavky vyřizuje a počítači, který požadavek vznesl, vrací odpověď. Odpověď obvykle představuje nějaký HTML dokument. Může to být ale i dokument v jiném formátu – text, obrázek apod. Odpověď serveru je opět ve tvaru HTTP, je uvozena hlavičkou obsahující stavový kód, za níž následuje samotný obsah. Stavový kód odpovědi udává, zda byl požadavek vyřízen v pořádku, či zda došlo k nějakým obtížím. Dva nejčastější stavové kódy jsou 200 (OK) a 404 (Not Found). Kódy jsou trojciferná čísla, dělící se do následujících skupin:
2xx - úspěšné vyřízení požadavku
3xx - problémy spojené s přesměrováním
4xx - chyby související s vyřízením požadavku (stránka není dostupná, apod.)
5xx - interní chyby serveru
Obvykle server nějakým způsobem protokoluje přijímané požadavky a taktéž zaznamenává případné chyby. To pomáhá správci webového serveru vytvářet statistiky a podle typu a množství požadavků optimalizovat obsah, způsob uložení i způsob prezentace požadovaných dat. Webový server (program) má téměř vždy nějaké možnosti konfigurace – stanovení kořenového adresáře, z něhož je přístupný obsash poskytovaný on-line, a dále konfigurace pro každý jeho podadresář individuálně, například jaký soubor zpracovat implicitně, obsahuje-li URL pouze daný adresář, nebo v jaké časové zóně se nachází či jaké podporuje jazyky a přípony souborů. Podporuje-li webserver dynamický obsah, je součástí i nastavení interpreterů skriptovacích jazyků, jež tento obsah zpracovávají. Součástí architektury sofistikovanějších webových serverů mohou být různé zásuvné moduly a pokročilé metody řízení požadavků.
Instalace lighttpd
Lighttpd je jeden z nejmenších webových serverů a je ideální pro použití v RPI jeho výhodou je malá spotřeba místa v paměti.
Nejprve musíme nastavit skupinu a uživatelet:
sudo addgroup --system www-data
sudo adduser www-data www-data
Dále spustíme instalaci (může to chvíli trvat):
sudo apt-get install lighttpd
Můžeme zkontrolovat, zda je server správně nainstalován příkazem:
ps -u www-data u
Webový server je nainstalován, nyní zkontrolujeme v prohlížeči (zadáním IP adresy serveru) pro kontrolu lighttpd výchozí stránku s informacemi:
http://[adresa raspberry pi]/index.lighttpd.html
POZNÁMKA: soubory pro webové stránky jsou umístěny v adresáři / var / www /
Nicméně, budeme také potřebovat PHP a MySQL k dosažení většího komfortu webových stránek ...
Instalace PHP5 a MySQL
Instalace PHP a MySQL má mnohem větší velikost než samotný webový server, takže bude trvat nějaký čas než se stáhne a nainstaluje (asi 10 minut). Můžeme oba nainstalovat současně spuštěním následujícího příkazu:
sudo apt-get install mysql-server php5-cgi php5-mysql
POZNÁMKA: Během instalace budeme vyzváni k zadání hesla pro přístup k MySQL. Přístup s právy jako root (heslo, které nezapomeneme!) Budeme ho potřebovat znovu zadat dále!
Chceme-li odstranit "bordel" po stažených souborech, které jsou již nyní nainstalované a zabírají místo na disku spustíme následující příkaz pro všechny apt-get soubory ke stažení:
sudo apt-get clean
Konfigurace a Nastavení
Konfigurace lighttpd
Pro přístup k PHP serveru (webový server musí vědět, kde je jeho instalace). Budu také přidávat odpověď na "chybu 404" protože není nic horšího, než když návštěvník nedostane žádnou odpověď namísto stránky "Chyba 404"
Chceme-li zapnout cgi mod na serveru zadáme následující příkaz:
sudo lighty-enable-mod cgi
Dále musíme upravit konfigurační soubor přímo v nastavení lighttpd:
Nejprve odstraníme cgi odkaz v cgi konfiguračním souboru přidáním "#" na začátek řádku takto:
sudo pico /etc/lighttpd/conf-enabled/10-cgi-php.conf
změníme řádek:
#server.modules +=("mod_cgi")
Pro uložení stiskeme Ctrl + O a [enter] následované Ctrl-X.
Nyní budeme editovat hlavní konfigurační soubory:
sudo pico /etc/lighttpd/lighttpd.conf
Přidáme následující řádek do sekce "server.modules":
"mod_cgi",
Přidáme následující na konec souboru:
cgi.assign = (".php" => "/usr/bin/php5-cgi")
server.error-handler-404 = "/index.html"
Pro uložení změn stiskeme Ctrl + O a [enter] následované Ctrl-X.
První řádek povoluje cgi modul, druhý poukazuje pokud je naše chyba 404. Můžeme nastavit názvy souborů na libovolnou stránku, kterou chceme (já směruji pouze na index.html jako výchozí stránku.)
Poslední věc, kterou musíte udělat v konfiguraci je restartovat server:
sudo /etc/init.d/lighttpd force-reload
Nastavení a testování
Nejspíše budeme chtít zkontrolovat zda služba php funguje ok vytvořením rychlého php souboru:
sudo pico /var/www/phpinfo.php
přidáme do souboru řádky:
Pro uložení změn stiskeme Ctrl + O a [enter] následované Ctrl-X.
Nyní stejně jako dříve pomocí prohlížeče otevřeme RPI a cestu k phpinfo.php
http://[adresa raspberry pi]/phpinfo.php