Назад | Перейти на главную страницу

Запуск нескольких версий PHP под Apache, но требующих модулей из файла .deb

У меня есть установка, в которой я, к сожалению, достиг предела версии между пакетом библиотеки, необходимым для приложения, и моей версией PHP.

Сейчас я использую PHP 5.4, но модуль совместим только с 5.3, что оставляет меня в затруднительном положении.

Я знаю, что могу запускать несколько версий PHP с помощью fcgi, но можно ли запускать их отдельно с разными модулями, и если да, то как мне реализовать модуль (модуль упакован как файл .deb с определенными зависимостями) ?

Чтобы разместить несколько версий PHP на одной платформе, вам необходимо внести изменения в свой файл конфигурации, создать файл (или файл спецификации для rpm), чтобы двоичные файлы и файлы поддержки имели такие имена, как php53 (.ini) и php54 (.ini), / usr / lib64 / php54 / modules, яда, яда, яда. Изменение параметров конфигурации важно, чтобы он знал, где искать собственные модули, ini и т. Д. Установка одной версии и изменение имен файлов не изменит скомпилированные во внутренних настройках. (Вы можете компилировать модули в двоичный файл, но я не рекомендую это делать.)

Вы можете установить версию по умолчанию, создав ссылку с php на версию по вашему выбору.

Что касается Apache, вы можете попробовать следующее:

FcgidWrapper "/usr/bin/php-cgi53 -c /etc/httpd/conf/php53.ini" .php

или

FcgidWrapper "/usr/bin/php-cgi54 -c /etc/httpd/conf/php54.ini" .php5

Надеюсь, это тебе поможет.

Да, это возможно. Все, что вам нужно, это использовать один php как модуль для apache, а другой как cgi. У каждого из php может быть собственный php.ini с уникальным списком модулей для загрузки.

Например, я использую php-5.3.27 как модуль apache и php-5.2.17 как cgi, поскольку одно из наших приложений требует 5.2.x и не работает с 5.3.x

для php-5.2

Loaded Configuration File   /usr/local/php-5.2.17/lib/php.ini 

для php-5.3

Loaded Configuration File   /etc/php.ini

Вы можете указать путь для поиска php.ini в параметре конфигурации с помощью

--with-config-file-path