首先安装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模式的实验的更多相关文章

  1. apache中配置php支持模块模式、cgi模式和fastcgi模式

    首先安装apache.mysql和php,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了 ...

  2. php在apache中一共有三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL

    php在apache中一共有三种工作方式:CGI模式.FastCGI .FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内存中并因 ...

  3. Apache中配置数据库连接池(数据源)

    由于基于HTTP协议的Web程序是无状态的,因此,在应用程序中使用JDBC时,每次处理客户端请求都会重新建立数据库链接,如果客户端的请求频繁的话,这将会消耗非常多的资源,因此,在Tomcat中提供了数 ...

  4. Debian配置Apache2支持mod-python和cgi模块

    Ubuntu好像是直接支持的,现在回到Debian有点不适应了.需要人工配置一下: 一.mod-python 安装模块:apt-get install libapache2-mod-python 编辑 ...

  5. Apache伪静态配置,支持.htaccess配置方法

    第一.编辑httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_re ...

  6. CentOS 中 配置 Nginx 支持 https

    一.基础设置: .yum -y update .yum -y install openssl* .cd /usr/local/nginx/conf .mkdir ./ssl .cd ./ssl # 在 ...

  7. 在虚拟机中配置FastDFS+Nginx模块

    先上部署图 提示一下, ip 192.168.72.138 上面部署了两个group, 分别为 group1和g2. 另外, 同组之内的 port 要保持一致. 一.安装准备 1. #每台机器都添加两 ...

  8. 如何在Apache中配置多端口访问

    环境: Windows server 2008 R2, Apache, PHP5 步骤: 建立一个目录,里面放置一个index.php. 打开Apache\conf\httpd.conf 文件,做如下 ...

  9. Docker中配置字符集支持中文

    在Dockerfile中加入以下内容: ENV LANG en_US.UTF-8ENV LANGUAGE en_US:enENV LC_ALL en_US.UTF-8

随机推荐

  1. mysql 语句要求

    mysql 语句不可以有单引号,要把单引号替换为双引号!

  2. 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生

    [转].NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  3. GoogleMap的鼠标点击标注、搜索和设置城市的简单应用

    资源 Google Map API包含了大量的文档.示例和各种资料.在使用前需要申请自己的密钥 墙内要用:http://maps.google.cn/maps/api/js? 墙外可用:https:/ ...

  4. Java深入 - Java 内存分配和回收机制-转

    Java的GC机制是自动进行的,和c语言有些区别需要程序员自己保证内存的使用和回收. Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC ...

  5. IIS7设置默认页

    一般用ASP.NET创建的网站默认页都是Default.aspx,不需要设置. 但是如果有网站的起始页不是Default.aspx,就需要在IIS里设置了. IIS7的设置方法和IIS6的不一样: 在 ...

  6. Java多线程编程总结一:多线程基本概念

    Java多线程编程总结一 – 初识多线程 进程.多进程.线程.多线程的概念 进程(process):CPU的执行路径.通俗的说就是系统中正在运行的程序.比如我们打开了浏览器.QQ等等,这些程序一旦被打 ...

  7. Java线程面试题:子线程先运行 2 次,然后主线程运行 4 次,如此反复运行 3 次

    package thread; /** * 需求:线程编程:子线程先运行 2 次,然后主线程运行 4 次,如此反复运行 3 次. * @author zhongfg * @date 2015-06-1 ...

  8. 【JavaScript】BOM和DOM

    在第一篇JavaScript视频总结博客中.是对JavaScript做了一个宏观的认识.当中,不知道大家可否还记得.JavaScript的核心部分包含哪些? JavaScript的核心部分主要包含三个 ...

  9. [Java开发之路](8)输入流和输出流

    1. Java流的分类 按流向分: 输入流: 能够从当中读入一个字节序列的对象称作输入流. 输出流: 能够向当中写入一个字节序列的对象称作输出流. 这些字节序列的来源地和目的地能够是文件,并且通常都是 ...

  10. java基础之【堆、栈、方法区】结构图

    |--数组实例化过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHViaWFvXzA2MTg=/font/5a6L5L2T/fontsize/400/ ...