Openwrt架设网站(uhttpd+php+sqlite)

鄙人在江苏省南京市,通过淘宝知道全球无线联盟,购得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.



   
   
      
      
   
   
      
      
   
   
      
      
   
   
      
      
   
   
   
      
      
   
   
      
      
   
服务器信息
主机名
主机地址
服务器软件
网站主目录
SQLite 连接测试
SQLite
连接数据库(内存) 连接正常":"连接失败");?>



在浏览器中输入:
http://192.168.1.1:88/
后回车
看到如下界面:


OK,到此我们的web环境已经部署完毕,可以放入正式的网站使用。鉴于路由器硬件资源配置情况,建议大家在写网站时多考虑性能问题,减少服务器开销,减 少数据交互,以保证网站可以平稳运行流畅访问。如有不妥之处欢迎大家批评指正,有说的不清楚不完善的地方可以互相交流,谢谢。

 

阅读(776) | 评论(0) | 转发(2) |
0

上一篇:Allegro中Thermal relief Pad 和Anti Pad

下一篇:【整理】搭建自己的OpenWrt开发环境

相关热门文章
  • OpenWrt::openwrt 的依赖找不...
  • Web服务器与luci:file请求与c...
  • 智能路由器为什么会受欢迎...
  • Luci实现框架
  • uhttpd的实现框架
  • linux 常见服务端口
  • 【ROOTFS搭建】busybox的httpd...
  • xmanager 2.0 for linux配置
  • 什么是shell
  • linux socket的bug??
  • 现在的博客积分不会更新了吗?...
  • shell怎么读取网页内容...
  • ssh等待连接的超时问题...
  • curl: (56) Recv failure: Con...
  • CACTI 不能安装WINE,怎么办?...
给主人留下些什么吧!~~
评论热议

你可能感兴趣的:(LINUX)