软件环境:Ubuntu12.04 虚拟机
第一次用这个框架做开发,还不熟悉,所以还是折腾了不少时间。不过最终还是好了,谢天谢地!
之前通过网上查到的资料,利用离线包的方式编译安装,成功安装了Nginx,启动测试可以通过浏览器打开默认的html页面。Mysql通过apt-get命令安装,但是安装了mysql-server,Php5通过离线包安装之后,也许因为版本,和网络先关教程内容不一样。在Nginx配置php相关设置时失败。
思考:参考的资料版本不一致,与实际搭建的环境有出入。
抛弃离线安装包编译配置的方式,采用apt-get命令进行相关安装。
1. 删除旧文件
删除之前没有配置成功的PHP5和Nginx相关文件。
2. 安装Nginx。
sudo apt-getinstall nginx
启动:sudo/etc/init.d/nginx start
查看状态,Nginx是否启动成功。
3. 安装php5
sudo apt-get install php5 php5-fpm php5-cli php5-cgi php5-mysql
4. 修改mysql用户权限
5. 修改mysql下配置文件
sudo gedit/etc/mysql/my.cnf
注释掉bind-address =127.0.0.1,这样可以远程连接数据库。
6. 配置并重启Nginx
编辑 /etc/nginx/sites-enabled/default文件。修改如下内容
启动fastcgi php
7. 写测试index.php文件测试
phpinfo();
?>
结果出现502 bad gateway错误!配置文件出问题了。
经过排查,重要发现了问题的所在。通过前面对Nginx中default文件的配置,fastcgi_pass 配置的是php5-fpm.sock.但是在/etc/php5/fpm/pool.d/www.conf中监听的配置语句是
listen = 127.0.0.1:9000
那么对比Nginx中default文件中fastcgi_pass的配置显然是不对应的。因此修改default文件
然后重新打开浏览器,输入192.168.1.33/index.php
成功显示php的配置信息。
8.测试数据库连接。
安装php5-xdebug扩展功能。
sudoapt-get install php5-xdebug
修改配置文件:
sudovim /etc/php5/fpm/php.ini
将display_errors和html_errors都改为on。然后重启php服务。
sudo /etc/init.d/php5-fpm restart
编写mysql的测试网页sqltest.php,内容如下:
$link= mysql_connect(“localhost”,”root”,”root”);
If(!$link)echo “failed.”;
Elseecho “Okay”;
?>
打开浏览器,输入地址访问网页
失败了,错误为未定义的函数名。
经搜索分析应该是php没有配置mysql的扩展模块。在php.ini追加上extension=/usr/lib/php5/20090626+lfs/mysql.so,再次尝试。
在浏览器中刷新刚才的地址,可以成功连接到数据库了。
打开终端,mysql –u root –p进入mysql,然后创建数据库sensers
Create database sensers;
选择数据库:use senserss
创建表:
mysql> create table senser
-> (
-> senser_id mediumint unsigned not null,
-> senser_name varchar(20),
-> tempture mediumint unsigned,
-> wet mediumint unsigned,
-> primary key(senser_id)
-> );
Query OK, 0 rows affected (0.14 sec)
修改sqlphp.php文件
echo "testing Mysql ... ...";
$link=mysql_connect("localhost","root","root");
if(!$link) echo "Failed connect toDatabase.";
else echo " Connect success!";
mysql_select_db("sensers",$link);
$sql = "select * from senser";
$query = mysql_query($sql);
$str = "
senser_id | senser_name | temperature | wet | ";
".$row['senser_id']." | ";".$row['senser_name']." | ";".$row['tempture']." | ";".$row['wet']." | ";
打开浏览器再次测试: