Ubuntu 下安装 Nginx ( Nginx + Php5-fpm )

nginx 的介绍我就不罗嗦了,先说下系统的安装环境。

0. 安装环境

系统:Ubuntu 14.04

PHP 版本:5.5.9

已有服务器软件:Apache (基本不影响,后文会提到)

1.安装 Nginx

sudo apt-get install nginx

如果你安装了 Apache ,并且此时 Apache 在运行,那么请先修改一下配置文件(没有的同学直接跳过):

#打开配置文件
sudo vim /etc/nginx/sites-available/default

然后按以下两处修改(为了不和 Apache 冲突):

server {
        #修改这里 我将 80 改为 88
	listen 88 default_server;
        #还有这里 同样改为你想要的监听端口
	listen [::]:88 default_server ipv6only=on;
        .....

此时,我们测试 nginx 是否安装成功,没做上述修改的直接在浏览器输入 localhost, 改了的记得加上端口,我的是 localhost:88, 如果出现下面界面则安装成功:

2.安装 php5-fpm

同样使用 apt-get:

sudo apt-get install php5-fpm

3. 修改配置文件以支持 PHP

同样打开配置文件:

#打开配置文件
sudo vim /etc/nginx/sites-available/default

首先,在 index 后添加 index.php:

server {
	listen 88 default_server;
	listen [::]:88 default_server ipv6only=on;

	root /usr/share/nginx/html;
        #修改这里,在 index 后添加 index.php
	index index.php index.html index.htm;

	# Make site accessible from http://localhost/
	server_name localhost;
        ....

然后,可以再去掉如下注释,看清楚是哪里哦:

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
	#	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	#	# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
	#
	#	# With php5-cgi alone:
	#	fastcgi_pass 127.0.0.1:9000;
	#	# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}

接着进行重启:

#这一句虽然没必要但可以给你检查配置文件的错误
sudo nginx -s reload
#重启 php5-fpm
sudo /etc/init.d/php5-fpm restart
#重启 nginx
sudo /etc/init.d/nginx restart 

4. 测试

#修改权限
sudo chmod 777 /usr/share/nginx/html/
#新建测试文件
vim /usr/share/nginx/html/index.php

在文件中输入以下内容就好:

<?php

phpinfo();

?>

打开浏览器,再次输入地址,localhost 或 localhost:端口 (我是 localhost:88),看到如下界面则成功:

问题:安装后打开网页时出现 “502 Bad Gateway”

有的同学可能按照网上某些教程安装之后,测试时显示 “502 Bad Gateway”,噢,不要紧张,因为教程是错的而已....

不少教程是比较久之前的,所以在修改配置文件时,会告诉你注释得到这三行:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
}

这里的 fastcgi_pass 变量应该是错的,适用于 PHP 5.3 及以下,在 PHP 5.4 之后,php5-fpm 并不是监听 9000 端口,可以看一下它的配置文件:

#php5-fpm 的配置文件
sudo vim /etc/php5/fpm/pool.d/www.conf

里面有一段如下,注意最后一行的 listen,原版本是 listen = 127.0.0.1:9000, 但最新的版本是下面的:

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /var/run/php5-fpm.sock

所以,所以 502 了.....

解决方法:

打开 nginx 配置文件:

#打开配置文件
sudo vim /etc/nginx/sites-available/default

然后把 9000 的那句注释了,换成新的 fast_pass 变量:

	location ~ \.php$ {
	#	fastcgi_pass 127.0.0.1:9000;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}

应该是可以正常工作的,不信试试?

时间: 2024-10-27 13:36:36

Ubuntu 下安装 Nginx ( Nginx + Php5-fpm )的相关文章

Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL

Ubuntu 下 nginx , php , mysql 和 golang 的简单安装 我是搞php出身,自然安装lnmp是常规技能.以前的手段还是lnmp安装包,比如军哥的lnmp1.0.随着php和mysql的更新,大多数一键安装都开始版本老化,更新困难的问题.因此,重新研究了一下Ubuntu下lnmp的安装,发现现在简单的多,记录一下. 另外最近在学习golang,Ubuntu下安装自然也是必须的过程.不过golang的安装也有一些奥妙.当然,不是源码安装的啦. Nginx Stable/

Mac下安装LNMP(Nginx+PHP5.6)环境

Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew

ubuntu下安装nginx错误error: the HTTP rewrite module requires the PCRE library 解决方法

本文为大家讲解的是ubuntu下安装nginx错误error: the HTTP rewrite module requires the PCRE library 解决方法,感兴趣的同学参考下. 本文为大家讲解的是ubuntu下安装nginx错误error: the HTTP rewrite module requires the PCRE library 解决方法,感兴趣的同学参考下. 错误描述: ubuntu安装nginx时提示error: the HTTP rewrite module r

Ubuntu下安装nginx支持rtmp和http流媒体方案

最近公司要整理一套视频点播和直播的方案,本身对这块不是很熟悉,翻阅了大量的资料,最终算是了解一下,特记录下,第一套方案,当然是最简单的nginx+http的方案,这个方案支持android和pc以及苹果端,是比较普遍的做法,下面详细记录下在Ubuntu下安装的整个过程,过程参考另一篇博客而来,只是整理下最新的各组件包. step1准备ubuntu的环境: sudo apt-get update step2 安装必要的一些libs: sudo apt-get install build-essen

在Ubuntu下安装nginx和combo

cd /usr/localmkdir srcapt-get install subversionwget http://zlib.net/zlib-1.2.8.tar.gztar -zxvf zlib-1.2.8.tar.gzcd zlib-1.2.8/./configuremakemake installcd ../wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.tar.gztar -zxvf pcre-

ubuntu 下安装 apache php mysql

ubuntu 安装 apache+php+mysql1.打开终端,输入"sudo apt-get install apache2",回车;(安装apache2.0或2.x新版本,系统会自动查找新的版本)2.如有密码请再输入管理员密码,回车3.输入"Y",回车4.apache2.X 安装完成5.验证apache2.x安装是否完成,在浏览器中打开http://localhost/或者http://127.0.0.1.如果出现It works!那证明成功;6.打开终端,输

zhuan:ubuntu下安装Apache2+php+Mysql

from: http://www.cnblogs.com/lynch_world/archive/2012/01/06/2314717.html ubuntu下安装Apache+PHP+Mysql 转载自:http://www.comflag.com/2011/05/01/apache-web.htm 电影<社交网络>中,facebook创始人马克.扎克失恋后入侵哈佛大学宿舍楼服务器,窃取数据库资料,并在两个小时内完成了一个给校内女生评分的交互网站,该网站一天内点击数过10W,直接导致学校服务

Ubuntu 下安装apache+PHP

1.安装apache2 sudo apt-get install apache2 运行如下命令重启:sudo /etc/init.d/apache2 restart 在浏览器里输入http://localhost或者是http://127.0.0.1,如果看到了It works!,那就说明Apache就成功的安装了. =================================================================== 如果此时你没有看到It works!也不必着

Redis(三)-Ubuntu下安装

Ubuntu 下安装 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update $sudo apt-get install redis-server 启动 Redis $ redis-server 查看 redis 是否启动? $ redis-cli 以上命令将打开以下终端: redis 127.0.0.1:6379> 127.0.0.1 是本机 IP ,6379 是 redis 服务端口.现在我们输入 PING 命令. redis 127.0.0.1:

Ubuntu下安装JDK以及相关配置

1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选择安装位置为:/usr/java/ sudo mkdir /usr/java 4.解压文件带/usr/java/目录下,文件下载的位置是在下载目录下的 cd 下载sudo tar zxvf jdk-8u60-linux-x64.tar.gz -C /usr/java/ 5.进入到/usr/java/