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.