uhttpd jest to podstawowy serwer www w firmware OpenWrt. Został zastąpiony przez dziurawy httpd z busyboxa.
Instalacja jest niezwykle prosta
opkg update opkg install uhttpd
Konfiguracja odbywa się przez uci, domyślne ustawienia są następujące:
uhttpd.main=uhttpd uhttpd.main.listen_http=0.0.0.0:80 uhttpd.main.listen_https=0.0.0.0:443 uhttpd.main.home=/www uhttpd.main.cert=/etc/uhttpd.crt uhttpd.main.key=/etc/uhttpd.key uhttpd.main.cgi_prefix=/cgi-bin uhttpd.main.script_timeout=60 uhttpd.px5g=cert uhttpd.px5g.days=730 uhttpd.px5g.bits=1024 uhttpd.px5g.country=DE uhttpd.px5g.state=Berlin uhttpd.px5g.location=Berlin uhttpd.px5g.commonname=OpenWrt
W przypadku korzystania z Luci to właśnie na tym serwerze działa ten interfejs i trzeba mieć na uwadze, że port 80 jest już zajęty (można oczywiście to zmienić, ustawiając inny port).
Na uhttpd można uruchomić kilka instancji(serwerów) działających oczywiście na innych portach. Oto przykład dodania kolejnego(obok Luci) serwera www działającego na porcie 8080 podpiętego do katalogu np.: /mnt/hdd
uci set uhttpd.hdd=uhttpd uci set uhttpd.hdd.listen_http=0.0.0.0:8080 uci set uhttpd.hdd.home=/mnt/hdd uci commit uhttpd /etc/init.d/uhttpd restart
lub w postaci jednej linijki w konsoli
uhttpd -p 0.0.0.0:8080 -h /mnt/hdd
W przypadku udostępnienia zasobów z zewnątrz należy otworzyć port w zaporze:
uci add firewall rule uci set firewall.@rule[-1]._name=www_hdd uci set firewall.@rule[-1].src=wan uci set firewall.@rule[-1].target=ACCEPT uci set firewall.@rule[-1].proto=tcp uci set firewall.@rule[-1].dest_port=8080 uci commit firewall
Tak uhttpd też może działać z PHP. Trzeba spełnić kilka warunków:
Zainstalować PHP5
opkg update opkg install php5-cgi opkg install php5-mod-cgi
Jezeli będziemy używać innego katalogu z naszymi plikami niż /www/ nalezy wyedytować plik /etc/php.ini i zmienić doc_root na wartość pustą (jest ”/www”).
Ustawić poprawnie uhttpd:
Interpreter PHP5:
uci add_list uhttpd.main.interpreter=".php=/usr/bin/php-cgi" uci commit
Zrestartować serwer
/etc/init.d/uhttpd restart
Często myślimy o instalacji serwera www wraz z obsługą php. Prostym serwerem spełniającym te wymagania jest lighttpd, którego w dość łatwy sposób można zintegrować z PHP. Zaleca się zainstalowanie pakietów na dysku zewnętrznym, gdyż zajmują one sporo miejsca.
Sam serwer:
opkg update opkg install lighttpd opkg install lighttpd-mod-cgi
PHP5:
opkg install php5-cgi
Edytujemy plik /etc/lighttpd/lighttpd.conf zmieniamy port na 81 oraz lokalizację plików hostowanych przez serwer:
server.document-root = "/www_doc/" server.port = 81
Dodajemy również interpreter dla plików .php:
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
