php4 和 php5 一起使用,扩展名相同,将 4 限制在一个文件夹中

php4 和 php5 一起使用,扩展名相同,将 4 限制在一个文件夹中

有什么办法可以让我在同一台服务器上安装 php 4 和 5,同时为两者保留相同的“.php”扩展名,并使得服务器中只有特定文件夹(+子文件夹)在 php4 下运行?

我有带有 whm/cpanel 的 CentOS 5.5 x64,因此我可以使用 EasyApache 安装它们,这部分不是问题。

我想要这样做的原因是让一个旧脚本继续工作;它是用 Zend 编码的,升级到 php 5.3.x 会破坏它,它只能在 5.2(或 4.x)上运行,因为如果我要在 5.3 上运行它,它需要重新编码(没有选择)。解码它也不太好,所以我认为 php4/5 方法将是一个可行的解决方案,如果我可以将 4 限制在一个文件夹中,而不必更改扩展名(显然,由于硬编码的路径和文件名,脚本会因“.php4”而失败)。

我当前的 php.conf,由 SuPHP 处理

# SuPHP configuration for PHP5
LoadModule suphp_module modules/mod_suphp.so
suPHP_Engine on
AddType application/x-httpd-php5 .php5 .php .php3 .php2 .phtml
<Directory />
    suPHP_AddHandler application/x-httpd-php5
</Directory>

# SuPHP configuration for PHP4
AddType application/x-httpd-php4 .php4
<Directory />
    suPHP_AddHandler application/x-httpd-php4
</Directory>

答案1

根据Apache 文档,AddHandler/AddType 可以在目录上下文中使用,这意味着您应该能够在 Apache 配置中简单地执行以下操作:

LoadModule php5_module modules/libphp5.so
LoadModule php4_module modules/libphp4.so

AddHandler php5-script .php
AddType    text/html .php

<Directory /home/somedir>
     AddHandler x-httpd-php4 .php
</Directory>

请注意,根据您的安装,php4/5 的设置行可能会略有不同(请检查您现有的配置)。如果您已经安装了 php4 和 5,那么您只需要输入。

相关内容