Moje Rapsberry Pi - webový server

raspipidi

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:

phpobr

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