原文地址:http://blog.chinaunix.net/uid-23780428-id-4367394.html
鄙人在江苏省南京市,通过淘宝知道全球无线联盟,购得AE-010002无线路由器(RT-NT13UB1主板)。因为平时工作生活的需要,比如帐号管理 (现在各个网站、软件、卡类等帐号密码过多,容易混淆忘记,又不宜使用相同帐号密码)、常用加密解密(MD5、3DES等)、亲戚朋友生日备忘等还有一些 其他平时自己用的工具,于是自己写了一个“个人事务辅助平台”,希望能够随时随地打开即用,但个人网站建设租用空间费用过高,专门弄个低功耗的电脑开着消 耗也没必要,自己用的平台访问量自然不会大,反正家里平时电脑、手机等多终端要无线上网,路由器一般也不关,索性把它架设到路由器上吧。
首先因为路由器内存有限、CPU主频比较低,还要做路由功用,所以本网站多采用html+js富客户端方式制作尽量减少服务器端开销,部分动态内容使用大 家熟悉的php程序,并且多使用ajax局部刷新技术尽量减少与服务器交互数据量,数据库采用占用资源非常低的轻型数据库SQLite,为减少系统开销 web server就不再另装了,直接采用openwrt内置的uhttpd。下面就拿一个简单的测试页面来说明架设方法。
以uhttpd+php+sqllite组合架设网站,下面开始:
1、挂载磁盘 (U盘文件系统为ext4)
在路由器上插一个U盘用来存储要发布的网页,例如我的U盘识别为设备/dev/sda1,挂载的目录为/mnt/overlay,可以使用命令挂载也可以 使用图形管理界面,在“菜单--管理界面--磁盘应用--挂载点”进行添加挂载。这是linux基本知识这里不细说了,不会的可以google一下,挂载 后如图:
我这里是一个U盘分了两个区所以显示两个,我们只需要用第二个就好了。
挂载完之后在/mnt/overlay中(也就是U盘中)建立www目录用来放置网页。
2、安装程序
php5
php5-cgi
php5-mod-ctype
php5-mod-hash
php5-mod-pdo
php5-mod-pdo-sqlite
php5-mod-session
php5-mod-sqlite
php5-mod-sqlite3
php5-mod-tokenizer
php5-mod-xml
编辑/etc/opkg.conf,加入如下一行:
dest udisk /mnt/sda1
使用下面命令把软件安装到U盘:
opkg update
opkg install -d udisk php5 php5-cgi php5-mod-ctype php5-mod-hash php5-mod-pdo php5-mod-pdo-sqlite php5-mod-session php5-mod-sqlite php5-mod-sqlite3 php5-mod-tokenizer php5-mod-xml
建立软连接,不然会找不到对应的库和配置文件:
cd /etc
ln -s /mnt/sda1/etc/php.ini php.ini
ln -s /mnt/sda1/etc/php5 php5
cd /usr/lib
ln -s /mnt/sda1/usr/lib/libpcre.so.0.0.1 libpcre.so.0
ln -s /mnt/sda1/usr/lib/libpcreposix.so.0.0.0 libpcreposix.so.0
ln -s /mnt/sda1/usr/lib/libsqlite.so.0.8.6 libsqlite.so.0
ln -s /mnt/sda1/usr/lib/libsqlite3.so.0.8.6 libsqlite3.so.0
ln -s /mnt/sda1/usr/lib/libxml2.so.2.7.8 libxml2.so.2
ln -s /mnt/sda1/usr/lib/libz.so.1.2.3 libz.so
ln -s /mnt/sda1/usr/lib/php php
cd /usr/bin
ln -s /mnt/sda1/usr/bin/php-cgi php-cgi
安装成功后在管理界面可以查找到对应包,位置在“菜单--管理界面--系统--软件包”如图:
3、配置php
修改/etc/php.ini。
去掉下面行前面注释:
extension=ctype.so
extension=hash.so
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=session.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so
修改行:
short_open_tag = On
;doc_root = "/www"
date.timezone = Asia/Shanghai
4、配置uhttpd
在/etc/config/uhttpd最后添加:
config uhttpd web
list listen_http 0.0.0.0:88
option home /mnt/overlay/www
option index_page index.php
list interpreter ".php=/usr/bin/php-cgi"
88为访问端口,/mnt/overlay/www为放置网页的目录,这些都可以修改。
然后重启uhttpd:
/etc/init.d/uhttpd restart
5、环境测试
先写个简单的index.php网页上传到/mnt/overlay/www测试部署情况。
index.php代码示例:
WEB环境部署测试
Congratulations on your success.
服务器信息 |
---|
主机名 |
=$_SERVER['SERVER_NAME']?> |
主机地址 |
=$_SERVER['SERVER_ADDR'].":".$_SERVER['SERVER_PORT']?> |
服务器软件 |
=$_SERVER['SERVER_SOFTWARE']?> |
网站主目录 |
=$_SERVER["DOCUMENT_ROOT"]?> |
SQLite 连接测试 |
---|
SQLite |
=function_exists("sqlite_close")?YES." / ".sqlite_libversion():NO?> |
连接数据库(内存) |
$db = sqlite_open(":memory:");?>=($db?"连接正常":"连接失败");?> sqlite_close ($db);?> |
在浏览器中输入:
后回车
看到如下界面:
OK,到此我们的web环境已经部署完毕,可以放入正式的网站使用。鉴于路由器硬件资源配置情况,建议大家在写网站时多考虑性能问题,减少服务器开销,减 少数据交互,以保证网站可以平稳运行流畅访问。如有不妥之处欢迎大家批评指正,有说的不清楚不完善的地方可以互相交流,谢谢。
阅读(3468) | 评论(0) | 转发(1) |