Несколько libphp5.so в один Apache

lealhost
На сайте с 07.06.2014
Offline
136
889

Задача: Смена версии PHP в режиме модуля Apache для отдельных виртуалхостов.

Какие способы есть внедрения однотипных модулей аля libphp5.so в Apache?

Можно создавать профили Apache (http://wiki.apache.org/httpd/RunningMultipleApacheInstances), но в этом случае и портов понадобится очень много и с точки зрения кодинга это сложновато, а самая главная проблема как раз в самих инстансах - тогда лимиты префорка будут на каждый инстанс, а не на все сайты пользователя сразу.

Пробовал также немного подправить исходники php, менять название модуля с php5_module на php55_module, например, и с application/x-httpd-php на application/x-httpd-php55 и аналогично для версии 5.6. Результат: модули подключаются по отдельности и работают нормально, а также подключаются вместе (при этом apache не выдает ошибки на самом этапе подключения), но падает с segfault:


[core:notice] [pid 5876] AH00052: child pid 5879 exit signal Segmentation fault (11)

Возможно, есть другие способы о которых я не знаю? :)

Andreyka
На сайте с 19.02.2005
Offline
822
#1

Никаких

Пользуйтесь cgi/fastcgi

Не стоит плодить сущности без необходимости
iHead
На сайте с 25.04.2008
Offline
137
#2

куча апачей со своим PHP.

Рекомендуемый хостинг партнер 1С-Битрикс (https://www.ihead.ru/bitrix/), PHP-хостинг (https://www.ihead.ru/php/), доверенный партнер RU-CENTER (https://www.ihead.ru/news/573.html), официальный представитель REG.RU в Кирове (https://www.ihead.ru/news/851.html)
lealhost
На сайте с 07.06.2014
Offline
136
#3
iHead:
куча апачей со своим PHP.

Ну, это аналог инстансов о котором я писал в первом посте.

Что ж, похоже ничего не остается кроме как писать сложный скрипт, который это будет автоматизировать. Очень надеялся что как-то можно выкрутиться без костылей.

Никаких
Пользуйтесь cgi/fastcgi

Уж больно люблю производительность голого префорка с модулем php.

Спасибо за ответы.

pupseg
На сайте с 14.05.2010
Offline
364
#4

куча апачей.

уж лучше тогда fpm-воркеров кучу стартовать разных версий и ProxyPass'ить апачем на их сокеты.

предположим загрузите, как будете отличать, какой из *.php клиентов на какой пхп отправить?

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
SI
На сайте с 03.12.2007
Offline
130
#5
lealhost:
Пробовал также немного подправить исходники php, менять название модуля с php5_module на php55_module, например, и с application/x-httpd-php на application/x-httpd-php55 и аналогично для версии 5.6. Результат: модули подключаются по отдельности и работают нормально, а также подключаются вместе (при этом apache не выдает ошибки на самом этапе подключения), но падает с segfault:

Динамически загружаемые расширения в php.ini нужно отключить.

;zend_extension = opcache.so

;extension = openssl.so

; итд...

Тогда может заработать.

-= Онлайн сервисы =-
lealhost
На сайте с 07.06.2014
Offline
136
#6
pupseg:
куча апачей.
уж лучше тогда fpm-воркеров кучу стартовать разных версий и ProxyPass'ить апачем на их сокеты.

Такое уже есть. :)

pupseg:
предположим загрузите, как будете отличать, какой из *.php клиентов на какой пхп отправить?

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

Вот другой вопрос, а как система отнесется, например, к 1000 процессам httpd? :)

Динамически загружаемые расширения в php.ini нужно отключить.

Проверю сегодня.

pupseg
На сайте с 14.05.2010
Offline
364
#7
lealhost:
Вот другой вопрос, а как система отнесется, например, к 1000 процессам httpd?

нормально отнесется, а что такого ? лиж бы памяти хватило.

у меня есть серверы с 2000+ процессов. не вижу в этом никаких проблем, если аппаратная составляющая позволяет.

Единственный нюанс - сразу отсеиваются кандидаты в админы, не знакомые с grep, awk, sed и т д. ps aux видите ли, при таком объеме , трудно визуально обрабатывать. администраторы IOS (цисковской, а не яблочной ОС) меня поймут, когда в конфиге 10 000 строк.

sh run займет пару минут....

lealhost
На сайте с 07.06.2014
Offline
136
#8
Sigmo#ID:
Динамически загружаемые расширения в php.ini нужно отключить.
;zend_extension = opcache.so
;extension = openssl.so
; итд...

Тогда может заработать.

Проверил, к сожалению не работает.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий