понедельник, 11 марта 2013 г.

Индивидуальные настройки PHP для сайтов netangels.ru

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




Данная статья описывает способ настройки произвольного количества независимых версий PHP для работы в рамках одного аккаунта. Суть метода заключается в использовании собственного CGI-обработчика (враппера). Фактически, будет создан CGI-скрипт, единственной задачей которого будет правильная настройка переменных окружения и запуск интерпретатора PHP нужной версии. Затем при помощи единственной директивы в файле .htaccess веб-сервер будет проинструктирован о том, что все файлы с расширением .php внутри определенного каталога должны обрабатываться этим CGI-скриптом.

Рассмотрим на примере вариант решение данной задачи: пусть требуется для сайта site1.ru настроить обработку скриптов средствами PHP 5.2, в то время, как остальные сайты аккаунта продолжат работу с версией, указанной в панели управления хостингом.

    Авторизуйтесь на сервере хостинга, используя реквизиты доступа по SSH. Для установки соединения можно воспользоваться программой PUTTY и инструкциями из статьи SSH-доступ, авторизация по ключу, использование SFTP.

    Создайте файл с CGI-скриптом (собственным PHP интерпретатором):

    touch ~/site1.ru/cgi-bin/php5.2 && chmod 755 ~/site1.ru/cgi-bin/php5.2

    Созданный файл нужно заполнить следующим текстом:

    #!/bin/sh
    export PHPRC="/home/uXXXXX/site1.ru"
    exec /usr/bin/php-cgi5.2 -- "$@"

    здесь:
        uXXXXX -- имя Вашего пользователя на сервере хостинга. В большинстве случаев, совпадает с логином
        /usr/bin/php-cgi5.2 -- собственно PHP v5.2
        PHPRC -- переменная окружения, указывающая PHP каталог с конфигурационным файлом php.ini

    Список установленных на сервере версий PHP можно посмотреть при помощи следующей команды:

    ls /usr/bin/php-cgi*

    Конфигурационный файл php.ini скопируем из каталога с настройками основной версии PHP:

    cp ~/etc/php/php.ini ~/site1.ru/

    В скопированном файле нам потребуется поправить значение параметра extension_dir - нужно текущее значение заменить на следующее:

    /usr/lib/php5.2

    здесь имя целевого каталога определяется исходя из номера выбранной версии. Например, для PHP 5.3 целевой каталог с расширениями будет иметь имя php5.3.

    Теперь необходимо сообщить веб-серверу Apache о том, что для обработки PHP-файлов у нас будет использоваться собственный враппер. Создадим файл .htaccess в каталоге с именем сайта site1.ru и запишем в него следующее указание:

    Action application/x-httpd-php "/cgi-bin/php5.2"

    Проверьте работоспособность выполненной конфигурации. Для этого создадим в каталоге ~/site1.ru/www/ файл phpinfo.php со следующим содержимым:

    <?php
    phpinfo();
    ?>

    Обратившись к созданному файлу через браузер, убедитесь в том, что Вы используете собственную конфигурацию PHP с версией 5.2. Это означает, что настройки выполнены правильно.

Комментариев нет:

Отправить комментарий