Четверг, 28.03.2024, 15:07

Форум преданных пользователей UBUNTU

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: kostopolos  
Форум ubuntu linux » Компьютерный Софт » UBUNTU LINUX » Настройка PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль)
Настройка PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль)
kostopolosДата: Воскресенье, 05.08.2012, 22:24 | Сообщение # 1
Главный помощник главного линуксоида :)
Группа: Администраторы
Сообщений: 32
Репутация: 37
Статус: Offline
http://aboutubuntu.ru/content....u-10-04

Настройка PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль Apache2) на одном сервере под управлением Ubuntu 10.04+

Ситуация проста: на новый и очаровательный сервер с Ubuntu 10.04+ и современным PHP 5.3, пригодным для всех актуальных версий CMS, вдруг требуется подселить старый-старый сайт, начинающий сыпать ошибками при попытке запуска на PHP 5.3 (подавай ему чего-нибудь постарше, например, PHP 5.2). Кто виноват — понятно. Но что делать?

Не паниковать! На одном сервере с одним Apache2 прекрасно заводятся и соседствуют PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль Apache2). Мы далее решим проблему так, что указать какой именно PHP использовать можно будет на уровне настроек виртуального хоста.

Скачиваем дистрибутив php 5.2:
Code
wget http://www.php.net/get/php-5.2.17.tar.gz/from/ru.php.net/mirror


Переименовываем полученный файл во что положено:
Code
mv mirror php-5.2.17.tar.gz


Распаковываем архив:
Code
tar zxvf php-5.2.17.tar.gz


Заходим в директорию:
Code
cd php-5.2.17


Устанавливаем зависимости:
Code
sudo aptitude install libxml2-dev libmysqlclient-dev libcurl4-gnutls-dev libpng12-dev libjpeg62-dev


Конфигурируем, собираем и ставим из исходников наш php 5.2 в директорию /opt/php5.2:
Code
./configure --prefix=/opt/php5.2 --with-config-file-path=/opt/php5.2 --with-mysqli --with-mysql --with-curl --with-gd --with-jpeg-dir --enable-cli --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect
make
sudo make install


Мы, убунтоводы, избалованы готовыми пакетами, так что наберитесь терпения: с непривычки может показаться, что сборка (по команде make) занимает много времени :-)

Когда всё установиться, можно убедиться в том, что на вашем сервере теперь появилась нужная версия php такой командой:
Code
/opt/php5.2/bin/php -v


Однако, про этот php пока ничего не знает наш уважаемый веб-сервер Apache2. Мы их познакомим через fastcgi.

Ставим:
Code
sudo aptitude install libapache2-mod-fastcgi


Включаем нужные модули Apache2:
Code
sudo a2enmod cgi fastcgi actions


Перезапускаем Apache, чтобы модули подцепились:
Code
sudo service apache2 restart


Теперь создадим файл (он будет просто обёрткой, вызывающей наш исполнимый бинарник /opt/php5.2/bin/php-cgi, но с нужными настройками, которые вы можете изменить или дополнить):
Code
sudo nano /usr/lib/cgi-bin/php52-cgi


И туда поместим буквально следующее:
Code
#!/bin/sh
PHPRC="/opt/php5.2/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /opt/php5.2/bin/php-cgi


Сделаем файл исполнимым:
Code
sudo chmod +x /usr/lib/cgi-bin/php52-cgi


Теперь создадим необходимую часть конфига для виртуальных хостов, которым потребуется php 5.2:
Code
sudo nano /etc/apache2/php52.conf


Поместим в файл следующее:
Code
<FilesMatch "\.php">
SetHandler application/x-httpd-php5
</FilesMatch>
ScriptAlias /php52-cgi /usr/lib/cgi-bin/php52-cgi
Action application/x-httpd-php5 /php52-cgi
AddHandler application/x-httpd-php5 .php


Теперь давайте пойдём в конфиг того виртуального хоста, который должен работать с php 5.2 и добавим в него следующую строку (например, после DocumentRoot...):
Code
...
Include php52.conf
...


Перезапустим Apache, чтобы подцепились новые настройки виртуального хоста:
Code
sudo service apache2 restart


Готово! Идите на нужный хост и проверяйте: он теперь обслуживается php 5.2.
 
Форум ubuntu linux » Компьютерный Софт » UBUNTU LINUX » Настройка PHP 5.2 (через fastcgi) и PHP 5.3 (как модуль)
  • Страница 1 из 1
  • 1
Поиск: