| 站点地图 | 联系我
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 上善若水 厚德载物
 现在位置 :: 主页 >> 资料中心 >> ROOT / NETWORK 网络 / SERVER 服务器 /
 

Nginx发布Alias虚拟目录及PHP支持配置方法

来源(大爱)

From: http://lovesoo.org/nginx-release-virtual-directory-alias-and-php-support-configuration.html

Nginx发布Alias虚拟目录及PHP支持配置方法

2012年08月10日 ⁄ CentOS, Linux, 测试工具, 测试技术, 软件测试 ⁄ 共 3343字 / 阅读 12,599 次

在CentOS上安装完Nginx后,Nginx默认只支持静态页面,当收到动态页面请求时,Nginx将其交给PHP来处理。本文主要介绍CentOS上Nginx Alias发布虚拟目录及支持PHP配置方法。

1. 安装php-fpm等模块

在安装LAMP时,已经安装了如下模块

yum install php-mysql php-common

php-mbstring php-gd

php-imap php-ldap

php-odbc php-pear

php-xml php-xmlrpc

继续安装如下模块

yum install php-fpm php-cli php-mcrypt php-mssql php-snmp php-soap php-tidy


安装php-fpm及php-cli模块时,CentOS自带的源不存会提示错误。需要进行如下处理:

配置remi源

rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
yum install yum-priorities



vi /etc/yum.repos.d/remi.repo


在文件中写入

[remi]
name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority


安装php-fpm

yum install php-fpm php-cli php-gd php-mysql


2. 编辑php.ini

vi /etc/php.ini


在文件结尾处添加

cgi.fix_pathinfo = 1


3. 启动php-fpm

service php-fpm start
chkconfig --levels 235 php-fpm on


4. 建立测试主页index.php

Nginx默认的发布目录是/usr/share/nginx/html,在此文件夹下建立测试主页

vi /usr/share/nginx/html/index.php


写入如下内容

<?php
phpinfo();
?>


5. 修改nginx配置文件

vi /etc/nginx/nginx.conf


进行如下修改(可直接覆盖原文件)

server {
	listen       8080;
	server_name  _;
	#charset koi8-r;
	#access_log  logs/host.access.log  main;
	location / {
		root   /usr/share/nginx/html;
		index  index.php index.html index.htm;
	}

	error_page  404              /404.html;
	location = /404.html {
		root   /usr/share/nginx/html;
	}

	# redirect server error pages to the static page /50x.html
	#
	error_page   500 502 503 504  /50x.html;
	location = /50x.html {
		root   /usr/share/nginx/html;
	}

	# proxy the PHP scripts to Apache listening on 127.0.0.1:80
	#
	#location ~ \.php$ {
	#	proxy_pass   http://127.0.0.1;
	#}

	# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		root           /usr/share/nginx/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;
	}

	# deny access to .htaccess files, if Apache's document root
	# concurs with nginx's one
	#
	location ~ /\.ht {
		deny  all;
	}

}


6. 重启相关服务

service nginx restart
service php-fpm restart


这时访问http://localhost:8080打开Nginx默认的php测试主页,如下



7. 虚拟目录配置

Nginx中有alias与root两种标签,最基本的区别是:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。如:

location /lovesoo {
	alias /media/lovesoo;
	index index.html index.htm ;
}


这种配置下http://localhost/lovesoo指定的是/media/lovesoo

location / lovesoo  {
	root /media/;
	index index.html index.htm ;
}


这种配置下,访问http://localhost/lovesoo时,Nginx会去找/media目录下的lovesoo文件夹

Nginx也有与Apache类型的alias功能,示例配置如下

location ~ / lovesoo {
	root /media/;
	index index.html index.htm ;
}


8. php支持配置

首先建立index.php测试文件

vi /media/lovesoo/index.php


写入如下内容

<?php
 
phpinfo();
 
?>



vi /etc/nginx/nginx.conf


在nginx配置文件中添加如下配置

location /lovesoo {
	alias /media/lovesoo;
	index index.php index.html index.htm;
}

location ~ /lovesoo/.+\.php.*$ {
	if ($fastcgi_script_name ~ /lovesoo/(.+\.php.*)$) {
		set $valid_fastcgi_script_name $1;
	}
	fastcgi_pass  127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  /media/lovesoo/$valid_fastcgi_script_name;
	include  fastcgi_params;
}


重启nginx及php-fpm服务

service nginx restart
service php-fpm restart


访问http://localhost:8080/lovesoo,即可正常访问测试主页index.php

Link: http://www.asm32.net/article_details.aspx?id=7116


浏览次数 0 发布时间 2016/10/30 21:08:01 从属分类 SERVER 服务器 【评论】【 】【打印】【关闭
 
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 京ICP备09029108号-1