Openwrt下安装Lighttpd+PHP+Mysql总结(一)

​​

注意:

1.记得给开发板设置好网络,另外,开发板和虚拟机下操作可能不同,最好买个开发板吧,我在虚拟机上给相关系统装mysql出了很多问题还是进不了mysql,但是在板子上所有操作一次性通过,仅仅是在最后写php5数据库操作测试程序时出了一点问题,这个问题我在文章最后进行了说明。

2.这个总结是基于openwrt的CC 15.05版本的,如果你是使用的BB 14.07版本的openwrt,或者说你发现你的配置文件和我截图中的配置文件结构相差很大,可以看总结(二)。

一、安装LightHttpd

1.安装命令

opkg update

opkg install lighttpd lighttpd-mod-cgi

2.编辑/etc/lighttpd/lighttpd.conf文件

vim /etc/lighttpd/lighttpd.conf

更改后结果:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_lighttpd

3.创建/srv/www目录

mkdir /srv/www

4.启动lighttpd和设置lighttpd服务随开机启动

/etc/init.d/lighttpd start

/etc/init.d/lighttpd enable

 

二、安装PHP

1.安装PHP

opkg update

opkg install php5 php5-cgi php5-mod-session

2.编辑/etc/php.ini:设置doc_root =“/srv/www”

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_lighttpd_02

3.编辑/etc/lighttpd/conf.d/30-cgi.conf文件,添加内容如图所示:

vim /etc/lighttpd/conf.d/30-cgi.conf

注意:python行尾记得加逗号。

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_openwrt_03

4.重启Lighttpd

/etc/init.d/lighttpd restart

5.使用如下命令在/srv/www目录下简单添加一个php文件,以此来测试PHP是否安装成功:(别敲错命令)

echo "<?php phpinfo(); ?>" > /srv/www/index.php

6.最后,在浏览器中输入网址​​http://192.168.8.66:81/index.php​​(你的板子设置的IP和你刚才改的端口号81以及刚才用命令生成的文件名index.php),以此来查看PHP和http是否安装成功。如果成功如下图所示:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_php_04

 

三、安装MYSQL

1.安装mysql及相关组件

opkg install libpthread libncurses libreadline mysql-server

2.初始化mysql(很重要,命令不要敲错)

sed -i 's,^datadir.*,datadir = "/srv/mysql",g' /etc/my.cnf

sed -i 's,^tmpdir.*,tmpdir = "/tmp",g' /etc/my.cnf

mkdir -p /srv/mysql

mysql_install_db --force

/etc/init.d/mysqld start

/etc/init.d/mysqld enable

mysqladmin -u root password '123'

3.安装关联组件

opkg update

opkg install php5-mod-mysql

4.将mysql.so配置到/etc/php.ini中

sed -i 's,;extension=mysql.so,extension=mysql.so,g' /etc/php.ini 

5.安装如下组件,使PHP可以使用Mysqli

opkg update

opkg install php5-mod-mysqli

6.将mysqli.so配置到/etc/php.ini中(注意mysqli不是mysql,和上面的步骤没有重复,这是因为php5中数据库操作变化引起的)

sed -i 's,;extension=mysqli.so,extension=mysqli.so,g' /etc/php.ini

7.到/etc/my.conf下查看你的数据库套接字文件地址,如下图所示:

vim /etc/my.conf

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_php_05

8.配置/etc/php.ini文件,修改[MySQL]下的内容,并把[MySQL]的内容复制一份,并修改成MySQLi,如下图所示:(不要改错了,和你之前设置的一样)

vim /etc/php.ini

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_lighttpd_06

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_openwrt_07

到此,MySQL就配置完了。然后测试一下即可。

 

四、测试及注意事项

进入mysql下查看一下,看你有什么数据库,顺便验证一下mysql是否能用,然后写一个php文件测试一下能不能通过PHP链接到数据库,如果都没有问题,那么说明安装配置成功。

能否进入mysql,结果如下:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_php5_08

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_lighttpd_09

那么我们可以测试一下是否能用php链接上mysql数据库,能打印成功即可,代码如下:

<?php
$db = new mysqli('127.0.0.1','root','123','mysql');
if(mysqli_connect_errno())
{
echo '</br>';
echo 'Error: Could not connect to database,please try later';
exit;
}
else
{
echo 'Connect database successfully.!';
echo '</br>';
}
?>

在浏览器中访问192.168.8.66:81/connect_mysql_test.php,结果如下:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_LAMP_10

注意:这里有一个问题,在写PHP文件时,例如我上面的代码,服务器写的不是localhost而是127.0.0.1,这是因为问我写localhost时会报如下错误:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_lighttpd_11

Warning: mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket '/tmp' (146) in/srv/www/connect_mysql_test.php on line2

Error: Could not connect to database,please try later

所以,如果你出现了上述类似错误,不妨试试将服务器地址改成你配置时的地址。例如我上面的地址是“127.0.0.1”,所以我将localhost改成127.0.0.1后就OK了。

对了,还有一点,PHP5不知道从什么版本开始不支持mysql了,而是mysqli了,没办法,面向对象的大势不可逆啊,语言终究只是工具,哪个好用用哪个(唉?又偏题了)。如果你在写PHP时用mysql链接数据库,就会报如下错误:

 

Openwrt下安装Lighttpd+PHP+Mysql总结(一)_php_12

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in/srv/www/connect_mysql_test.php on line2