Multi-PHP (5,4+7) Centos 7

У меня есть сервер VM разработки (Centos7+php5.4+apache2.4) и каждый пользователь в качестве его субдомена, разрабатывающего свой веб-сервис.

Большинство разработчиков обязаны писать код для версии 5.4 php, с mod_php по умолчанию, и у меня есть инструкции по переходу на PHP 7 (желательно 7.2), как можно скорее. Я исследовал и прочитал, что единственный вариант иметь две разные версии PHP, это то, что мне нужно установить одну из них с Fast-CGi (я не против сделать это на php7). Я обеспокоен тем, что когда возможно выбрать нужную версию php, это повлияет на разработку из-за различных сред (mod_php vs Fast-CGi)

До сих пор я мог устанавливать обе версии php + необходимые модули без каких-либо проблем. Возможно ли, что система распознает более новую версию php и заставит выбранного пользователя использовать эту версию?

Я попытался использовать процедуру с virtualmin и создать установочные пакеты PHP без успеха. VirtualMin устанавливает много дополнительных вещей, которые вызывают нестабильность в системе.

До сих пор я пробовал все эти процедуры:

https://www.webfoobar.com/node/45

https://www.centos.org/forums/viewtopic.php?f=47&t=62204

https://rpms.remirepo.net/wizard/ (успешная установка двух версий в одной системе)

Моя цель - выбрать, какую версию php должен работать каждый пользователь (в своем поддомене) без каких-либо конфликтов версий, временно поддерживая php 5.4 системы (EOL). Я читал, что это возможно с конфигурацией.htaccess с Add-обработчиком, но система не распознала php7

Любое руководство принято. Спасибо за чтение С наилучшими пожеланиями

3 ответа


Чтобы установить другие версии PHP, выполните следующие действия в centos 7


Настройка репозитория Yum Прежде всего, вам необходимо включить репозитории Remi и EPEL yum в вашей системе. Используйте следующую команду для установки репозитория EPEL в ваших системах CentOS и Red Hat 7/6.

Используйте эту команду для установки репозитория EPEL yum в вашей системе

 sudo yum install epel-release

и теперь выполните одну из следующих команд в соответствии с версией вашей операционной системы, чтобы установить репозиторий Remi.

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Установите PHP 7 в CentOS. Ваша система подготовлена ​​к установке PHP из репозиториев yum. Используйте одну из следующих команд для установки PHP 7.4 или PHP 7.3, PHP 7.2 или PHP 7.1 в вашей системе в зависимости от ваших требований.

Установить PHP 7.4

yum --enablerepo=remi-php74 install php

Установить PHP 7.3

yum --enablerepo=remi-php73 install php

Установить PHP 7.2

yum --enablerepo=remi-php72 install php

Установить PHP 7.1

yum --enablerepo=remi-php71 install php

В моей системе установлена ​​последняя версия PHP 7.4. Теперь выполняем следующую команду, чтобы проверить текущую активную версию PHP в моей системе.

php -v

.

PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Установка модулей PHP Вам также может потребоваться установить дополнительные модули PHP в зависимости от требований вашего приложения. Приведенная ниже команда установит еще несколько полезных модулей PHP.

Для PHP 7.4

yum --enablerepo=remi-php74 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

Для PHP 7.3

yum --enablerepo=remi-php73 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

Для PHP 7.2

yum --enablerepo=remi-php72 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

Для PHP 7.1

yum --enablerepo=remi-php71 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt

Моя цель - выбрать, какую версию php должен каждый пользователь

Вам нужно отказаться от использования mod_php и вместо этого использовать php-fpm, который можно установить для каждого поддомена.

Я рекомендую вам прочитать советы по настройке PHP, в которых объясняется, как запустить такую ​​конфигурацию.

Вы, конечно, можете использовать официальные SCL (rh-php72 или rh-php73) или те, что находятся в репозитории remi (с php56 по php80).

К вашему сведению, FPM теперь является конфигурацией по умолчанию в CentOS 8.

Примечание: SetHandler можно установить в файле.htaccess, но, вероятно, будет проще установить его в конфигурации vhost поддомена.

Centos 8 >> установить php 7.4

Чтобы установить и включить репозиторий EPEL в CentOS 8, выполните следующую команду dnf.

      dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Чтобы подтвердить наличие репозитория EPEL, выполните следующую команду rpm.

       rpm -qa | grep epel

Затем выполните приведенную ниже команду, чтобы добавить репозиторий Remi.

       dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Еще раз, чтобы убедиться в существовании репозитория Remi, выполните команду.

       rpm -qa | grep remi

Шаг 2: Установите PHP 7.4 на CentOS 8. После успешного добавления репозиториев EPEL и Remi выполните приведенную ниже команду, чтобы получить список доступных потоков модулей PHP.

       dnf module list php

Получение списка модулей PHP Из вывода выше видно, что remi-7.4 — это последний поток PHP, и поэтому мы собираемся включить поток модулей, как показано ниже.

      dnf module enable php:remi-7.4

Включить PHP Remi Stream После включения модуля PHP remi-7.4 вы можете продолжить и установить PHP с помощью приведенной ниже команды. Это также установит множество других пакетов, таких как модули Apache и Nginx.

       dnf install php php-cli php-common

#Установить PHP на CentOS 8 Чтобы проверить установленную версию PHP, запустите команду.

       php -v

Проверка установленной версии PHP Из вывода ясно видно, что мы установили PHP версии 7.4.

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