Serwer www na OpenWrt

httpd(busybox)

Jednym z głównych elementów OpenWrt jest busybox, który zawiera wbudowany już prosty serwer www.

Listę dostępnych opcji można uzyskać po wydaniu polecenia

httpd -h

Aby udostępnić zasoby wystarczy wydać polecenie:

httpd -h /mnt/disck0_1 -p 8080 

- udostępnienie katalogu /mnt/disck0_1 na porcie 8080.

UWAGA: na porcie 80 najprawdopodobniej jest już uruchomiony interfejs webif, należy podać więc inny port (w przykładzie: 8080).

W tym katalogu należy również umieścić plik index.html zawierający listę udostępnionych zasobów

W przypadku udostępnienia zasobów z zewnątrz należy dodać odpowiednie reguły do pliku /etc/firewall.user

echo "iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 8080 -j ACCEPT" >> /etc/firewall.user
echo "iptables -A input_rule -i $WAN -p tcp --dport 8080 -j ACCEPT" >> /etc/firewall.user

lighttpd

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.

Instalacja potrzebnych pakietów

Kamikaze
opkg install lighttpd
opkg install lighttpd-mod-cgi
opkg install lighttpd-mod-status
opkg install php5
opkg install php5-cgi
opkg install php5-mod-gpd

Razem z tym powinny się zainstalować następujące biblioteki: libopenssl, libpcre, libpthread, libsqlite3, libxml2, zlib, libgd, libjpeg, libpng.

UWAGA-1: Należy pamiętać o dowiązaniu bibliotek do root'a w przypadku zainstalowania na zewnętrznym dysku

Zmiana portu dla X-Wrt

Konieczne jest edytowanie pliku

Kamikaze
nano /etc/init.d/httpd
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50

start() {
        include /lib/network
        scan_interfaces
        config_get ifname wan hostname
        [ -d /www ] && httpd -p 81 -h /www -r ${hostname:-OpenWrt}
}

stop() {
        killall httpd
}

Następnie w konsoli ssh wpisujemy:

Kamikaze
killall -9 httpd
/etc/init.d/httpd start

Jeżeli nie korzystamy z X-Wrt można wogóle wyłączyć domyślny busybox'owy serwer http

/etc/init.d/httpd disable

UWAGA-2: Od tej pory panel administracyjny X-Wrt dostępny jest na porcie 81 - http://192.168.1.1:81

Konfiguracja

Whiterussian i Kamikaze

Tworzymy teraz katalog w którym będą znajdowały się nasze stronki 'www': (w tym przypadku dysk zamontowany na /hdd)

mkdir /hdd/www
chmod 777 /hdd/www

Kolejnym krokiem jest odpowiednia konfiguracja zarówno php, jak i lighttpd.

Kamikaze
nano /etc/php.ini

zmiany dokonujemy takie same jak powyżej.

Whiterussian i Kamikaze

A w pliku '/etc/lighttpd.conf':

 server.modules = ( 
  #	"mod_rewrite", 
  #	"mod_redirect", 
  #	"mod_alias", 
  #	"mod_auth", 
  	"mod_status", 
  #	"mod_setenv",
  #	"mod_fastcgi",
  #	"mod_proxy",
  #	"mod_simple_vhost",
  	"mod_cgi",
  #	"mod_ssi",
  #	"mod_usertrack",
  #	"mod_expire"
  )
  
  server.document-root = "/hdd/www/"
  server.errorlog = "/var/log/lighttpd/error.log"
  
  index-file.names = ( "index.php", "index.html", "default.html", "index.htm", "default.htm" )
  
  server.dir-listing = "enable"
  
  cgi.assign = ( ".php" => "/usr/bin/php" ) #dla Whiterussian

  cgi.assign = ( ".php" => "/usr/bin/php-cgi" ) #dla Kamikaze

  #### status module
  status.status-url = "/server-status"
  status.config-url = "/server-config"

Finalizacja

Tworzymy plik phpinfo:

cat > /www/phpinfo.php
<?php phpinfo(); ?>
<CTRL+C>

Możemy sprawdzić już trudy naszej prace poprzez:

http://192.168.1.1/phpinfo.php
http://192.168.1.1/server-status
http://192.168.1.1/server-config
zastosowania/serwer_http.txt · ostatnio zmienione: 2010/03/14 18:25 (edycja zewnętrzna)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0