OpenWrt搭建uhttpd+php+sqlite的环境
零零碎碎忙了玩一个月,写点备忘录
首先
刷机,刷机尽量找教程介绍的最新版,我就刚开始就花了很多无用的时间在这上面
修改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"
代码解释是:
新加一个http监听,在88端口,主目录/mnt/overlay/www,默认网页是index.php,cgi添加的目录是.php=/usr/bin/php-cgi
最后两行在php安装成功后添加
重启web服务器:/etc/init.d/uhttpd restart
安装php
更新软件库
opkg update
安装到默认目录(usr),后面跟自己想要安装的程序
opkg install php5 php5-cgi php5-mod-ctype php5-mod-hash php5-mod-pdo php5-mod-pdo-sqlite php5-mod-session php5-mod-sqlite
如果需要配置自定义目录
编辑/etc/opkg.conf,加入如下一行: dest udisk /mnt/sda1 然后执行命令 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
配置php.ini
修改/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 //时区设置可能会有问题,Asia可能安不上
然后重启Web服务器就行了,运行查看效果
其他
1.挂载U盘:
1)fdisk -l 查看插入的U盘的情况,如下
/dev/sda1 * 1 6 48163+ 83 Linux
/dev/sda2 7 515 4088542+ 83 Linux
/dev/sda3 516 776 2096482+ 82 Linux swap / Solaris
/dev/sda4 777 2610 14731605 5 Extended
/dev/sda5 777 2610 14731573+ 83 Linux
2)在想挂载的地方创建新的文件夹,如/mnt/sda1
3)挂载:
mount /dev/sda1 /mnt/sda1