apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
首先安装apache、mysql和php,依次顺序安装。
1.apache、mysql的安装比较简单,略过
2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了。
./configure –prefix=/usr/local/php5 /
--with-mysql=/usr/local/mysql /
--enable-fpm
--with-apxs2=/usr/local/apache/bin/apxs
注意:
--enable-fastcgi
--enable-force-cgi-redirect
这2个php新版本已经内置支持,所以如果加上这2个参数,make完毕会提示这2个参数找不到。所以不需要加这2个参数了。
--with-apxs2
这个参数看到有的文章说需要fastcgi模式的话,就不能配置这个,其实也不完全是这样,这个参数的用途只不过是把php的解释模块编译成so文件添加到apache的modules中,并且自动添加到conf文件。如果我们不想用模块模式的话,在httpd.conf中把:
LoadModule php5_module modules/libphp5.so
这行注释掉就可以了。
3.mod_fastcgi的安装
#wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
# tar -zxvf mod_fastcgi-2.4.6.tar.gz
# cd mod_fastcgi-2.4.6
# cp Makefile.AP2 Makefile
# vim Makefile 将Makefile中的路径改成你的apache的安装路径
# make install 安装成功
安装成功后,会自动把mod_fastcgi.so复制到/usr/local/apache/modules目录
接下来是如何配置这4种模式:
1.模块模式
这种模式最简单,在http.conf中增加
LoadModule php5_module modules/libphp5.so
即可。然后在
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType applicaiton/x-httpd-php-source .phps
2.CGI模式
这种模式需要注释掉
LoadModule php5_module modules/libphp5.so 这行。如果不注释这行会一直走到handler模式。也就是模块模式。
然后在httpd.conf增加action:
Action application/x-httpd-php /cgi-bin/php-cgi
如果在/cgi-bin/目录找不到php-cgi.可自行从php的bin里面cp一个。
然后重启apache,再打开测试页面发现Server API变成:CGI/FastCGI。说明成功切换为cgi模式。
3.FastCgi模式,用apche内置进程管理器
首先要添加fastcgi模块到httpd.conf配置文件:
LoadModule fastcgi_module modules/mod_fastcgi.so
这种模式注释不注释LoadModule php5_module modules/libphp5.so这行貌似没什么关系,只要配置了以下模块
<IfModule fastcgi_module>
FastCgiServer /usr/local/apache/cgi-bin/php-cgi -processes 20
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi
</IfModule>
就会自动走到fastcgi模式。
然后重启apache,这个时候用 ps aux|grep php就会发现有很多php-cgi进程在运行。说明配置生效
4.FastCgi模式,用php-fpm进程管理器
首先要添加fastcgi模块到httpd.conf配置文件:
LoadModule fastcgi_module modules/mod_fastcgi.so
接着修改配置文件成:
<IfModule fastcgi_module>
FastCgiExternalServer /usr/local/apache/cgi-bin/php-cgi -host 127.0.0.1:9000
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php-cgi
</IfModule>
注意,127.0.0.1:9000是php-fpm的开启端口,所以我们还需要把php-fpm打开。
我电脑的位置是.
>>>/usr/local/php5/sbin/php-fpm
打开后再ps aux|grep php
会发现很多php-fpm的进程:
root 7002 0.4 1.5 13060 1912 ? Ss 15:20 0:00 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)
nobody 7003 0.0 1.3 13052 1656 ? S 15:20 0:00 php-fpm: pool www
nobody 7004 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7005 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7006 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7007 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7008 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7009 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7010 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7011 0.0 1.3 13052 1660 ? S 15:20 0:00 php-fpm: pool www
nobody 7012 0.0 1.3 13052 1668 ? S 15:20 0:00 php-fpm: pool www
nobody 7013 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7014 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7015 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7016 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7017 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7018 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7019 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7020 0.0 1.3 13052 1676 ? S 15:20 0:00 php-fpm: pool www
nobody 7021 0.0 1.3 13052 1672 ? S 15:20 0:00 php-fpm: pool www
nobody 7022 0.0 1.3 13052 1676 ? S 15:20 0:00 php-fpm: pool www
再测试下访问没问题,大功搞成咯。
apache中配置php支持模块模式、cgi模式和fastcgi模式的实验的更多相关文章
- apache中配置php支持模块模式、cgi模式和fastcgi模式
首先安装apache.mysql和php,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了 ...
- php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL
php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...
- Apache中配置数据库连接池(数据源)
由于基于HTTP协议的Web程序是无状态的,因此,在应用程序中使用JDBC时,每次处理客户端请求都会重新建立数据库链接,如果客户端的请求频繁的话,这将会消耗非常多的资源,因此,在Tomcat中提供了数 ...
- Debian配置Apache2支持mod-python和cgi模块
Ubuntu好像是直接支持的,现在回到Debian有点不适应了.需要人工配置一下: 一.mod-python 安装模块:apt-get install libapache2-mod-python 编辑 ...
- Apache伪静态配置,支持.htaccess配置方法
第一.编辑httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_re ...
- CentOS 中 配置 Nginx 支持 https
一.基础设置: .yum -y update .yum -y install openssl* .cd /usr/local/nginx/conf .mkdir ./ssl .cd ./ssl # 在 ...
- 在虚拟机中配置FastDFS+Nginx模块
先上部署图 提示一下, ip 192.168.72.138 上面部署了两个group, 分别为 group1和g2. 另外, 同组之内的 port 要保持一致. 一.安装准备 1. #每台机器都添加两 ...
- 如何在Apache中配置多端口访问
环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...
- Docker中配置字符集支持中文
在Dockerfile中加入以下内容: ENV LANG en_US.UTF-8ENV LANGUAGE en_US:enENV LC_ALL en_US.UTF-8
随机推荐
- .NET CORE 2.0小白笔记(二):VS插件 ReSharper Ultimate 2017 安装破解
采用Use License Server方式激活,如果有多台要激活的可以用一个当服务器 下载网盘:链接: https://pan.baidu.com/s/1nvacvKP 密码: ipxc 版本:Je ...
- Fiddler 默认不能抓取页面信息的问题
先如下配置
- MapReduce小文件处理之CombineFileInputFormat实现
在MapReduce使用过程中.一般会遇到输入文件特别小(几百KB.几十MB).而Hadoop默认会为每一个文件向yarn申请一个container启动map,container的启动关闭是很耗时的. ...
- linux权限的深入讨论
1. 怎样查看文件的权限 1) 掌握使用ls –l命令查看文件上所设定的权限. drwxr-xr-x. 2 root root 6 May 26 2017 binfmt.d 权限信 ...
- hdu Portal(离线,并查集)
题意:在一张无向图上,已知边权,做q组询问,问小于L的点对共有几组.点对间的距离取=min(两点之间每一条通路上的最大值). 分析:这里取最大值的最小值,常用到二分.而这里利用离线算法,先对边从小到大 ...
- jsp 页面导出excel时字符串数字变成科学计数法的解决方法
web导出excel数据格式化 原文地址:http://www.cnblogs.com/myaspnet/archive/2011/05/06/2038490.html 当我们把web页面上的数据 ...
- DataUml Design 教程1-初识
DataUml Design 是面向开发人员使用的一个永久免费的软件,提高软件的开发效率和代码的规范度.它主要包括三大功能,数据模型.代码生成和UML建模,数据模型功能类似于PowerDesi ...
- 给jquery easy-ui 添加右键菜单
版权声明:转自为EasyUI 的Tab 标签添加右键菜单
- 多媒体开发之rtp 打包发流---同网段其他机子sdp 播放不了
(1) (2) (3) -------------author:pkf ------------------time:2015-1-6 后面发现是connection 的server 地址是指定的 导 ...
- unity中动态生成网格
以下是绘制正方形面片的一个例子,方便之后查阅: 效果如图所示: 红轴为x方向,蓝轴为z方向. 代码如下: using System.Collections; using System.Collecti ...