2014-01-23

Кастомный php на сервере с Cpanel и WHM

howto

Потребовалось обновить PHP на сервере с Cpanel и WHM. Делается это просто, но вот незадача, один из сайтов на сервере закодирован ionCube и максимальная версия PHP а которой он может работать 5.2.

Но мне кровь из носа нужна была версия 5.3. Однако, оказалось, что решить проблему не так уж и сложно, достаточно скомпилировать собственный cgi модуль php.

Указанная техника подойдет для пользователей shared хостингов где есть доступ к компилятору но нет рутовых прав, например это "официальный" способ для клентов masterhost.

Алгоритм получился следующий:

1. закачиваем на сайт скрипт с phpinfo(); и смотрим "configure command" секцию - это нужно чтобы не придумывать опции компиляции вручную - это долго и муторно. В моем случае получилось следующее:

'./configure' '--disable-fileinfo' '--disable-phar' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-sockets' '--enable-zip' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-bz2' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'

Выкусываем из этой строки '--with-apxs2=/usr/local/apache/bin/apxs' - это команда сборки php как модуля Apache - мы собираем CGI поэтому она нам не нужна.

заменяем '--prefix=/usr/local' на '--prefix=/home/username/php' - это путь по которому команда make install сложит готовые файлы, мы же не хотим устанавливать php глобально.

Возможно, вы захотите внести какие-либо еще изменения в команду конфигурации.

2. Скачиваем нужную версию php с http://www.php.net/downloads.php

3. Распаковывем и в папке с исходниками запускаем нашу команду конфигурации и сборки.

./configure ...[то что мы подготовили на шаге 1]

make

make install

4. Если все прошло успешно то в папке /home/username/php/bin появится файл php-cgi eго нужно скопировать в папку ~/public_html/cgi-bin/ с именем php: cp "~/php/bin/php-cgi ~/public-html/cgi-bin/php"

5. В .htaccess помещаем следуюшие строчки:

Action php-script /cgi-bin/php
AddHandler php-script .php

Вуаля, новая версия php установлена на сервер. Обратите внимание, все операции можно проделать без рутового доступа, что может пригодится пользователям shared хостингов которым не нравится невозможность вносить изменения в php.ini

php.ini я положил в /home/username/php/lib/php.ini, скопировал существующий из /usr/php/lib/php.ini и внес в него необходимые мне изменения.

Вобщем, все оказалось не так уж и страшно, спасибо masterhost за вот эту инструкцию.

 

комментарии:

 
RSS комментариев

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться

разное (187)
howto (124)
программирование (109)
гад-же-ты (75)
мысли (42)
PHP (41)
JavaScript (39)
вебмастеринг (37)
гондураша (28)
linux (28)
юмор (25)
полезное (21)
Android (17)
движок (17)
софт (15)
кино (14)
деньги (14)
видео (13)
музыка (10)
путешествия (10)
интернет (10)
беспредел (10)
книги (10)
diy (9)
занимательная физика (8)
умный дом (8)
ztools (8)
хостинг (7)
Nokia 5800 (7)
языки (7)
lifehack (6)
вебдизайн (6)
css (6)
прелоадер (5)
arduino (5)
oDesk (5)
apple (5)
связной (5)
козлы (5)
аниме (4)
svn (4)
движек (4)
кухня (4)
Python (4)
занимательная юриспруденция (4)
software (3)
synphony (3)
энергия (3)
рестораны (3)
спорт (2)
гитара (2)
webmastering (2)
Java (2)
bash (2)
фото на документы (2)
Ruby on Rails (2)
Берлин (2)
восстановить (1)
годнурас (1)
авторское право (1)
дурдом (1)
SEO (1)
технологии (1)
микросервисы (1)
сайты (1)
наука (1)
C++ (1)
programming (1)
гаджеты (1)
Поиск по блогу:

Valid XHTML 1.0 Strict