Как собрать собственный PHP как CGI?
Иногда возникает необходимость собрать собственную версию PHP на хостинге. Например, в том случае, если в PHP должны быть подключены какие-либо библиотеки, не установленные централизованно на серверах хостинга.
На тарифах с "Максимальный" и "МаксимальныйПлюс" есть доступ к конфигурационному файлу Apache httpd.conf. Поэтому в нем можно подключить собственную версию PHP, собранного в виде модуля для Apache (mod_php). Но, если у вас тариф "Активный", можно собрать собственную версию PHP как CGI.
Рассмотрим пример сборки PHP версии 5.2.3. Устанавливать все будем в директорию ~/local/php5.
mkdir ~/local
mkdir ~/local/php5
mkdir ~/src
cd src
fetch -o php-5.2.3.tar.gz \
http://ru2.php.net/get/php-5.2.3.tar.gz/from/this/mirror
tar xzf php-5.2.3.tar.gz
cd php-5.2.3/
./configure --prefix=${HOME}/local/php5 \
--with-config-file-path=${HOME}/local/php5
make
make install
Чтобы удалить все исходные файлы после сборки, выполните следующие команды:
cd ~/src
rm -rf php-5.2.3/
rm -f php-5.2.3.tar.gz
Чтобы использовать те же настройки в php.ini, которые действуют на хостинге, скопируйте себе тот же файл:
cp /usr/local/php5/lib/php.ini ~/local/php5/
Далее выполните следующие действия: сделайте симлинк (или скопируйте) на файл php5-cgi в директории ~/vcgi:
ln -s ~/local/php5/bin/php-cgi ~/vcgi/php-cgi
Затем создайте (или отредактируйте) в директории ~/www файл .htaccess, содержащий такие строки:
AddHandler php-cgi .php5 .php
Action php-cgi /cgi-bin/php-cgi
Тем самым мы указали, что файлы с расширениями .php5 и .php будут обрабатываться нашим CGI PHP.
Параметры для configure для сборки PHP Вы можете взять со страницы phpinfo(). Вы можете указать лишь нужные Вам модули и библиотеки. Полный список доступных параметров для сборки можно получить, выполнив команду:
./configure --help