Могу ли я установить 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 был бы рабочим решением, если бы я мог ограничить 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>
Согласно Документация 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, вам просто понадобится запись.