By default DD-WRT runs its own http server (/usr/sbin/httpd), providing web management interface to configure the router. The server is highly integrated and hard to reuse for our own contents. If you just want to host some web pages without CGI support, the httpd server in busybox is a good alternative.
- (Optional) Move DD-WRT's web admin to another port
The best way to do so is changing a nvram value as described here.
So login the router and run
nvram set http_lanport=88
nvram commit
Then after rebooting, the new port will be 88 and you can access the web admin at http://router_ip:88/. Everything should work just as before including firmware upgrade.
- Configure busybox httpd
The OpenWrt's busybox is installed if you followed the previous post about cron. This busybox provides more features than the DD-WRT one, including a small web server.
To launch it, run:
/opt/usr/sbin/httpd -p 80 -c /opt/etc/httpd.conf -h /opt/www The server (/opt/usr/sbin/httpd) will listen port 80 (-p 80) with configuration file /opt/etc/httpd.conf (-c /opt/etc/httpd.conf) and use /opt/www as home folder(-h /opt/www). Everything looks good, except, both our http server and dd-wrt's are called httpd. This will be a problem as DD-WRT will kill and restart the httpd service when applying some settings. If that ever happens, our httpd service will be terminated unexpectedly. So let's change the service name. Here is (another) dirty hack but works for me. Log in PuTTY and run: cp /opt/bin/busybox /opt/bin/busybox.orig cp /opt/bin/busybox /tmp/busybox sed -i 's/httpd$/httpe/g' /tmp/busybox cp /tmp/busybox /opt/bin/busybox ln -s /opt/bin/busybox /opt/usr/sbin/httpe So now we have changed the name of busybox's http server from httpd to httpe. If it's messed up, restore the old busybox: /bin/cp /opt/bin/busybox.orig /opt/bin/busybox
- Run it as service
Create file /opt/etc/init.d/httpd
source /mnt/root/.profile
/opt/usr/sbin/httpe -p 80 -c /opt/etc/httpd.conf -h /opt/www
And run
chmod a+x /opt/etc/init.d/httpd
ln -sf /opt/etc/init.d/httpd /opt/etc/init.d/S20httpd
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.