Nginx和apache服务器中php运行方式

PHP5的CGI方式的一大优势是内置了FastCGI的支持,只需指明绑定的地址和端口参数便可以以FastCGI的方式运行,如下:

php-cgi -b 127.0.0.1:9000

配置Nginx的PHP FastCGI

请将以下内容保存为fastcgi_params文件,保存于/usr/local/nginx/conf下(Ubuntu可保存于/etc/nginx下),他为我们的FastCGI模块设置了基本的环境变量:

#fastcgi_params
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

请特别注意”fastcgi_script_name”一行,PHP-CGI特别需要此行信息来确定PHP文件的位置。

另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,打开cgi.fix_pathinfo选项:

cgi.fix_pathinfo=1;

这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。

接下来在nginx的配置中针对php文件配置其利用FastCGI进程来执行:

server {
    index index.php;
    root  /usr/local/nginx/html;

    location ~ .*.php$ {
        include /usr/local/nginx/conf/fastcgi_params;  #请根据自己保存的路径进行设置
        fastcgi_index index.php;
        fastcgi_pass  127.0.0.1:9000; #请根据自己的FastCGI绑定的地址和端口进行配置
    }
}
时间: 2024-10-11 21:28:47

Nginx和apache服务器中php运行方式的相关文章

在Apache服务器中配置ThinkPHP伪静态URL

ThinkPHP 作为国内最流行的一个PHP框架,由于她开发应用的便捷,便吸引越来越多的开发者开始使用她来做项目的底层架构.像我PHP基础并不是很好,也可以使用她来完成一个像模像样的项目. 下面便分享一些使用ThinkPHP需要了解的东西. 去掉 URL 中的 index.php ThinkPHP是单一入口的,默认的 URL 不是很友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache 里面的 .htaccess 文件,更是可以定制出人性化的更利于 SEO 的

Apache服务器中prefork和worker工作模式

一.多道处理模块MPM介绍 Apache HTTP 服务器被设计为一个功能强大,并且灵活的 web 服务器, 可以在很多平台与环境中工作.不同平台和不同的环境往往需要不同 的特性,或可能以不同的方式实现相同的特性最有效率.Apache 通过模块化的设计来适应各种环境.这种设计允许网站管理员通过在 编译时或运行时,选择哪些模块将会加载在服务器中,来选择服务器特性.        Apache 2.0 扩展此模块化设计到最基本的 web 服务器功能. 它提供了可以选择的多处理模块(MPM),用来绑定

Windows下Apache服务器中自动配置二级子域名

今天我们介绍的这个办法,只需要简单修改 httpd-vhosts.conf 文件,配合 .htaccess 文件即可实现自动配置二级域名. 我们这里以 wpchina.com 为例,以下代码中的 wpchina.com 都可以替换成你自己想要域名. 我们的目标是,不同的子域名可以访问不同目录下的网站: wpchina.com => / : home.wpchina.com => /home: bbs.wpchina.com => /bbs: … 第一步,确认安装好 Apache 服务器,

Apache服务器中运行CGI程序的方法,文中以Perl脚本作为示例

关于apache与CGI在这里就不解释了. 1.apache下面以2.0.63为例介绍运行CGI程序的配置.(http://www.nklsyy.com) 2.下载Windows下的Perl解释器ActivePerl,最新版本ActivePerl- 5.10.0.1003,假设安装路径为c:\Perl. 3.修改apache的配置文件httpd.conf: <Directory "D:/Apache Group/Apache2/cgi-bin"> AllowOverride

Nginx和Apache服务器上配置反向代理

在实际项目过程中,由于网站要用到一个在线编辑器(个性化的在线编辑软件),需要跨域进行通信!由于跨域通信较多,所以当时就想到在网站服务器上代理编辑软件的请求! 这就是“反向代理”的实际需求! 一.Nginx上配置反向代理 location /edit/ { proxy_pass http://edit.host.net/; #Proxy Settings proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real

Nginx在linux服务器中配置负载均衡upstream详解

这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了. 这里介绍一台服务器(192.168.83.130),代理两个本机的tomcat(端口分别为:8080.8081),下面是安装后情况: nginx目录: tomcat目录: 首先在两个tomcat的/conf/server.xml里面分别配置端口如下: 分别重启待用. 然后在nginx的/conf/nginx.conf下设置如下: 设置完成后重启nginx. 浏览器输入主机ip:http://192.168.

关于Apache服务器中配置虚拟目录和虚拟主机

一.配置虚拟目录: ① ②注销DocumentRoot路径(这个配置文件中使用'#'来注释一行语句) ③关于配置的虚拟路径中权限设置语句的解读 例图: 图中语句的意思是: order表示读取语句是先allow,后deny.所以执行顺序是:allow(允许所有ip访问站点文件夹)--->deny(拒绝所有ip访问站点文件夹)--->allow from 218.20.253.2(允许ip地址218.20.253.2访问)--->deny from 218.20(拒绝所有以218.20开头的

在Apache服务器中禁用option

在apache禁止 http OPTIONS方法. apache disable http OPTIONS method 2013-04-17 09:27 4050人阅读 评论(1) 收藏 举报  分类: 网络安全 WEB(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. [html] view plain copy <Location /> <Limit OPTIONS> Deny from all </Limit> </Location> 或

LNMP(linux+nginx+mysql+php)服务器环境配置

一.简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过三年了.Igor Sysoev在建立的项目时,使用基于BSD许可. 在高并发连接的情况下,Nginx是Apache服务器不错的替代品.Nginx同时也可以作为7层负载均衡服