Как переключаться между версиями PHP с помощью .htaccess?

Итак, у меня есть базовый VPS под управлением CentOS 7, Apache 2.4 и различных версий PHP-CGI с PHP-FPM.

Я мог использовать разные версии PHP одновременно, используя несколько серверов PHP-FPM, работающих на разных сокетах, и обрабатывать запросы определенного сервера с помощью директивы ProxyPassMatch mod_proxy. Это позволяет мне использовать определенную версию PHP для одного виртуального хоста и другую версию PHP для другого виртуального хоста с одной установкой Apache. Основным недостатком этого является то, что я могу указывать только определенные версии PHP, изменяя файлы конфигурации сервера или файлы виртуального хоста; не как обычный пользователь через .htaccess.

Все общие хостинговые компании с cPanel (HostGator, Bluehost, Inmotion и т. Д.) Позволяют вам изменять версию PHP в определенном каталоге с помощью .htaccess AddHandlers. Как я могу сделать это на собственном сервере? Это эксклюзивная функция cPanel?

Они используют следующие обработчики:

AddHandler application/x-httpd-php52 .php
AddHandler application/x-httpd-php53 .php
AddHandler application/x-httpd-php54 .php

После небольшого исследования я считаю, что на самом деле это пользовательские типы MIME, которые используются в качестве обработчиков. Очевидно, что эти типы MIME не являются частью стандартной установки Apache.

Прежде всего, я не совсем уверен, что такое MIME-тип. Я полагаю, это похоже на обработчик. Что еще более важно: как я могу создать такие типы MIME, которые направляют трафик в конкретный двоичный файл PHP и отправляют выходные данные в Apache для обслуживания клиентов?

Кто-нибудь знает, как это сделать? Я не нашел никакой информации в Интернете.

Заранее спасибо.


person Nolan    schedule 24.06.2016    source источник
comment
Они просто используют PHP как CGI для запуска различных версий PHP и регистрации обработчиков для каждой версии. Основное объяснение того, как это сделать, можно найти здесь: linode.com/docs/websites/apache/ AddHandler и Action - основные директивы, участвующие в настройке.   -  person drew010    schedule 24.06.2016