Эта статья устарела.
Эта статья написана для услуги Виртуальный хостинг, которая считается устаревшей с 1 июня 2019 года.
Актуальную услугу хостинга можно заказать на нашем сайте netangels.ru/hosting
В данной статье рассмотрено создание отдельной версии PHP на аккаунте, что позволяет протестировать или запустить новый сайт без глобальных правок PHP для аккаунта в целом.
Довольно часто могут возникать ситуации, когда необходимо, чтобы 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.2PHPRC
– переменная окружения, указывающая 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
и запишем в него следующее указание:
<FilesMatch "\.php$">
Action application/x-httpd-php "/cgi-bin/php5.2"
</FilesMatch>
И еще один .htaccess
создадим в каталоге site1.ru/cgi-bin
со следующим текстом:
<Files "php5.2">
SetHandler fcgid-script
</Files>
Проверьте работоспособность выполненной конфигурации. Для этого создадим в каталоге ~/site1.ru/www/
файл phpinfo.php со следующим содержимым:
<?php
phpinfo();
?>
Обратившись к созданному файлу через браузер, убедитесь в том, что Вы используете собственную конфигурацию PHP с версией 5.2. Это означает, что настройки выполнены правильно.
Тарифы на php хостинг