Serwer www na OpenWrt

uhttpd

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

PHP5

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

lighttpd+php

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" )

LAMP

zastosowania/serwer_http.txt · ostatnio zmienione: 2011/08/05 12:49 przez arteq
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0
Profesjonalny Hosting