ubuntu下LNMP环境的搭建 (简单apt-get install方式)

来源:互联网 发布:淘宝可以追加几次评论 编辑:程序博客网 时间:2024/06/05 09:17

LNMP环境搭建

软件环境: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文件测试

<?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,内容如下:

           <?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文件

<?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 = "<table>";

$str.="<tr>";

$str.="<td>senser_id</td><td>senser_name</td><td>temperature</td><td>wet</td>";

$str.="</tr>";

 

while($row = mysql_fetch_array($query)){

$str.="<tr>";

$str.="<td>".$row['senser_id']."</td>";

$str.="<td>".$row['senser_name']."</td>";

$str.="<td>".$row['tempture']."</td>";

$str.="<td>".$row['wet']."</td>";

$str.="</tr>";

}

$str.="</table>";

               

打开浏览器再次测试:


0 0
原创粉丝点击