`
viproc
  • 浏览: 44596 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

PHP超级配置模块

    博客分类:
  • php
php 
阅读更多

在Apache之中调用PHP是个经久不衰的话题,目前的PHP存在PHP4和PHP5的版本,而且在Apache之中调用PHP还存在module(模块)方式和CGI方式,同时Apache还存在Apache1和Apache2两个版本.
在Apache之中调用PHP存在以下八种模式:
1,PHP4在Apache1的module模式
2,PHP4在Apache1的cgi模式
3,PHP5在Apache1的module模式
4,PHP5在Apache1的cgi模式
5,PHP4在Apache2的module模式
6,PHP4在Apache2的cgi模式
7,PHP5在Apache2的module模式
8,PHP5在Apache2的cgi模式
你有没有想过,把这八种调用模式,就在一个配置文件之中给配置出来呢?
也许你作过,但是没有完全成功,因为这八种模式之间,是不能相互兼容的哦.
然而,灵活运用Apache的一条指令,将这八种模式乖乖的驯服,收容在一起,就易如反掌了.

 

--------------------------------------------------------------------------------


在Apache之中调用PHP是个经久不衰的话题,目前的PHP存在PHP4和PHP5的版本,而且在Apache之中调用PHP还存在module(模块)方式和CGI方式,同时Apache还存在Apache1和Apache2两个版本.
在Apache之中调用PHP存在以下八种模式:
1,PHP4在Apache1的module模式
2,PHP4在Apache1的cgi模式
3,PHP5在Apache1的module模式
4,PHP5在Apache1的cgi模式
5,PHP4在Apache2的module模式
6,PHP4在Apache2的cgi模式
7,PHP5在Apache2的module模式
8,PHP5在Apache2的cgi模式
你有没有想过,把这八种调用模式,就在一个配置文件之中给配置出来呢?
也许你作过,但是没有完全成功,因为这八种模式之间,是不能相互兼容的哦.
然而,灵活运用Apache的一条指令,将这八种模式乖乖的驯服,收容在一起,就易如反掌了.
哪一条指令?原来就是:
http://w.yi.org/ftp/FAPM/apache/Apache2/zh/mod/core.html#ifdefine有对这条指令的完整介绍.
<IfDefine>指令
代码:

说明: 只有在启动时进行了一个成功的测试后才进行的一个封装指令
语法: <IfDefine [!]参数名> ... </IfDefine>
上下文: 服务器配置, 虚拟主机, 目录, .htaccess
覆盖项: All
状态: 核心
模块: core

<IfDefine测试>...</IfDefine>配置段用于标识附加施用条件的指令。<IfDefine>配置段中的指令仅当测试结果为真时才进行处理。如果测试失败。此配置段中的指令将会被忽略。

<IfDefine>配置段中的测试可以为以下两种形式之一:

参数名
!参数名
在第一种情况下,仅当符合参数名的参数已经定义的情况下才对开始和结束标记之间的指令进行处理。第二种情况则截然相反。仅当参数名没有定义的情况下才进行指令的处理。

参数名变量是在服务启动时,通过httpd命令行的-D参数-这样的形式指定的。

<IfDefine>配置段是可以嵌套的,从而可以实现简单的多参数测试。比如说:

$ httpd -DReverseProxy ...

# httpd.conf
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>

 

 

 

##################################################################
# PHP超级配置模块--PHP4,PHP5,module,cgi任你玩转--应用于Apache #
##################################################################
# 配置版本 通用版v1.01 #
# 配置编写 乔楚/HonestQiao #
# 编写日期 2004年5月29日 #
# 联系方式 QQ:5601680 MSN:honestqiao@hotmail.com #
##################################################################
# 主页地址: http://w.yi.org/ #
# 论坛地址: http://bbs.chinaunix.net/forum/viewforum.php?f=13 #
##################################################################
##################################################################
# 版权声明 #
# 本PHP超级配置模块系乔楚(HonestQiao)所写,你可以任意使用和传播#
#本PHP超级配置模块,但是请保留配置内容以上的声明部分(因为本声明不 #
#会对你的实际配置造成任何影响),并且不得以任何方式表明是你写了本 #
#PHP超级配置模块. #
# 谢谢你的使用,欢迎批评建议和报告错误. #
##################################################################
SetEnv php_control_status not_php_control_status
<IfDefine Apache=Apache>
SetEnv php_control_status Apache
<IfDefine php=php4>
SetEnv php_control_status Apache_php4
<IfDefine type=mod>
SetEnv php_control_status Apache_php4_mod
LoadModule php4_module /usr/local/php-4.3.6/sapi/php4apache.dll #请修改为实际的路径
#AddModule mod_php4.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
#PHPINIDir /usr/local/etc/php/php4.ini
#请将php.ini放置到Apache的安装目录
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php4" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>

<IfDefine !type=mod>
SetEnv php_control_status Apache_php4_not_mod
<IfDefine type=cgi>
SetEnv php_control_status Apache_php4_cgi
ScriptAlias /php/ "/usr/local/php-4.3.6/" #请修改为实际的路径
Action application/x-httpd-php "/php/php.exe"
#请将php.ini放置到Apache的安装目录
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php4" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>
</IfDefine>
</IfDefine>

<IfDefine !php=php4>
SetEnv php_control_status Apache_not_php4
<IfDefine php=php5>
SetEnv php_control_status Apache_php5
<IfDefine type=mod>
SetEnv php_control_status Apache_php5_mod
LoadModule php5_module /usr/local/php-5.0.0RC2/php5apache.dll #请修改为实际的路径
#AddModule mod_php5.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php-source .phps
#PHPINIDir /usr/local/etc/php/php5.ini
#请将php.ini放置到Apache的安装目录
Alias "/server-php" "/usr/local/etc/php/phpinfo.php5" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>

<IfDefine !type=mod>
SetEnv php_control_status Apache_php5_not_mod
<IfDefine type=cgi>
SetEnv php_control_status Apache_php5_cgi
ScriptAlias /php/ "/usr/local/php-5.0.0RC2/" #请修改为实际的路径
Action application/x-httpd-php "/php/php-cgi.exe"
#请将php.ini放置到Apache的安装目录
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php5" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>
</IfDefine>
</IfDefine>
</IfDefine>
</IfDefine>

<IfDefine !Apache=Apache>
SetEnv php_control_status not_Apache
<IfDefine Apache=Apache2>
SetEnv php_control_status Apache2
<IfDefine php=php4>
SetEnv php_control_status Apache2_php4
<IfDefine type=mod>
SetEnv php_control_status Apache2_php4_mod
LoadModule php4_module /usr/local/php-4.3.6/sapi/php4apache2.dll #请修改为实际的路径
#AddModule mod_php4.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
PHPINIDir /usr/local/etc/php/php4.ini #请修改为实际的路径
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php4" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>

<IfDefine !type=mod>
SetEnv php_control_status Apache2_php4_not_mod
<IfDefine type=cgi>
SetEnv php_control_status Apache2_php4_cgi
ScriptAlias /php/ "/usr/local/php-4.3.6/" #请修改为实际的路径
Action application/x-httpd-php "/php/php.exe"
#请将php.ini放置到Apache的安装目录
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php4" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>
</IfDefine>
</IfDefine>

<IfDefine !php=php4>
SetEnv php_control_status Apache2_not_php4
<IfDefine php=php5>
SetEnv php_control_status Apache2_php5
<IfDefine type=mod>
SetEnv php_control_status Apache2_php5_mod
LoadModule php5_module /usr/local/php-5.0.0RC2/php5apache2.dll #请修改为实际的路径
#AddModule mod_php5.c
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php-source .phps
PHPINIDir /usr/local/etc/php/php5.ini #请修改为实际的路径
Alias "/server-php" "/usr/local/etc/php/phpinfo.php5" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>

<IfDefine !type=mod>
SetEnv php_control_status Apache2_php5_not_mod
<IfDefine type=cgi>
SetEnv php_control_status Apache2_php5_cgi
ScriptAlias /php/ "/usr/local/php-5.0.0RC2/" #请修改为实际的路径
Action application/x-httpd-php "/php/php-cgi.exe"
#请将php.ini放置到Apache的安装目录
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php5
AddType application/x-httpd-php-source .phps
Alias "/server-php" "/usr/local/etc/php/phpinfo.php5" #请修改为实际的路径
Alias "/phpMyAdmin" "/usr/local/phpMyAdmin-2.6.0-alpha2/" #请修改为实际的路径
</IfDefine>
</IfDefine>
</IfDefine>
</IfDefine>
</IfDefine>
</IfDefine>

 

 

 

 

 

#使用方法:
# 设备命令:
# 连接配置:
# 将以上PHP超级配置模块保存为一个文件,名称为php.conf,然后在Apache的配置文件之中,使用Include "/path/to/php.conf"来引用PHP超级配置模块;
# 修改PHP超级配置模块之中提示需要修改的部分,一般是修改为你的文件所在的实际路径.
#
# 启动命令:
# ApacheControl -k start -D Apache=ApacheVersion php=phpVersion type=RunType
# 假设启动apache的文件名为httpd,执行指令如下:
# httpd -k start -D Apache=ApacheVersion php=phpVersion type=RunType
# ApacheVersion:表示Apache的版本Apache,Apache--表示Apache1;Apache2--表示Apache2;
# phpVersion:表示PHP的版本,php4--表示PHP4;php5--表示PHP5;
# RunType:表示运行模式,mod--表示以module(模块)方式运行;cgi--表示以CGI方式运行
#
# 通道信息:
# PHP超级配置模块状态:表示环境变量之中PHP超级配置的状态,可以通过CGI探针或者phpinfo()来查看.
# 说明:状态名称:php_control_status
# 状态值: not_php_control_status: 表示没有处于PHP超级配置模块
# Apache : 表示进入Apache1配置区域
# Apache_php4 : 表示进入Apache1的PHP4配置区域
# Apache_php4_mod : 表示进入Apache1的PHP4的module(模块)方式配置区域
# Apache_php4_not_mod : 表示进入Apache1的PHP4的非module(模块)方式配置区域
# Apache_php4_cgi : 表示进入Apache1的PHP4的CGI方式配置区域
# Apache_not_php4 : 表示进入Apache1的非PHP4配置区域
# Apache_php5 : 表示进入Apache1的PHP5配置区域
# Apache_php5_mod : 表示进入Apache1的PHP5的module(模块)方式配置区域
# Apache_php5_not_mod : 表示进入Apache1的PHP5的非module(模块)方式配置区域
# Apache_php5_cgi : 表示进入Apache1的PHP5的CGI方式配置区域
#
# not_Apache : 表示进入非Apache1配置区域
# Apache2_php4 : 表示进入Apache2的PHP4配置区域
# Apache2_php4_mod : 表示进入Apache2的PHP4的module(模块)方式配置区域
# Apache2_php4_not_mod : 表示进入Apache2的PHP4的非module(模块)方式配置区域
# Apache2_php4_cgi : 表示进入Apache2的PHP4的CGI方式配置区域
# Apache2_not_php4 : 表示进入Apache2的非PHP4配置区域
# Apache2_php5 : 表示进入Apache2的PHP5配置区域
# Apache2_php5_mod : 表示进入Apache2的PHP5的module(模块)方式配置区域
# Apache2_php5_not_mod : 表示进入Apache2的PHP5的非module(模块)方式配置区域
# Apache2_php5_cgi : 表示进入Apache2的PHP5的CGI方式配置区域
#

 

 


#测试工程:
# 例如在Window2000环境下,执行以下设备命令:
# cd /path/to/apache/
# apache -k start -D Apache=Apache php=php4 type=mod
# 执行被设备命令之后,php_control_status的值变为Apache_php4_mod,表示处于Apache1的PHP4的Module模式之下;
#
# cd /path/to/apache/
# apache -k start -D Apache=Apache php=php5 type=cgi
# 执行被设备命令之后,php_control_status的值变为Apache_php5_cgi,表示处于Apache1的PHP5的CGI模式之下;
#
# cd /path/to/apache2/bin/
# apache -k start -D Apache=Apache2 php=php4 type=cgi
# 执行被设备命令之后,php_control_status的值变为Apache2_php4_cgi,表示处于Apache2的PHP4的CGI模式之下;
#
# cd /path/to/apache2/bin/
# apache -k start -D Apache=Apache2 php=php5 type=mod
# 执行被设备命令之后,php_control_status的值变为Apache2_php5_mod,表示处于Apache2的PHP5的Module模式之下;
#
#
#常见问题:
# 1.启动时提示错误,且错误出在PHP超级配置模块的相关行,一般表示相关的设置路径不正确
# 2.启动成功但是没有调用PHP,你可以查看php_control_status的状态值,以确定问题所在,可能执行设备明令时所给的参数不正确
# 3.启动正确,也可以调用PHP了,那你还说什么问题啊,要恭喜你可以正常使用了啊.
# 4.如果问题还不能解决,请和本PHP超级配置模块的开发者取得联系.
#
#
#附加说明:
# 本PHP超级配置模块,只是给出了一个通用的PHP在Apache之下调用的控制方式,使用本PHP超级配置模块的相关行,需要你对Apache和PHP有一定了解.
# 如果你需要更为具体的配置,请和我联系,我将根据您的实际运行环境,作出适合您的实际运行环境的PHP超级配置模块的定制版本.
#

 

分享到:
评论

相关推荐

    超级文章3.7版 文章管理模块 卓越的积分机制 支持打赏、签到,独家支持敏感词设置.rar

    超级文章3.7全开源版 文章管理模块 卓越的积分机制 支持打赏、签到,独家支持敏感词设置精仿每日头条app,帮助自媒体运营属于自己的微信公众号新闻平台。功能列表1、独家支持敏感词设置很多域名被封都是因为有违规词...

    超级大屏幕V1.0.8全开源解密版

    超级大屏幕 查看更多关于 超级大屏幕 的文章 具有开幕墙、闭幕墙、消息墙、抽奖、签到、嘉宾展示、抢红包功能,利用开幕墙对整个活动的展示介绍、也适合活动进行中的间歇时间、消息墙可以再等待和互动的时候,让员工...

    TP框架设置默认访问控制器和超级管理员

    配置TP框架的默认控制器和超级管理员

    PHP开发的订单系统

    系统开发环境:服务器:apache_2.0.55-win32-x86-no_ssl脚本语言:php-4.4.2-win32和php5.2ZendOptimizerv3.3.0数据库:mysql-4.0.16-win数据库配置文件:Inc_Config.PHP请根据您的配置设置数据库。数据库文件:db/...

    PHP高性能组合框架(C扩展)

    5、代码模块分离,并加入自己写的模块、类库、配置加载类。 6、加入自己的日志记录类 Logger::get_instance("log_name"): 7、加入redis的通用实例化加载方法 Loader::redis("default"); 8、替换 PHP 5 到 PHP 7 ...

    [推荐]php集成环境绿色版

    本程序按服务器标准优化配置,可直接部署服务器及PHP开发环境。(推荐不更改“目的地文件夹”,直接安装。)支持winxp、win2003、win2008、win 7等操作系统。 一、PHP集成环境介绍 PHP 5.2.17 Apache 2.2.21 ...

    彩色超级列表框 日志 已打包模块 一句话调用 1.1 有demo-易语言

    上一个帖子少了源码, 补...第一个参数 是设置 父窗口 , 第二个参数 是设置超级列表框 , 第三个参数 是设置监控列的索引 , 第四个参数是预设置颜色值(这样在输出日志的时候就不用加颜色了) 模块源码和demo源码 均已打包

    PHP招聘程序源代码版|[BBWPS] V3.0.rar

    14、支持模块复制建立多个频道使用,支持为模块设置子域名访问; 15、支持与BBWPS系统大首页及其他应用模块进行数据通讯,可供应本模块数据给平台及其他模块,或从其他模块提取数据到本模块显示。 ---------------...

    PHP高性能4层框架SuperCI

    5、代码模块分离,并加入自己写的模块、类库、配置加载类。 6、加入自己的日志记录类 Logger::get_instance("log_name"): 7、加入redis的通用实例化加载方法 Loader::redis("default"); 8、替换 PHP 5 到 PHP 7 ...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata ...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata ...

    (全)传智播客PHP就业班视频完整课程

    9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata ...

    乐尚商城-PHP商城系统 v1.1.7.rar

    乐尚商城-PHP商城系统 v1.1.4,是一个PHP平台免费 开源专业商城系统,基于Web应用的B/S架构,模版与代码分离MVC架构,从功能层面来看,分为模块管理,可以将您发布的新闻或商品增加权限,通过积分等级形式访问,具有...

    superci框架(高性能PHP框架)

    最近在研究PHP的各种框架, 有yaf, ...4、代码模块分离,并加入自己写的模块、类库、配置加载类。 5、加入自己的日志记录类 6、替换 PHP 5 到 PHP 7 , 开启代码缓存opcache。 通过以上工作,整体服务性能提升10倍

    基于ThinkPHP5小区物业管理系统.zip

    3、修改application/database.php,根据自己数据库进行配置。 4、运行域名/public即可,用户名admin,密码123456(它这个配置的默认模块是admin,所以不指定模块也会访问到admin模块)。 物业管理系统功能模块说明 ...

    PHP源码 企业站 信息内容管理CMS

    6、后台各模块栏目管理中显示栏目ID号,方便调用。 7、修正了留言审核后可见。 8、修正了 Linux 环境下留言验证码无法显示的问题。 9、前、后台完全分开,更方便的重新命名后台目录名,不用作其它...

    史上最全传智播客PHP就业班视频课,8月份视频

    9-30 3 仿超级玛丽兄弟游戏制作 9-30 4 构造方法 对象的常用操作 9-30 5 面向对象的封装 继承 多态 9-30 6 面向对象的封装 继承 多态2 9-5 1.php xml编程①-xml基本介绍 xml元素 xml属性 9-5 2.php xml编程②-cdata ...

    【毕业设计】ThinkPHP5多小区物业管理系统源码PHP物业管理系统(多小区支持)(源码+SQL脚本).zip

    【毕业设计】ThinkPHP5多小区物业管理系统源码PHP物业管理系统(多小区支持)(源码+SQL脚本).zip 统计分析 以小区为单位,统计...系统配置 主要模块:系统基础配置、附件管理、个人信息配置、操作日志、定时任务。

    梦昂图文v10.2.21公众号小程序通用版(前端 独立PHP后台).rar

    新增【梦昂图文黑科版】,是一个独立的模块,在现有梦昂图文的基础上增加一些特殊的防封功能,适合那些做违规分享的朋友,如果您的文章内容不存在违规嫌疑,用【梦昂图文】这个模块即可。 【梦昂图文黑科版】特有...

    毕业设计,基于ThinkPHP+MySql+Bootstrap开发的在线校园论坛网站,内含PHP完整源代码,数据库脚本

    超级管理员有权限设置,可以处理用户。 登录系统:用户注册成功后通过登录界面进行登录验证,通过则可以进入后台。 帖子浏览:用户有权利去浏览所有帖子,除了家里权限以外。 帖子发表:用户进行登陆后,可以随时的...

Global site tag (gtag.js) - Google Analytics