Изолирайте PHP версии на AWS EC2

Всъщност използвам PHP 5.3 във всичките си проекти. Но поради всички причини, които знаете, искам да актуализирам до PHP 5.4 (или 5.5).

Също така скоро ще мигрираме към AWS EC2, към „нормален“ Linux, например Debian Wheezy.

Но проблемът е, че имаме някои стари проекти, които не можем да мигрираме към PHP 5.3 по някакви причини, и не можем да ги премахнем по някои други причини.

Така че се чудех какъв би бил най-добрият начин да изолирам тези проекти в нашия екземпляр на AWS EC2, за да използвам множество версии на PHP/Apache.

Мислех да използвам Docker, за да можем лесно да инсталираме друг PHP/Apache, различен от основната система. Освен това знаейки, че това е вид виртуална машина, звучи добре, така че няма да има никакво въздействие върху главния "сървър".

Най-доброто решение ли е?

РЕДАКТИРАНЕ: Освен това не можем да си позволим друг екземпляр на EC2 поради някои причини, свързани с разходите


person Bonswouar    schedule 13.08.2014    source източник
comment
Защо да няма две инстанции? Разходи?   -  person georg    schedule 13.08.2014
comment
Точно, цена! ;) РЕДАКТИРАНЕ: Благодаря за въпроса, добавям го към оригиналната си публикация   -  person Bonswouar    schedule 13.08.2014
comment
Въпросът е твърде широк. За информацията, която давате, мога да кажа, че докерът трябва да свърши работа. Най-доброто решение ли е? Честно казано не знам.   -  person Regan    schedule 13.08.2014


Отговори (2)


Не споменахте операционната система, но ако приемем, че тя е базирана на Linux, най-доброто решение би било да създадете множество апликативни потребители и да инсталирате различни версии на php чрез компилиране в домашната директория на потребителя на съответното приложение.

Например създайте потребители user1 (домашна директория:/home/user1/) и user2 (домашна директория:/home/user2/). Сега превключете към user1 и инсталирайте php5.3 и apache чрез компилации съответно по пътя /home/user1/app/php и /home/user1/app/apache. Направете същото за user2, но този път с друга версия на php. Не забравяйте, че apache трябва да работи на различни портове, за да избегнете конфликти на портове. Можете да инсталирате трети apache като обратен прокси с множество vhosts, които ще приемат трафик на порт 80 и ще го изпращат до различни backend apache въз основа на заявка.

Трафикът ще бъде такъв

client http request <--> apache rp <--->  app1 based on apache1 or app2 based on apache2

за разбирането

Раджарши Халдар

person Rajarshi Haldar    schedule 13.08.2014
comment
Мислех за това решение, но не би ли било по-лесно и по-безопасно да инсталирам този стар PHP/Apache в Docker? Както каза @Regan, честно казано не знам. Все пак благодаря за отговора! - person Bonswouar; 13.08.2014
comment
Не съм работил с Docker, но в цялата ни работна среда използвахме различни апликативни потребители, за да отделим различни версии на приложения. също използването на rp предоставя допълнителни функции като балансиране на натоварването/кеширане и т.н. - person Rajarshi Haldar; 13.08.2014

Защо не използвате php-fpm и не инсталирате два от тях? След това можете да решите кой да използвате с кой vhost. Така че всеки vhost може да има своя собствена php версия. И в този случай имате само 1 работещ apache сървър.

Трябва да е доста лесно да намерите урок в Google за това.

person Eric D.    schedule 15.08.2014