Как использовать разные версии PHP? [дубликат]

У меня несколько виртуальных хостов, и мне нужно запускать разные версии PHP. У меня установлены php-fpm и FastCgi, но как их настроить? Я использую Ubuntu 16.04

1
задан 30 November 2018 в 12:37

2 ответа

С nginx все, что необходимо сделать, использовать сокеты через proxy_pass:

server{
    (...)
    location ~ ^/index\.php(/|$) {
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
}

С апачем необходимо использовать proxy:

<FilesMatch "\.php$">
     SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>

Таким образом, можно использовать различные сокеты (каждый для различной версии PHP) путем конфигурирования их в каждом Виртуальном Хосте

0
ответ дан 7 December 2019 в 15:10

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

Я нашел, что лучший подход должен иметь более новую php версию (php7 +) как основную, и если мне нужны что-то более старое или другая определенная версия, я использую контейнер с apache/php отсюда или использую это в качестве базового изображения и изменяю его по мере необходимости, это имеет большие инструкции сделать это.

В случае, что мне нужна более старая php версия (неподдерживаемый так быть осторожным), я могу просто создать из более старой версии ОС с поддержкой той конкретной версии.

Преимущества этого подхода, во-первых, что Вы не портите свою машину с большим количеством пакетов и зависимостей. Во-вторых, Вы не загрязняете свою установку php всеми зависимостями и пакетами, которые в конечном счете будут конфликтовать друг с другом из-за несовместимости версии. Наконец, и супер значительно, dockerizing приложения даст Вам воспроизводимый рецепт для Вашей продуктивной среды.

Даже если Вы не выбираете это в качестве своего подхода, смотрите на докера. Это сделает Ваш как более легкий, и это - "вещь", используемая в разработке в наше время.

1
ответ дан 7 December 2019 в 15:10

Другие вопросы по тегам:

Похожие вопросы: