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
更改后结果:
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”
3.编辑/etc/lighttpd/conf.d/30-cgi.conf文件,添加内容如图所示:
vim /etc/lighttpd/conf.d/30-cgi.conf
注意:python行尾记得加逗号。
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是否安装成功。如果成功如下图所示:
三、安装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
8.配置/etc/php.ini文件,修改[MySQL]下的内容,并把[MySQL]的内容复制一份,并修改成MySQLi,如下图所示:(不要改错了,和你之前设置的一样)
vim /etc/php.ini
到此,MySQL就配置完了。然后测试一下即可。
四、测试及注意事项
进入mysql下查看一下,看你有什么数据库,顺便验证一下mysql是否能用,然后写一个php文件测试一下能不能通过PHP链接到数据库,如果都没有问题,那么说明安装配置成功。
能否进入mysql,结果如下:
那么我们可以测试一下是否能用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,结果如下:
注意:这里有一个问题,在写PHP文件时,例如我上面的代码,服务器写的不是localhost而是127.0.0.1,这是因为问我写localhost时会报如下错误:
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链接数据库,就会报如下错误:
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
原文链接:https://blog.51cto.com/xiaoyaoyou10/5468389