lighttpd+sqlite+mysql+php

安装软件包
lighttpd
lighttpd-mod-access
lighttpd-mod-alias
lighttpd-mod-cgi
lighttpd-mod-fastcgi
libsqlite2
libsqlite3
php5
php5-cgi
php5-fastcgi
php5-mod-ctype
php5-mod-pdo
php5-mod-pdo-sqlite
php5-mod-session
php5-mod-sqlite
php5-mod-mysql
php5-mod-pdo-mysql
php5-mod-tokenizer
php5-mod-mbstring
php5-mod-session
php5-mod-sockets
php5-mod-xml

配置lighttpd
vi /etc/lighttpd/lighttpd.conf
server.modules = (
“mod_access”,
“mod_fastcgi”,
“mod_alias”
)
server.document-root =”/mnt/www” 改为网页所在路径
index-file.names = ( “index.php”,”index.html”, “default.html”, “index.htm”, “default.htm” )
增加 url.access-deny = ( “~”, “.inc”,”.sqlite” )

【#fastcgi.server = (
# “.php” => (
# “localhost” => (
# “host”=>”127.0.0.1”,
# “port”=>1026,
# “socket” => “/tmp/php-fastcgi.socket”,
# “bin-path” => “/usr/bin/php”
# )
# )
#)】改为
【fastcgi.server = (
“.php” => (
“localhost” => (
“socket” => “/tmp/php-fastcgi.socket”,
“bin-path” => “/usr/bin/php-fcgi”
)
)
)】或
【fastcgi.server = (
“.php” => (
“localhost” => (
“host”=>”127.0.0.1”,
“port”=>1026,
“bin-path” => “/usr/bin/php-fcgi”
)
)
)】

编辑php.ini
vi /etc/php.ini
doc_root = “/www” 改为网页所在路径
修改上传文件路径和大小
file_uploads = On
upload_tmp_dir = “/mnt/sda1/phproot/tmp” 上传文件路径
upload_max_filesize = 200M 上传文件最大尺寸
max_file_uploads = 20

去掉下列项目extension前的分号
extension=gd.so
extension=ctype.so
extension=pdo.so
extension=pdo_sqlite.so
extension=session.so
extension=tokenizer.so
extension=mbstring.so
extension=pdo_mysql.so
extension=sockets.so
extension=mysql.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so
extension=sqlite.so
extension=sqlite3.so

去掉前面注释.
date.timezone = Asia/Chongqing

配置mysql

安装完以后,首先要建库
运行 /usr/bin/mysql_install_db –force
它好像是提示找不到路径 /mnt/data什么的,如果是这样,你就自己先去它说的地方建一个目录先,让它生成以后我们再移到要放到地方。

让它建完库后,在/etc目录下应该会多了一个my.cnf文件
其中有两个地方要注意一下
1, datadir                = /mnt/data/mysql/
        刚才它就是要求我们装在这个,你可以把它改成你要存放的路径(记得要它里面的所有文件复制到修改后的目录下)
2, bind-address                = 127.0.0.1
        这个127.0.0.1要把它改成0.0.0.0,这样路由以外的机器才能访问数据库。
编辑后保存退出

现在,设置基本就完成了
运行服务
运行  /etc/init.d/mysqld start
如果没有报错,恭喜你,你设置成功了
直接运行 mysql 应该就能进入管理模式了。

附言:
刚开如我是用mysql-gui-tools-noinstall-5.0-r17-win32这个工具去测试路由以外的设置能不能连上服务器的,录入了路由IP及用户名后,它提了一个报错,说拒绝接入之类的,安装完MySQL后,远程连接数据库的时候,出现 ERROR 1130 (HY000): Host ’192.168.0.1’ is not allowed to connect to this MySQL server提示信息,不能远程连接数据库。考虑可能是因为系统数据库mysql中user表中的host是localhost的原因,于是,我尝试把这个值改为自己服务器的ip,果然就好用了,不过用 mysql -u root -p命令就连不上数据库了,需要用mysql -h 服务器ip -u root -p因为默认的连接mysql数据库user表中host的值,而这个命令的默认host是localhost,就连不上了。

具体操作方法:

用localhost连接上mysql后,
use mysql;
update user set host=’123.456.789.254’;(IP为你想要远程连接数据库的本地机器的IP)
\q;

退出mysql,然后重新启动mysql就可以了。

其他解决方案

下面这个方法比较NB

2. 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”
mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = ’%’ where user = ’root’;    //这个命令执行错误时可略过
mysql>flush privileges;
mysql>select host, user from user;

3. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’%’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’192.168.0.1’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;

测试info.php
phpinfo();
?>

rg100a openwrt 软件安装到硬盘

将opkg.conf修改成(sda1这个对应自己硬盘目录)
src/gz packages http://downloads.openwrt.org/backfire/10.03.1-rc4/brcm63xx/packages/
dest root /
dest usb /mnt/sda1/opt
dest ram /mnt/sda1/tmp
lists_dir ext /var/opkg-lists
option overlay_root /mnt/sda1/overlay

安装软件要在命令行下安装
如:opkg -d usb install proftpd

修改profile文件
vi /etc/profile

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/mnt/sda1/opt/sbin:/mnt/sda1/opt/usr/bin
export LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/sda1/opt/lib:/mnt/sda1/opt/usr/lib

然后就需要opkg-link这个工具

具体代码如下
———不要此行———
#!/bin/sh
COMMAND=$1
PACKAGE=$2
setdest () {
for i in `grep dest /etc/opkg.conf | cut -d ’ ’ -f 3`; do
if [ -f $i/usr/lib/opkg/info/$PACKAGE.list ]; then
DEST=$i
fi
done
if [ “x$DEST” = “x” ]; then
echo “Can not locate $PACKAGE.”
echo “Check /etc/opkg.conf for correct dest listings”;
echo “Check name of requested package: $PACKAGE”
exit 1
fi
}
addlinks () {
setdest;
cat $DEST/usr/lib/opkg/info/$PACKAGE.list | while read LINE; do
SRC=$LINE
DST=`echo $SRC | sed ’s%’$DEST’%%’`
DSTNAME=`basename $DST`
DSTDIR=`echo $DST | sed ’s%/’$DSTNAME’%%’`
test -f “$SRC”
if [ $? = 0 ]; then
test -e “$DST”
if [ $? = 1 ]; then
mkdir -p $DSTDIR
ln -sf $SRC $DST
else
echo “Not linking $SRC to $DST”
echo “$DST Already exists”
fi
else
test -d “$SRC”
if [ $? = 0 ]; then
test -e $DST
if [ $? = 1 ]; then
mkdir -p $DST
else
echo “directory already exists”
fi
else
echo “Source directory $SRC does not exist”
fi
fi
done
}
removelinks () {
setdest;
cat $DEST/usr/lib/opkg/info/$PACKAGE.list | while read LINE; do
SRC=$LINE
DST=`echo $LINE | sed ’s%’$DEST’%%’`
DSTNAME=`basename $DST`
DSTDIR=`echo $DST | sed ’s%/’$DSTNAME’%%’`
test -f $DST
if [ $? = 0 ]; then
rm -f $DST
test -d $DSTDIR && rmdir $DSTDIR 2>/dev/null
else
test -d $DST
if [ $? = 0 ]; then
rmdir $DST
else
echo “$DST does not exist”
fi
fi
done
}
mountdest () {
test -d $PACKAGE
if [ $? = 1 ]; then
echo “Mount point does not exist”
exit 1
fi
for i in $PACKAGE/usr/lib/opkg/info/*.list; do
$0 add `basename $i .list`
done
}
umountdest () {
test -d $PACKAGE
if [ $? = 1 ]; then
echo “Mount point does not exist”
exit 1
fi
for i in $PACKAGE/usr/lib/opkg/info/*.list; do
$0 remove `basename $i .list`
done
}
case “$COMMAND” in
add)
addlinks
;;
remove)
removelinks
;;
mount)
mountdest
;;
umount)
umountdest
;;
*)
echo “Usage: $0 ”
echo ” Commands: add, remove, mount, umount”
echo ” Targets: , ”
echo “Example: $0 add kismet-server”
echo “Example: $0 remove kismet-server”
echo “Example: $0 mount /mnt/usb”
echo “Example: $0 umount /mnt/usb”
exit 1
;;
esac
exit 0
———不要此行———

将opkg-link复制到/下
执行chmod +x /opkg-link
opkg说明
/opkg-link add mini-httpd 连接mini-httpd到系统目录
/opkg-link remove mini-httpd 删除根目录的mini-httpd连接
/opkg-link mount /mnt/sda1/opt 把 /mnt/hda1/opt下所有的软件连接到系统目录
/opkg-link umount /mnt/sda1/opt 删除对/mnt/hda1/opt下所有的连接

连接之后如往硬盘安装软件装完后再运行下连接命令