`
viproc
  • 浏览: 46347 次
  • 性别: 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超级配置模块的定制版本.
#

 

分享到:
评论

相关推荐

    PHP开发典型模块大全(修订版).pdf

    根据提供的文件标题“PHP开发典型模块大全(修订版).pdf”以及描述中的同名信息,我们可以推断出这份文档主要涵盖了PHP开发中的各种典型模块及其应用。PHP是一种广泛使用的开源服务器端脚本语言,特别适合于Web开发并...

    php开发典型模块大全-02-PHP基础

    "PHP开发典型模块大全-02-PHP基础"这一主题涵盖了PHP开发中的核心概念和常用技术,旨在为初学者和有经验的开发者提供一个全面的PHP基础知识框架。下面将详细阐述其中包含的知识点。 1. **PHP简介**:PHP(Hypertext...

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

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

    php环境配置.doc

    3. 配置Apache以支持PHP,这通常涉及到编辑httpd.conf文件,添加PHP模块加载语句(如`LoadModule php5_module "path/to/php5/php5apache2_2.dll"`)。 4. 更新`AddType`指令,使Apache识别.php文件为PHP脚本(如`...

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

    根据给定文件的信息,我们可以详细地探讨一下ThinkPHP(以下简称TP)框架中如何配置默认控制器以及如何设置超级管理员。这两个概念对于理解TP框架的基本工作原理至关重要,并且在实际开发过程中非常实用。 ### 配置...

    PHP佳蓝超级同学录

    "PHP佳蓝超级同学录"是一个基于PHP编程语言开发的在线同学录系统,旨在帮助校友们维护联系,分享回忆,并促进彼此之间的交流。这个系统可能包含用户管理、班级管理、消息发布、相册功能以及互动模块等核心组成部分,...

    超级无敌php网站系统源码

    然而,实际使用前,用户还需要了解PHP编程基础,以及如何配置服务器环境,如安装MySQL数据库、设置Apache或Nginx等。同时,理解并修改源代码以满足特定需求,也是使用源码建站时不可忽视的一部分。

    PHP实例开发源码—天羽超级外链工具 php版.zip

    【标题】"PHP实例开发源码—天羽超级外链工具 php版.zip" 提供的是一份基于PHP语言实现的天羽超级外链工具的源代码。这个工具可能用于帮助网站管理员管理和优化他们的外部链接策略,提升网站在搜索引擎中的排名和...

    HTML数据加载到超级列表框中模块源码

    为了深入了解并使用这个模块,你需要打开这个文件查看具体内容,包括如何初始化、调用方法以及如何配置HTML数据等。 总的来说,HTML数据加载到超级列表框是一项涉及数据获取、解析、格式化和展示的技术,通过灵活...

    《转》Apache+php+mysql在windows下的安装与配置图解(2)

    - `PHPIniDir "D:/php"`:设置 PHP 配置文件 `php.ini` 的路径。 - `AddType application/x-httpd-php .php` 和 `AddType application/x-httpd-php .html`:指定 `.php` 和 `.html` 文件类型由 PHP 处理。 - 这些...

    价值365 discuz 超级活动插件

    【标题】"价值365 discuz 超级活动插件"指的是Discuz!论坛系统的一款付费插件,这款插件通常具有丰富的功能,旨在提升论坛的互动性和活跃度,可能包括各种线上活动、竞赛或者优惠促销等功能。Discuz!是一款广泛应用...

    PHP5安装配置详解.pdf

    ### PHP5安装配置详解 #### 一、MySQL 5.0 for Windows 安装 **1.1 MySQL 安装概述** MySQL 5.0 for Windows 的安装过程相对简单但需注意几个要点来确保顺利安装及高效运行。推荐在独立的 NTFS 分区上进行安装以...

    PHP模块登录

    在PHP编程领域,模块登录是构建网站用户管理系统的关键部分。这个"PHP模块登录"源代码提供了初学者一个学习和理解用户认证系统实现的基础。在这个源码中,我们可能会看到以下几个核心知识点: 1. **基本PHP语法**:...

    ECSHOP商家入驻插件5.0超级至尊版

    sellers.php用于处理商家的注册、认证及信息更新,store_street.php可能创建了一个类似实体商业街的虚拟展示环境,增强用户体验,seller_store.php则是商家自定义店铺的设置和个性化模块。 特别说明.txt文件通常会...

    php,apache和mysql独立安装的配置(史上最详细教程).docx

    - **加载 PHP 模块:** 添加或取消注释 `LoadModule php5_module "C:/php5/php5apache2_2.dll"` 行。 - **设置 PHP 处理器:** 添加或取消注释 `AddType application/x-httpd-php .php` 行。 - **指定 PHP 脚本处理...

    dede 超级标签 织梦

    标题中的“dede 超级标签 织梦”指的是织梦内容管理系统(DedeCms)中的一个功能模块——超级标签系统。织梦CMS是一款基于PHP+MySQL开发的开源内容管理框架,广泛应用于个人网站、企业官网以及各类门户站点的建设。...

    php+mysql简单简洁留言板

    在网页开发中,留言板功能是常见且实用的交互模块,它允许用户发表评论、提出建议或者进行交流。本项目以“php+mysql简单简洁留言板”为主题,旨在实现一个功能完备且界面简洁的在线交流平台。该项目采用了流行的PHP...

Global site tag (gtag.js) - Google Analytics