Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程

    因为某种需求,可能是因为早期的项目需要低版本的php,和目前开发所用的版本不太一致,我们需要给不同的虚拟主机配置不同版本的PHP。避免去额外配置多个Apache,等iis和apache共存的麻烦。

下文引量说明:

D:/Apache/          Apache安装目录

D:/php53/            PHP5.3版本目录,以上版本类同

D:/WEB/*             虚拟主机主目录

  • #准备工作

测试系统(windows7x64)

所需文件 apache2.2(x86)、PHP(nts)、fcgid(mod_fcgid-2.3.6-win32-x86)

1.常规手动部署apache方法(不会apache配置的请先移步看下Apache基本手工配置方法),解压fcgid,取其mod_fcgid.so至modules目录

PHP各版本解压到不同目录并配置,任意位置,方便即可。

2.打开httpd.conf 注释掉以下类似配置

#LoadModule php5_module "D:/php53/php5apache2_2.dll"
#PHPIniDir "D:/php53/"

 3.增加配置(尾部或中部即可)

#加载fcgid扩展模块(额外说明,fcgid根据实际apache版本对应,apache2版本测试2.3.6正常)
LoadModule fcgid_module modules/mod_fcgid.so
#添加映射
AddHandler fcgid-script .fcgi .php
# 设置PHP_FCGI_MAX_REQUESTS大于或等于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
#php-cgi每个进程的最大请求数
FcgidMaxRequestsPerProcess 1000
#php-cgi最大的进程数
FcgidMaxProcesses 3
#最大执行时间
FcgidIOTimeout 120
FcgidIdleTimeout 120
AddType application/x-httpd-php .php
#------这里是默认虚拟主机配置
#php.ini的存放目录
FcgidInitialEnv PHPRC "D:/php5.4.4/"
#php-cgi的路径
FcgidWrapper "D:/php5.4.4/php-cgi.exe" .php

4.修改添加执行权限(如若不然,可能会提示HTTP错误,禁止访问403)

ExecCGI 为附加值

<Directory />
    Options FollowSymLinks ExecCGI
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

 5. 虚拟主机文件配置 (每个虚拟主机独立的配置段中只需要更改其配置版本路径即可,以下配置为PHP5.3.1虚拟主机配置)

<VirtualHost *:80>
      ServerName "apihost"
      ServerAlias www.apihost.com api.apihost.com
      FcgidInitialEnv PHPRC "D:/php5.3.1/"
      FcgidWrapper "D:/php5.3.1/php-cgi.exe" .php
      DocumentRoot "D:/WEB/apihost/wwwroot/"
      ErrorLog "D:/WEB/apihost/log/error.log"
      CustomLog "D:/WEB/apihost/log/access.log" common
</VirtualHost>

重启Apache完工!

以上内容为小编测试使用记录,网上类似的文章并不多,有其他默认CGI配置方式+htaccess配置过程,经小测试没有成功。

如果你有更好的方法可以在底部留言哦!

#以下为小编整理的引文,供大家参考使用。

1.mod_fcgid指令的中文翻译

http://blog.csdn.net/xuejiazhi/article/details/9022961

2.mod_fcgid下载地址(vc10以上)

http://www.apachelounge.com/download/VC10/

3.apache+php多版本共存解决方案

http://www.zhixing123.cn/php/19008.html

4.apache多版本php配置过程

http://www.cnblogs.com/xiaoyaoxia/archive/2011/09/29/2195434.html

5.WampServer中Apache使用FastCGI模式跑PHP5.3nts版

http://my.oschina.net/Twitter/blog/210044

6.PHP中VC6、VC9、TS、NTS版本的区别与用法详解

http://www.jb51.net/article/42422.htm

补充:ISAPI来执行PHP,每一个请求不会立即结束,选择线程安全版

      FastCGI执行PHP,单一的线程运行程序,选择非线程安全版

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏地方网络工作室的专栏

打造前端 Deepin Linux 工作环境——配置 XAMPP 集成环境2 虚拟主机、数据库

打造前端 Deepin Linux 工作环境——配置 XAMPP 集成环境2 虚拟主机、数据库 再上一篇博文当中,我们安装上了 XAMPP 集成环境。这一篇,我...

2267
来自专栏云计算教程系列

如何在CentOS 7上安装Elasticsearch,Logstash和Kibana

在本教程中,我们将介绍在CentOS 7上安装Elasticsearch ELK Stack,即Elasticsearch 2.2.x,Logstash 2.2...

1932
来自专栏乐沙弥的世界

Oracle 集群心跳及其参数misscount/disktimeout/reboottime

    在Oracle RAC中,可以从多个层次,多个不同的机制来检测RAC的健康状况,即可以通过心跳机制以及一定的投票算法来隔离故障。如果检测到某节点失败,则...

1131
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Rsyslog,Logstash和Elasticsearch集中日志

了解组织生成的数百万条日志行是一项艰巨的挑战。一方面,这些日志行提供了应用程序性能,服务器性能指标和安全性的视图。另一方面,日志管理和分析可能非常耗时,这可能会...

5622
来自专栏刺客博客

利用Aria2+DarkHttpd+Aria2WebUI+打造个人网盘

2963
来自专栏IT笔记

JavaWeb项目架构之Elasticsearch日志处理系统

Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定、可靠、快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的。

7169
来自专栏北京马哥教育

ELK(ElasticSearch, Logstash, Kibana)搭建日志分析平台

1624
来自专栏FreeBuf

ubuntu上安装Apache2+ModSecurity及自定义WAF规则

小编注:本文作者系FreeBuf专栏作者 @碳机体 美眉,目前她的研究方向主攻云防火墙。对文章内容有不清楚的可以直接评论区中留言,注意秩序和素质。 虽然VPS使...

3338
来自专栏小狼的世界

WAMP环境配置

经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。

2934
来自专栏linux系统运维

Apache用户认证,域名跳转,Apache访问日志

1965

扫码关注云+社区

领取腾讯云代金券