安装这两个花了大约七个小时,简直呵呵,安装nginx就是直接 yum install nginx ,但发现一打开php文件就是直接下载该php文件,也就是不能识别php文件,解决这个花了好久,但其实看到别人写的正确的文章,其实加起来的时间就是十几分钟就可以了,网上好多文章可能是系统不同,部分文件也会不同,然后花了好久渐渐弄明白。本篇文章大部分引用seanchan 的 这篇博客 ,但是有部分链接失效,并且文件有些不同,我只是在该文章进行完善。

  进入正文

  开始安装Nginx和PHP-FPM之前,你必须卸载系统中以前安装的Apache和PHP。用root登录输入下面的命令:

# yum remove httpd* php*

增加额外资源库

默认情况下,CentOS的官方资源是没有php-fpm的, 但我们可以从Remi的RPM资源中获得,它依赖于EPEL资源。我们可以这样增加两个资源库:

# yum install yum-priorities -y
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

注意  rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 是下载EPEL资源,原文中的 epel-release--.noarch.rpm ,但是评论中有人指出6-7已经不能用了,改成 epel-release-- 就能用,如果我给的6-8版本不能用,大家可尝试改成6-8以上的版本试试。

http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 是下载Remi资源,原文中的链接也不能用了,我用的是从 这篇博客中 中获取的。

EPEL成功样例

Retrieving http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
warning: /var/tmp/rpm-tmp.vfNOg4: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing... ########################################### [%]
:epel-release ########################################### [%]

Remi下载成功样例(我只选取最后的部分,出现了Complete!即表示成功了)

Installed:
remi-release.noarch :6.6-.el6.remi Complete!

安装Nginx

输入下列命令

# yum install nginx

这个一般不会有什么问题,就不取安装成功的注释了。

如果你想在系统启动时自动运行nginx,输入下列命令:

# chkconfig --level  nginx on  

第一次启动nginx,输入下列命令:

# /etc/init.d/nginx start 

我个人比较喜欢  service nginx start

安装PHP-FPM

输入下列命令:

# yum --enablerepo=remi install php php-fpm 

安装过程中选择yes|no的情况下,一律选yes

安装成功样例

Installed:
php.i686 :5.4.-.el6.remi php-fpm.i686 :5.4.-.el6.remi Dependency Installed:
httpd.i686 :2.2.-.el6.centos httpd-tools.i686 :2.2.-.el6.centos
php-cli.i686 :5.4.-.el6.remi php-common.i686 :5.4.-.el6.remi Complete!

如果你想在系统启动时自动运行php-fpm,输入下列命令:

# chkconfig --level  php-fpm on

PHP仅安装了核心模块,你很可能需要安装其他的模块,比如MySQL、 XML、 GD等等,你可以输入下列命令:

# yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt

第一次启动php-fpm,输入下列命令:

# /etc/init.d/php-fpm restart 

输出样例

Starting php-fpm:                                          [ OK ]  

配置PHP-FPM和Nginx,让他们一起工作

nginx的配置文件在/etc/nginx/nginx.conf,输入下列命令编辑这个文件:
# vi /etc/nginx/nginx.conf 

注意,一般这个文件内不会把文件全部写在里面,打开该文件可以看到在倒处第二行写了 include /etc/nginx/conf.d/*.conf; ,那我们就去 nginx/conf.d 里面看看有什么文件,发现有 default.conf   example_ssl.conf 这两个文件,就是 default.conf ,如果是其它的系统,文件的地址可能不一样,但大部分都是 default.conf ,打开该文件进行配置

像下面这样编辑取消注释:

...
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
...
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
...

/usr/share/nginx/html; 是你安装nginx时默认的代码文件根目录

index index.html index.htm index.php; 相比源文件中加入乱 index.php

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 相比源文件是把 $script 换成了 $document_root

重启Nginx会重新读取配置文件,输入

 # /etc/init.d/nginx reload  

现在在document root目录下建立下列PHP文件

 # vi /usr/share/nginx/html/info.php  

文件内容如下:

<?php
phpinfo();
?>

这时在浏览器中输入

localhost/info.php

如果出现 file not found

那就回到 /etc/nginx/conf.d/default.conf 中把我们原先设定的 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 中的 $document_root 换成 /usr/share/nginx/html ,也就是可能程序没有读取到nginx根目录的文件,这时,你就把全路径写上,然后在重新加载nginx

 # /etc/init.d/nginx reload 

这时再刷新 localhost/info.php ,就会出现下面的页面:

好了。安装成功!

最后再瞎扯一句,这个下午我看了好多文档,发现很多都是错误了,配置别人看不见你是怎么 配置的,下载不知道你是去哪下载的,就是贴一堆的代码上去,我知道你是自己看得懂就好,可是过几个月呢,你还是回会忘掉是吧。以前我也有这毛病,我觉得必须要改改了。这次我把详细的过程都写了,可能还是有不足的地方,但我尽量写的让开始配置的人懂得怎样修改,怎样配置。

################################################

2015/11/1 更新,知道我看到了 这篇文章(CentOS 6.5 yum安装配置lnmp服务器(Nginx+PHP+MySQL)) < ps: 我会把该文章做个备份>,哭的心都有-_-|||,七八个小时其实只要差不多半小时就足矣,今晚按照该文章的centos系统版本为6.7 64bit。

################################################

最后在附上锤子科技 UI 设计总监方迟,视觉设计总监罗子雄说的话

centos下安装nginx和php-fpm的更多相关文章

  1. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  2. CentOS 下 安装 nginx 执行配置命令 ./configure 报错

    CentOS 下 安装 nginx 执行配置命令 ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx 时提示以下错误: checkin ...

  3. CentOS下安装Nginx并添加nginx_upload_module

    安装前,最好能保证依赖的系统软件已经升级.    yum update CentOS上安装Nginx,如果只是简单安装,不附加其他第三方模块,一句话可以搞定:    yum install nginx ...

  4. Centos 下安装 Nginx(新)

    今天重新实践了下 CentOS 7.6 下安装 Nginx,总结了一条更直接并简单的方式 从官方获取写入 nginx.repo 的方式 从官网查看文档,获取 nginx.repo 的文档内容,将其内容 ...

  5. 从零开始学 Java - CentOS 下安装 Nginx

    早上下起了暴雨 闹钟还未响起就听到雨滴哗啦啦击打窗户的声音,被吵醒了.起床上班,在楼下的十字路口,暴雨大到完全看不清对面,两个穿着雨衣的交警站在路口中间指挥着过往的车辆,大家都慌慌张张.急急忙忙的打着 ...

  6. Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  7. centos下安装nginx并部署angular应用

    注意:直接yum安装的nginx有问题,不能直接安装,因为centos默认库里面没有nginx.如果安装过程中出现一些文件夹或者文件找不到的话,应该是你的nginx的版本没有安装对.最效率的办法是删除 ...

  8. CentOS下安装Nginx服务器

    一.nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos7作为安装环境. 1.1  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...

  9. 阿里云centos下安装nginx、jdk、tomcat、绑定域名、解析域名

    1.ESC后安全设置(管理控制台->本实例安全组->配置规则->添加安全组规则->3306.80端口配置) 2.nginx  安装,首先安装三大件  PCRE.zlib.ope ...

随机推荐

  1. Android消息处理机制(Handler 与Message)---01

    一.handler的使用场景为么会有handler?(部分内容图片摘自http://www.runoob.com/w3cnote/android-tutorial-handler-message.ht ...

  2. 数32位 unsigned int中1的个数

    参考文章:http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 最简单的方法: int BitCount0(unsigned ...

  3. PHP过滤评论关键词

    <?php /** * PHP中屏蔽过滤指定关键字实现方法总结 * http://www.111cn.net/phper/phpanqn/46225.htm * * 思路: * 一.把关键字专门 ...

  4. Web前端工作2个月小结

    开始语: 2013年6月30日,Microsoft Learning support 项目结束,转而进入Forerunner Development 项目,这对于这块领域空白的我,空前的困难,可是我坚 ...

  5. C#:WPF绘制问题

    1.问题描述:切换画笔后,鼠标呈现画笔,但绘制界面需要点击后才能绘制,体验比较差 注:如果将切换为画笔或橡皮擦的功能放在二级菜单中则无次问题 解决方法(大体如此): 1)在第三方中,先创建完绘制画面和 ...

  6. 20145227 《Java程序设计》实验四实验报告

    20145227 <Java程序设计>实验四实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World的小程序 实验步骤 ...

  7. [Unity3D]unity3d5.0简单的调用摄像头

    Unity3D中新建一个工程,加一个Plane,新建一个C# 脚本,将这个脚本添加到Plane上,调用摄像头.(如果显示的图片居然是翻转的,Plane的Rotation 值就可以了) 以下是脚本内容: ...

  8. css3 简单动画

    <script> <!-- var x,y,n=0,ny=0,rotINT,rotYINT function rotateDIV() { x=document.getElementB ...

  9. -WEBKIT-USER-SELECT:NONE导致输入框无法输入

    原文:http://hicc.me/post/webkit-user-select-none-disabling-text-field.html 最近在webview中写页面的时候发现个别Androi ...

  10. c#中委托和事件(续)(转)

    本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器.异常处理.超时处理和异步方法调用等内容. 为什么要使用事件而不是委托变量? 在 C#中的委托和事件 中,我提出了两个为 ...