Запуск нескольких версий PHP на одном аккаунте хостинга

Эта статья устарела.

Эта статья написана для услуги Виртуальный хостинг, которая считается устаревшей с 1 июня 2019 года.

Актуальную услугу хостинга можно заказать на нашем сайте netangels.ru/hosting

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

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

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

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

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

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

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

    touch ~/site1.ru/cgi-bin/php5.2 && chmod 755 ~/site1.ru/cgi-bin/php5.2
    
  3. Созданный файл нужно заполнить следующим текстом:

    #!/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*
    
  4. Конфигурационный файл php.ini скопируем из каталога с настройками основной версии PHP:

    cp ~/etc/php/php.ini ~/site1.ru/
    
  5. В скопированном файле нам потребуется поправить значение параметра extension_dir - нужно текущее значение заменить на следующее:

    /usr/lib/php5.2
    

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

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

    <FilesMatch "\.php$">
    Action application/x-httpd-php "/cgi-bin/php5.2"
    </FilesMatch>
    

    И еще один .htaccess создадим в каталоге site1.ru/cgi-bin со следующим текстом:

    <Files "php5.2">
        SetHandler fcgid-script
    </Files>
    
  7. Проверьте работоспособность выполненной конфигурации. Для этого создадим в каталоге ~/site1.ru/www/ файл phpinfo.php со следующим содержимым:

    <?php
    phpinfo();
    ?>
    
  8. Обратившись к созданному файлу через браузер, убедитесь в том, что Вы используете собственную конфигурацию PHP с версией 5.2. Это означает, что настройки выполнены правильно.

Тарифы на php хостинг

С 2003 года
Надежность.
Нам доверяют десятки тысяч компаний и разработчиков
20 лет
Предоставляем услуги профессионального хостинга
35 000
Клиентов доверяют нам размещение своих сайтов
99.99%
Подтвержденный uptime
наших серверов хостинга
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
Наши клиенты
ВК49865