参考:http://my.oschina.net/anxuyong/blog/123007
centos 6.4, nginx ,php5 ,mysql5.5.29
1、换源,更新:(搞了好几次才明白,rpm是换包的源。并且有些帖子给的源地址有可能没有包或者已经成了一个简单的网页了,以后注意)
# rpm -Uvh http://centos.alt.ru/repository/centos/6/i386/centalt-release-6-1.noarch.rpm # yum update
2、安装nginx+mysql+php-fpm:
# yum install nginx-stable php-fpm mysql-server php-mysql mysql-server php-mbstring php-gd php-pear php-mcrypt php-mhash php-eaccelerator -y
(yum install <???> 后面的软件包, 已经装过的就没有必要再装了,或者是命令都在,系统在执行上面这条安装命令时,会过滤掉已经安装过的软件,并且提示出来,这个很方便很人性化)
3、设置mysql密码及mysql、nginx、php-fpm开机启动:(这个主要是mysql的密码,和php-fpm的启动)
# service mysqld start # mysqladmin -u root password '密码' # chkconfig nginx on # chkconfig mysqld on # chkconfig php-fpm on
注:默认安装启动php-fpm时,出现如下错误:(这个在我安装的时候并没有出现,但是也把下面的文件改掉了)
正在启动 php-fpm:[28-Nov-2011 08:11:01] ERROR: [pool www] cannot get uid for user 'apache'
解决办法:(他给的解决办法)
# vi /etc/php-fpm.d/www.conf
找到下面两行:
user = apache group = apache
将其中的apache都改为nginx。
4、开启80端口(默认是关闭的):
# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT # /etc/rc.d/init.d/iptables save # /etc/init.d/iptables restart
5、修改nginx配置文件,启动nginx和php-fpm:(这里fpm是nginx和php连接起来,这里很重要,一开是就是这里出的问题最多了。)
# vi /etc/nginx/nginx.conf
更改网站的根目录,添加php默认文件:(php5 里面location的配置不再nginx.conf里面,实在./conf.d/default.conf里面的,这个是看过很多版本的帖子和nginx的配置才发现的,有点悲,浪费时间挺多的)
location / { root /usr/share/nginx/html; index index.php index.html index.htm; }
修改到下代码,添加php支持:(哪,最重要的来了,就这一步了)
# location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; # include fastcgi_params; #}
删除上面所有的#和其中一行(蓝色字体部分),修改网站目录和前面一致。启动nginx和php-fpm:
# service nginx start # service php-fpm start
6.可以把任意的php的文件放在/usr/share/nginx/html下面(或者用filezilla上传网站至/usr/share/nginx/html。),就可以用nginx接受请求,通过fpm找到php解释出结果网页,返回给客户端,不许要java类似的网站工程结构和配置信息。
base on http://phpcj.org/centos6-nginx-mysql-php-fpm/