LINUX.ORG.RU
решено ФорумAdmin

Apache с двумя версиями PHP

 ,


1

1

Debian Wheezy Для сайта нужная старая версия php5.3 Собираю php из исходников, устанавливаю в отдельный каталог. Как подключить php5.3 к apache 2.4? Находил инструкции в интернете, но они достаточно старые и не получилось по ним завести конфигурацию. Подскажите как сделать или какой-нибудь готовый How-To.

Debian Wheezy Для сайта нужная старая версия php5.3 Собираю php из исходников

Вся суть дебиана, а потом они смеются над гентой на сервере.

TDrive ★★★★★
()
Ответ на: комментарий от Centrin0

с FastCGI и апач уже не нужен, nginx достаточно.

TDrive ★★★★★
()

«Быстрее и проще всего подключить через» (©) Docker.

Что-то, типа (конкретно образ поискать под задачу, под уровень поддержки, версию и т.п.)

docker run -d -p 9000 jprjr/php-fpm


И готово, PHP-FPM, висящий на 9000-м порту.

KRoN73 ★★★★★
()
Последнее исправление: KRoN73 (всего исправлений: 1)

У меня на сервере вот так работает: 1) Надо удалить mod-php или выключить его 2) Включи модуль fastcgi (a2enmod fastcgi) и перезагружай апач 3) Создаем файл /home/operate/www/fastcgi/wrapper.sh и пишем в него тупо три строки

# !/bin/sh
exec /usr/bin/php5.4-php-cgi -C #обрабатывать все будет php-cgi от php 5.4

4) Создаем конфиг Это файл /etc/apache2/conf-enabled/fastcgi.conf

Alias /fastcgi /home/operate/www/fastcgi #просто алиас для пути, чтобы не писать длинный путь далее
        <Ifmodule mod_fastcgi.c>
                FastCgiServer /home/operate/www/fastcgi/wrapper.sh -flush -idle-timeout 360 -processes 3 -restart-delay 1 -init-start-delay 1 -pass-header HTTP_AUTHORIZATION #запускает сервер cgi
                <Location /fastcgi/wrapper.sh> #указываем права доступа
                        Options +ExecCGI #обязательно нужно
                        SetHandler fastcgi-script #указывает апачу, что надо обрабатывать это как fastcgi-script
                        Require all granted #всем разрешаем!
                </Location>
                AddHandler php-fastcgi .php # Говорим, что надо .php тоже считать fastcgi скриптом и пропустить через wrapper.sh
                Action php-fastcgi /fastcgi/wrapper.sh
        </IfModule>


5) Включить mod_actions (кажись так или просто mod_action) 6) Далее во всех виртуальных хостах, где указаны директивы <Directory> надо писать Options +ExecCGI

P1ratRuleZZZ
()
Ответ на: комментарий от vel

php-fpm на разных портах - наше все!

А разве быстродействие не просядет по сравнению с соединением через сокет?

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

сокет или порт - большой разницы нет. Все упрется в скорость отдачи клиенту.

vel ★★★★★
()
Ответ на: комментарий от vel

У нас так на работе вообще mod-php юзают до сих пор. Что за мнение такое тупое, мол php-fpm - круто, а остальное дерьмо? Я ставил и fpm, с ним даже проще, но ведь вертится все уже пару лет на этом самом cgi и нормально. Я из тех людей, кто не бросается обновлять систему с версии 0.002 до версии 0.003 только потому, что она новая. Старое порой работает гораздо стабильней, чем какая-то новая выдумка

P1ratRuleZZZ
()
Ответ на: комментарий от P1ratRuleZZZ

Если тебе хватает производительности в варианте php-cgi, так и пользуй этот вариант.

с mod_php варианта с несколькими версиями нет.

Интересно, что же за мутант такой, что ему именно 5.3 нужен. Не проще ли мутанта подправить чем разводить зоопарк с php ? Список несовместимых изменений между 5.3 и 5.4 ничтожный.

С обновлениями этого зоопарка точно будет не просто.

vel ★★★★★
()
Ответ на: комментарий от P1ratRuleZZZ

Плюсую. Если работает и неприятностей не доставляет и планируется, что и не доставит - нефиг обновлять только ради обновить.

turtle_bazon ★★★★★
()

Вообще реально самый безгеморройный метод - это fastcgi + nginx. Собираешь php как fastcgi (обрати внимание на нужные фишки вроде md, curl и прочее если они нужны). Конфигуришь нужный сокет или порт и все.

Апач тоже можно прикрутить, но тут не подскажу

Или совсем упоротый метод, разворачиваешь контейнер с squeeze (или еще чем-то с нужной версией) и проксируешь запросы на него

invokercd ★★★★
()
Ответ на: комментарий от invokercd

Кто-то вроде lxc любит больше чем docker :D

Задачи разные :) Раньше у меня было больше задач под LXC и идеологию работы с Docker не сразу расчухал. Сейчас и задачи под Docker появились, и как им пользоваться стал понимать. Но на реальных проектах LXC используется много активнее.

KRoN73 ★★★★★
()
Ответ на: комментарий от vel

А вот это плюсану: реально гораздо проще поправить пару мест в коде PHP (с Drupal 7 это сработало, а потом вышел патч). Ну, видимо, человек просто не хочет знать PHP или код настолько кривой, что лучше его не трогать

P1ratRuleZZZ
()
Ответ на: комментарий от vel

Легко, какая-нибудь проприетарная cms с сотней тысяч строк (говно?)кода. Не думаю что есть здоровые люди, которые забесплатно будут править это.

invokercd ★★★★
()

Не знаю, как там именно в Apache 2.4 устроено, а под 2.2 я бы сделал следующим образом.

Собираешь CGI версию какого хочешь PHP. Устанавливаешь libapache2-mod-suphp. Открываешь /etc/suphp/suphp.conf, прописываешь там хэндлеры по количеству версий PHP по разными MIME типами

[handlers]
application/x-httpd-suphp="php:/usr/bin/php-cgi"
application/x-httpd-suphp53="php:/usr/local/php-5.3/php-cgi"

В /etc/apache2/mods-enabled/suphp.conf или внутри <VirtualHost> конкретного сайта добавляешь

<IfModule mod_suphp.c>
	suPHP_Engine on
	suPHP_AddHandler application/x-httpd-suphp53
	<FilesMatch "\.php$">
		SetHandler application/x-httpd-suphp53
	</FilesMatch>
</IfModule>

Но вообще лучше не пытаться отстрочить неизбежное и всё-таки допилить код до совместимости хотя бы с PHP 5.4.

frozen_twilight ★★
()
Последнее исправление: frozen_twilight (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Ну это только на довольно больших нагрузках будет заметно. Плюс php-fpm может быть на отдельном хосте.

turtle_bazon ★★★★★
()
Ответ на: комментарий от vel

с mod_php варианта с несколькими версиями нет.

есть, сам лично видел. апач запускается с другим конфигом, на другом порту, и с вручную собранным mod_php нужной версии. а затем уже nginx на фронтенде проксирует запросы к нужному из двух апачей.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

Это второй веб-сервер. В одном апаче более одного mod_php не загрузить.

vel ★★★★★
()
Ответ на: комментарий от vel

Список несовместимых изменений между 5.3 и 5.4 ничтожный.

А вот нихрена, там кучу синтаксиса подеприкейтили и функций

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

Отключаем в логах е_депрекатед и живем спокойно :)

Чтоб окончательно что-то сломалось при переходе с 5.3 на 5.4 - это должно быть люто древнее пхп. Те, кто об этом не позаботилися ранее ССЗБ.

Переход с 5.2 на 5.3 был более веселый.

vel ★★★★★
()
15 марта 2016 г.

Ох тем же занят, надо на свежий debian 8 перетащить сайты, что сейчас работают на 5.2 и их вагон... переписать не вариант

но должны работать и современные сайты и CMS (по дефолту там 5.6)

apache 2.4 больше не дружит с mod_fcgi

древнюю версию собрал с помощью phpfarm но пока не нашёл как её запустить совместно со свежим апачем

все варианты описаны для fcgi ( вот как пример _http://ittricks.ru/administrirovanie/linux/791 ) но как быть с 2.4

ilovemicrosoft
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.