На моем локальном сервере тестирования я использую PHP 5.4. Однако на реальном хостинге я ограничен PHP 5.3, и его необходимо указать в .htaccess (в противном случае он по умолчанию равен 5.2).
Поэтому я могу добавить:
# Use PHP 5.3 Action application/x-hg-php53 /cgi-sys/php53 AddHandler application/x-hg-php53 .php
который отлично работает на хосте, но ломает локальный сервер тестирования.
Можно ли использовать что-то вроде mod_rewrite, чтобы условно указать версию PHP на основе домена? Или есть лучший способ? Файл .htaccess отслеживается (git), и я хотел бы сохранить его таким образом, если это возможно.
Я думаю, что здесь задается один и тот же вопрос, но у меня нет внедренного метода динамического развертывания (кроме простого простого bash во время git push / pull).
Нет никакого способа сделать это динамически, используя mod_rewrite.
Вы можете попытаться указать свое Action
на нейтральную php-обертку, которая может определить, нужно ли ей запускать cgi-sys/php53
или версию PHP 5.4. Что-то вроде:
Action php-cgi /cgi-sys/php-wrapper.cgi AddHandler php-cgi .php
Затем в файле cgi-sys/php-wrapper.cgi
, например:
#!/bin/sh # check if this is the php 5.3 environment if [ -x "/path/to/cgi-sys/php53" ]; then # execute php 5.3 export PHPRC=/path/to/php5.3/rc exec /path/to/cgi-sys/php53 else # else, run php 5.4 export PHPRC=/path/to/php5.4/rc exec /path/to/cgi-sys/php54 fi