Как установить несколько версий php на redhat

У нас есть устаревшее веб-приложение под управлением php 5.4.10 и другое приложение под управлением последней версии php ver 7.1

Мы хотели бы разместить оба этих приложения с помощью apache на одном экземпляре сервера redhat 7.3.

Вот виртуальные хосты, настроенные для каждого веб-приложения:


     DocumentRoot /var/www/app1.local.com/public_html
     ServerName www.app1.local.com
     ServerAlias app1.local.com
     ErrorLog /etc/var/www/app1.local.com/error.log
     CustomLog /var/www/app1.local.com/requests.log



     DocumentRoot /var/www/app2.local.com/public_html
     ServerName www.app2.local.com
     ServerAlias app2.local.com
     ErrorLog /etc/var/www/app2.local.com/error.log
     CustomLog /var/www/app2.local.com/requests.log

Согласно этому руководству: https://webtatic.com/packages/php71/ Я знаю, что могу использовать "sudo yum install php71w php71w-mysql" для установки последней версии php и заставить работать приложение 2, но как я могу установить php ver 5.4.10 и настроить приложение 1 на использование php версии 5.4.10? Каковы шаги?

Простите, если вопрос покажется глупым, я более или менее новичок в linux. Я не смог найти надежный и актуальный учебник, объясняющий, как это сделать.

0
15.04.2017, 02:34
2 ответа

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

sudo docker run --name=myphp5 -p 8080:80  -v /var/www/html/:/var/www/html -d eboraas/apache-php

. Это загрузит образ докера eboraas / apache-php и запустит контейнер докера с именем «myphp5» с установленным в нем apache / php5. Переключатель -v смонтирует ваш локальный каталог / var / www / html в контейнер / var / www / html и откроет apache на порту 8080 (поэтому он не конфликтует с вашим локальным apache, работающим на 80).

Вы можете остановить контейнер, запустив

sudo docker stop myphp5

Точно так же вы можете запустить его, запустив

sudo docker start myphp5

Чтобы проверить состояние всех ваших контейнеров, вы можете запустить

docker ps -a

Обратите внимание, что есть другие изображения с apache / php5 на dockerhub, который вы можете использовать для этой цели - https: //hub.docker.com / search /? isAutomated = 0 & isOfficial = 0 & page = 1 & pullCount = 0 & q = php5 & starCount = 0

Единственным ограничением этого подхода является то, что каждый контейнер докеров должен открывать http на другом порту, чтобы они не работали на 80. Однако это можно решить, используя локальный apache (тот, который прослушивает порт 80) в качестве обратного прокси для apache на основе докеров.

1
28.01.2020, 02:46

Коллекции программного обеспечения идеально подходят для этого. Официальное описание гласит:

Коллекции программного обеспечения позволяют одновременно устанавливать несколько версий одних и тех же программных компонентов в вашей системе. Пакеты, созданные с использованием коллекций программного обеспечения, не перезаписывают версии, включенные в Red Hat Enterprise Linux.

Текущая версия, RHSCL 2.3, предоставляет пакеты с PHP 5.6 и 7.0. См. Главу Установка примечаний к выпуску RHSCL, чтобы узнать, как получить доступ к репозиториям RHSCL и установить пакеты.

См. Apache с различными версиями PHP с использованием SCL в блоге разработчиков RH для получения инструкций по использованию различных установленных версий SCL PHP с одним сервером Apache. (Обратите внимание, что инструкции предполагают использование RHEL6, но тот же метод работает и с RHEL7 - просто пропустите совет по установке.)

0
28.01.2020, 02:46

Теги

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