Instalacja serwera www
Ostatnia zmiana: 2013-11-26 18:43

Czasami zdarza się, że potrzebujemy uruchomić prosty serwer www, prezentujący statyczne strony www lub korzystające ze skryptów cgi. Można to oczywiście zrobić na OpenWrt. Poniższe przykłady uruchamiają dodatkowy serwer nasłuchujący na porcie 81 z katalogiem domowym umieszczonym w /mnt/usbdrive/www.

httpd/busybox

Starsze wersje OpenWrt (8.09) zawierały serwer httpd będący częścią składową busyboxa. Jeżeli nadal używana jest taka wersja OpenWrt - do uruchomienia nowego serwera niezbędne są następujące polecenia


    # uci add httpd httpd
    # uci set httpd.@httpd[-1].port=81
    # uci set httpd.@httpd[-1].home=/mnt/usbdrive/www
    # uci commit httpd
    # /etc/init.d/httpd start

httpd_gargoyle



    httpd_gargoyle -p 81 -d /mnt/usbdrive/www

Do dodania np. do pliku /etc/rc.local na samym początku.

uhttpd

W nowszych wersjach OpenWrt (10.03 i późniejsze) dostępny jest zewnętrzny program uhttpd posiadający większe możliwości (np. obsługę ssl oraz skryptów lua). Aby uruchomić nowy serwer należy go najpierw zainstalować:


    # opkg update
    # opkg install uhttpd

a następnie dodać nową instancję


    # uci add uhttpd uhttpd
    # uci set uhttpd.@uhttpd[-1].listen_http=0.0.0.0:81
    # uci set uhttpd.@uhttpd[-1].home=/mnt/usbdrive/www
    # uci commit uhttpd
    # /etc/init.d/uhttpd start

Lighttpd

Jest to alternatywa do znanego serwera Apache, często wykorzystywana w środowiskach gdzie liczy się "lekkość" i szybkość działania. Ten serwer ma potężne możliwości, do skonfigurowania przez instalacje dodatkowych modułów.


    # opkg update
    # opkg install lighttpd
    # sed -i 's/#server.port.*/server.port = 81/' /etc/lighttpd/lighttpd.conf
    # sed -i 's/"\/www\/"/"\/mnt\/usbdrive\/www\/"/' /etc/lighttpd/lighttpd.conf
    # /etc/init.d/lighttpd start

Plik konfiguracyjny znajduje się w /etc/lighttpd/lighttpd.conf. Polecenia z sed zamieniają port i katalog domowy w pliku konfiguracyjnym. Należy zapoznać się możliwościami serwera na stronie projektu!

Apache



    # opkg update
    # opkg install apache
    # sed -i 's/Listen=80/Listen=81/' /etc/apache/httpd.conf
    # sed -i 's/"\/usr\/share\/htdocs"/"\/mnt\/usbdrive\/www\/"/' /etc/apache/httpd.conf
    # echo "apachectl start" > /etc/rc.local 
    # echo "exit 0" >> /etc/rc.local 

Patrz także ten dokument.

Wbudowany interfejs do zarządzania ruterem

Standardowy obraz OpenWrt zawieraja środowisko graficzne do zarządzania ruterem - LuCI, które nasłuchuje na porcie 80 i/lub 443. Z tego też powodu nowy serwer musi albo nasłuchiwać na innym porcie, albo ten od gui musi zostać przesunięty na inny (np. 8080). Wykonuje się to zmieniając zmienną listen_http w pliku /etc/config/uhttpd.

Zakończenie

Jeżeli dostęp do serwera http ma być od strony internetu należy pamiętać o odblokowaniu odpowiedniego portu na firewallu. W tym przypadku dla portu 81:


    # uci add firewall rule
    # uci set firewall.@rule[-1]._name=Webserver
    # 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=81
    # uci commit firewall
    # /etc/init.d/firewall start