Установка php 5.4 на хостинг ру-центра

 

Не актуально. PHP теперь переключается через панель хостинга - веб-сервер - управление модулями. 
Инструкция может быть полезна только тем, кому необходимо иметь разные версии PHP для сайтов. 

 

Перед началом работы отключите веб-сервер

1. Подключиться по SSH

2. Создать ~/tmp

mkdir ~/tmp; cd ~/tmp

 

3. Заходим на http://php.net/downloads.php нажимаем на архив с расширением .tar.gz и ищем в списке свою страну(если не находим, выбираем любую). Копируем ссылку в буфер обмена(клик правой кнопкой мыши по ссылке `Копировать адрес ссылки`)/

4. Открываем консоль. Скачиваем:

http://www.php.net/get/php-5.4.6.tar.gz/from/hr.php.net/mirror

 

5. Полученный архив распаковать:

tar -xvf php-5.4.*.tar.gz
заходим:
cd php-5.4.*

 

6. Компилируем. Для экономии оперативной памяти, в php вкомпилировать нужно только те модули, которые нужны сайты. По этому предварительно смотрите требования к системе на сайте разработчика. Начинаем:

./configure --prefix=/home/$USER/php546 --disable-fileinfo --with-zlib --with-pdo-mysql --with-config-file-path=/home/$USER/php546 --with-gd --with-freetype-dir --with-jpeg-dir
что значит эта строка:/ –prefix=/home/$USER/php546 - здесь мы указываем в какой папке будет работать php/ –disable-fileinfo –with-zlib –with-pdo-mysql - указываем какие библиотеки будут вкомпилированы а какие нет./ –with-config-file-path=/home/$USER/php - указываем в какой папке будет лежать файл php.ini/ –with-gd –with-freetype-dir –with-jpeg-dir - библиотеку GD лучше вкомпилировать:) Она нужна:) После того, как процесс закончился, компилируем и инсталлируем:
make & make install

 

7. Вроде бы всё, php собрали, но нам не хватает еще модулей php, которые нам понадобятся. Модули находятся в папке php-5.4.*/ext В примере ниже, я покажу пример сборки модуля session: Перейдите в папку с расширением mysql

cd ext/session
Далее нужно воспользоваться утилитой phpize:
/home/$USER/php/bin/phpize
Следующий шаг - запускаем скрипт configure:
./configure --with-php-config=/home/$USER/php/bin/php-config
и собираем:
make & make install
После выполнения всех операций в папке ~/php546/lib/php/extensions/no-debug-non-zts-20100525/ появится файл session.so, который и является расширением session.

 

:!:Важно:Таким образом нужно скомпилировать все необходимые для работы сайта расширения.

8. Ну и последний, наверное, шаг - нужно настроить php.ini. Создайте в папке ~/php файл php.ini, сделать это можно к примеру так:

mcedit ~/php546/php.ini
и вставьте туда следующее:
[php]
cgi.fix_pathinfo = 1
register_globals=0
allow_url_fopen=0
max_input_time=60
max_execution_time=30
safe_mode=0
display_errors=on
session.save_path="/tmp"
allow_url_include=0
file_uploads=1
magic_quotes_gpc=0
default_socket_timeout=120
memory_limit=32M
post_max_size=8M
upload_max_filesize=8M
zlib.output_compression = 1
zlib.output_handler = On
extension_dir="/home/login/php/lib/php/extensions/no-debug-non-zts-20090626/"
default_charset = "utf-8"
realpath_cache_size = 512K
realpath_cache_ttl = 21600
date.timezone = "Europe/Moscow"
open_basdir="/tmp"

extension=pdo.so
extension=session.so


mysql.default_host=login.mysql
mysql.default_port=3306

 

9. Если вы планируете использовать веб-сервер apache установленный по умолчанию, то в модулях веб-сервера необходимо включить модуль CGI: Далее сделайте симлинк на папку php-cgi сайта:

ln ~/php/bin/php-cgi ~/<ИМЯ_САЙТА>.ru/cgi/php-cgi

 

В папке с сайтом создаём файл .htaccess со следующим содержимым:

AddHandler php-cgi .php5 .php
Action php-cgi /cgi-bin/php-cgi
В принципе всё готово. Перезагрузите веб-сервер и попробуйте зайти на сайт. Если php вы скомпилировали правильно со всеми модулями, которые необходимы скриптам, то сайт запустится сразу. Если же чего то не хватает, то вместо сайта появятся ошибки. По ошибке надо смотреть какого модуля не хватает. Его, соответственно нужно будет докомпилировать и добавить в extension php.ini