Серый Хомячок

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Несколько php на один сервер Apache.

E-mail Печать

Почему? Обновил Ubuntu до 16.04 и не взлетели старые вебы, которые не понимают php7, специально для них скомпилировал php5, в принципе все просто: нужно сделать директорию, туда скачать нужные исходники и скомпилировать:

mkdir /zzz
cd /zzz
wget -O php-5.6.16.tar.bz2 http://php.net/get/php-5.6.16.tar.bz2/from/this/mirror
tar -xvf php-5.6.16.tar.bz2
cd php-5.6.16

 Дальше нужно задать конфигурацию:

 ./configure \
--enable-pdo \
--with-pdo-mysql \
--with-mysql \
--enable-mbstring \
--with-curl \
--with-gd \
--with-mcrypt \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-xpm-dir \
--with-zlib-dir

Хотел бы обратить особое внимание, нужно подключать только те опции, которые необходимы, чем больше - тем больше библиотек не найдет, факт, что будут ошибки. Итак, смотрим вывод, там будет чего не хватает в системе. Ищем в каком пакете есть отсутствующий файл и ставим, например не хватает mcrypt.h:

apt-file search mcrypt.h
libmcrypt-dev: /usr/include/mcrypt.h
libmcrypt-dev: /usr/include/mutils/mcrypt.h
libtomcrypt-dev: /usr/include/tomcrypt.h
php-doc: /usr/share/doc/php-doc/html/book.mcrypt.html
php-doc: /usr/share/doc/php-doc/html/intro.mcrypt.html
php-doc: /usr/share/doc/php-doc/html/ref.mcrypt.html

Нашлось шесть пакетов с нужным заголовочным файлом, не мудрствуюя ставим первый же пакет:

apt-get install libmcrypt-dev

И по новой запускаем конфигурацию, пока не избавимся от ошибок. Как только нас поздравят с выбором php запускаем следующую команду:

make

Убеждаемся, что в выоде нет ошибок, если есть, то исправляем и делаем следующий пункт:

make install

По окончании процесса в директории /usr/local/bin/ образуется файл php-cgi, берем его и копируем в /usr/lib/cgi-bin/:

cp /usr/local/bin/php-cgi /usr/lib/cgi-bin/php-cgi

Старый конфиг можно было сохранить при обновлении, я так и сделал, можно вынуть из бекапа сервера, и теперь его нужно подсунуть по адресу /usr/local/lib/ На этом и закончили с php. Осталось чутка покурочить краснокожего: нужно подключить модули actions и serve-cgi-bin:

a2enmod actions
a2enconf serve-cgi-bin
service apache2 restart

И последнее, которое вызвало основную головную боль и заняло время, нужно заставить нужный виртуалхост работать с  cgi-bin, а не с модулем php. Нужно в конфигурацию хоста вставить следующие строки:

<FilesMatch \.php$>
    SetHandler application/x-httpd-php5
</FilesMatch>
AddHandler application/x-httpd-php5 .php
Action application/x-httpd-php5 /cgi-bin/php-cgi

Подсказку нашел здесь, без нее фигушки у меня что нибудь получилось бы, ибо я совсем нуб во всяких таких делах. На этом всё, еще раз перезапускаем Апача, проверям работоспособность, если что правим конфиги и в награду берем пирожок!


back_to_top02

Обновлено 23.01.2017 18:21  

Баннер
Баннер
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
Сейчас 90 гостей онлайн
Просмотры материалов : 1351531
Разработано "Marine Standard" SIA © 2009