有什么办法,我可以在同一台服务器上安装PHP 4和5,同时保持两个相同的“.php”扩展名,使得它只有一个特定的文件夹(+子文件夹)在php4下运行的服务器?
我有CentOS 5.5 x64与whm / cpanel,所以我可以安装EasyApache,这部分是不是一个问题。
我想要这个的理由是保持一个旧的脚本工作; 它用Zend编码并升级到PHP 5.3.x打破它,它将只能在5.2(或4.x),因为它需要重新编码,如果我要运行在5.3(不是一个选项)。 解码它也没有工作得很好,所以我认为php4 / 5的方法将是一个工作的解决scheme,如果我可以限制4到一个文件夹,而不必改变扩展名(显然脚本将失败与“.php4”,因为硬编码的path和文件名)。
我目前的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>
根据Apache的文档 ,AddHandler / AddType可以用在目录上下文中,这意味着你应该能够在Apacheconfiguration中简单地执行如下的操作:
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(检查您的现有configuration)。 如果你已经有php4和5的设置,那么你只需要input。