ubuntu上配置php + mysql + nginx

环境搭建的最初目的:  

  为了能够运行thinksns。
版本:

  ubuntu 12.04, php 5.3.10,mysql 5.5.22,nginx 1.1.19。

1、安装php  

  

2、安装mysql  

  

  其中主要安装mysql-server即可,mysql-client也可以不安装,因为服务器端带有客户端访问的命令。

  mysql-client-5.5是服务器默认安装的。

  通过sudo apt-get remove mysql-client卸载掉mysql-client。

3、安装nginx

  

4、整合php+mysql+nginx

  4.1、启动nginx服务器

    启动服务器命令:sudo /etc/init.d/nginx start (或 sudo service nginx start)

    服务器的配置文件:/etc/nginx/sites-available/default,在配置文件中可以修改端口和其他一些配置,比如网站的根目录所在位置

  4.2、nginx中配置php

    在服务器配置文件中添加index,加入index.php,去掉php配置的注释脚本。

    重启服务器,但出现错误,错误信息

    

    查看配置文件中,发现需要安装php5-cgi和php5-fpm,安装后,发现问题还没有解决

    于是又安装了一些建议的包,php-pear和php5-suhosin,但结果还是没有解决

    继续寻找,以为是unix socket的问题,修改/etc/php5/fpm/pool.d/www.conf,改变listen = /var/run/php5-fpm.sock,

    重启php-fpm服务(可以通过netstat查看到9000端口改为了该sock),结果依然没解决

    (socket的通信方式相比tcp/ip来说不需要占用带宽,某一程度上提升了性能)

    解决之道,发现最终问题是出于fastcgi_pass采用的方式重复了,一个是tcp/ip,一个是unix socket,在配置文件中两个必须注释掉一个。

    注释掉fastcgi_pass 127.0.0.1:9000后,重启nginx服务器

  4.3、验证php页面

    编写一个简单的php页面,<?php phpinfo()>

    由于上面采用的是unix socket方式访问,故没有出现502 bad gateway,采用tcp/ip访问会出现。

    因为没有启动php-cgi,安装spawn-cgi来管理启动php-cgi   

    

    也可作为开机启动,在/etc/init.d/复制一份nginx改为php-cgi,替换

    DAEMON=/usr/bin/spawn-fcgi

    DAEMON_OPTS="-a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi"

    及其他一些描述,这样就能开机启动php-cgi了

  4.4、管理mysql

    为了能够管理,安装phpmyadmin,并通过nginx虚拟目录访问phpmyadmin

    

    安装好后,配置nginx的服务器,使能够访问phpmyadmin

    配置location /php/myadmin/{} 和location ~ /phpmyadmin/.+\.php.*${},具体的内容和配置文件中的实例类似

    访问时出现file not found,这是由于location ~ /php/myadmin/.+\.php.*${}在location ~ \.php${}后面的原因,放在前面即可。

  4.5、测试mysql

    测试例子: user为mysql的用户名,passwd为该用户名的密码

1 <?php
2     $conn = mysql_connect('localhost', 'user', 'passwd');
3     if ($conn) {
4         echo "Connected successful!";
5     } else {
6         die("Could not connect to the mysql: <br/>".mysql_error());
7    }
8 ?>

 

    访问该页面,若连接成功后,则返回Connected successful!

至此整个php+mysq+nginx配置算完成了,通过ubuntu下的apt-get安装解决了很多依赖问题。不过在安装的过程中还有些Suggested packages没有安装,这些并不影响使用。

接下来就是安装thinksns。

 

        

    

posted @ 2012-05-30 13:59  Thomsen4584  阅读(762)  评论(0)    收藏  举报