Centos Nginx+PHP Install 史上最完美

周氏一族,整理技术文档,给下一代留点教程...

Nginx 的功能就不多说了,不懂的请直接百度,Nginx + php 安装是比较负责,经常会出错,网上也是大家说的千篇一律,没有一个比较完美的做法

下面是我自己研究的一种最简单化的安装方式,记录一下,以防自己忘记。

先说明哦,这个是用yum安装,但是他们是公用yum,而不像哪些人,要把机器的repo修改掉,再来yum,我这个yum是所有机器,不需要修改任何yum源就行的,也就是公用资源yum,但是nginx,必须用源码,源码到官网获取


1、安装Nginx+php之前呢,需要先安装PHP,我一条命令搞定,大家请看

[root@New_server ~]# yum -y install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel php php-devel php-fpm

千万不要去学人家源代码搞的,一塌糊涂,又是php,又是php-fpm,很糟糕,直接yum搞定,又稳定,除非你是需要修改php的源代码,那么,你就开始蛋疼的php-fpm源代码吧!


2、查看一下php是否安装成功,很明显,直接看看php-fpm有没有起来

最好是把他设置成开机,自动启动,这个你懂得,这么简单的事情


3、下面开始安装Nginx,安装之前,先安装一下环境,yum即可

[root@New_server ~]# yum -y install pcre* openssl* zlib*


4、上传Nginx文件到指定目录,/usr/tmp下面


5、开始安装

[root@New_server ~]# cd nginx-1.6.0

[root@New_server nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=apache --group=apache --with-http_ssl_module --with-http_gzip_static_module --with-http_spdy_module --with-http_stub_status_module --with-pcre

[root@New_server nginx-1.6.0]# make && make install

注意咯,这里configure,因为php采用yum安装,那么php官网的默认用户和组用户都是apache,所以,我们就要保证nginx的运行用户也是apache,故在编译的时候,就要指定--user=apache --group=apache


6、启动nginx

网页打开测试看看


7、测试PHP,按照Apache正常思路,我们直接上传一个php文件到nginx目录,应该就能打开

[root@New_server ~]# cd /usr/local/nginx/html/

[root@New_server html]# touch test.php

[root@New_server html]# vi test.php 

<?php

phpinfo();

?>

现在网页打开看看,有没有问题


竟然,提示我下载?那就是说,php它还没解析到,如果可以解析到,或者说支持的话,它是直接执行php内部代码的,所以,得改。因为nginx默认只是解析html,这也就是为什么本文标题 nginx+php


8、修改配置,完成php+nginx

[root@New_server html]# vi /usr/local/nginx/conf/nginx.conf


user  nobody;      改成  user apache apache;

worker_processes  2;     你服务器cpu有多少个就搞多少个吧,越多越好


        #location ~ \.php$ {

        #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}


把他们的前面  #  号全部去掉,然后修改成下面

        location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

至于为什么要这样改,你可以自己测试一下,我这里不讲

看到前面这个配置,我想大家现在的思路应该比较清晰了,首先是调用9000端口服务,也就是php-fpm,所以说嘛,php对nginx来说,就只不过是一个模块来的而已。


9、让nginx重新加载一下配置

[root@New_server html]# /usr/local/nginx/sbin/nginx -s reload


10、搞定



本文出自 “周氏一族” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。