# Язык программирования PHP

PHP — самый распространённый язык программирования для создания веб-приложений. На PHP написано большинство динамических сайтов, CMS и блоговых движков. При подключении услуги Поддержка PHP на хостинге можно будет использовать скрипты, написанные на этом языке.

# Поддерживаемые версии PHP

Для каждого подключённого к хостингу домена можно установить отдельную версию PHP. Полный список поддерживаемых версий PHP и пути к их интерпретаторам можно посмотреть в разделе УправлениеТехническая информация.

Переключение между версиями происходит в разделе УправлениеНастройки веб-сервера. Здесь же, но уже на вкладке «Настройки PHP» представлены все подключаемые модули и расширения выбранной версии PHP.

Обратите внимание

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

# Выполнение php-скриптов

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

По умолчанию PHP-скриптом считается файл с расширением .php или .phtml.

Для работы скриптов на Джино.Хостинге выделяется 128 МБ оперативной памяти.

# Как узнать текущие установки PHP

Чтобы узнать текущие установки PHP, создайте в папке domains в подпапке с вашим доменным именем (``~/domains/example.com/) файл phpinfo.php со следующим содержанием:

<?php phpinfo(); ?>

В браузере зайдите по адресу 'example.com/phpinfo.php'.

На этой странице будет представлена большая таблица с полным описанием всех настроек текущей версии PHP, работающей на этом домене.

# Запуск PHP в режиме CGI

Запуск PHP в режиме CGI позволяет указывать свой php.ini, работать из PHP с любыми файлами на аккаунте и иметь полный доступ к файлам, созданным из PHP.

Чтобы запустить PHP режиме CGI нужно подключить услуу «Поддержка веб-приложений» (Поддержку PHP можно отключить).

После этого в папке domains в подпапке с доменным именем, на котором будет работать скрипт (~/domains/example.com), создайте файл php.cgi со следующим содержанием:

#!/bin/bash
/usr/local/bin/php-cgi -n

Также можно создать файл php.cgi со следующим содержанием:

#!/bin/bash
/usr/local/bin/php-cgi -c /path/to/file/php.ini

После этого установите на файл php.cgi права 0755 (rwxr-xr-x) — это можно сделать в файловом менеджере, щёлкнув правой кнопкой мыши на нужном файле. Также проверьте права на папку с доменным именем: должны быть 0755 (drwxr-xr-x).

Последний шаг — в подпапке с доменным именем создайте файл .htaccess со следующим содержимым:

Action php-cgi /php.cgi
AddHandler php-cgi .php

Теперь файлы с расширением .php будут обрабатываться PHP-интерпретатором в CGI-режиме.

Недостатки запуска PHP через CGI: низкая скорость работы, недоступность некоторых функций модуля и потенциальная небезопасность (если ваш скрипт взломают, это может иметь более серьезные последствия, чем если бы PHP работал как модуль Apache). По этим причинам мы не рекомендуем запускать PHP через CGI.

# php.ini

В конфигурационном файле php.ini находится большинство настроек PHP.

На сайте php.net (opens new window) приведён список директив php.ini, которые вы можете использовать в файле .htaccess.

На Джино.Хостинге можно использовать только те директивы, которые обозначены параметрами PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL.

Список директив категории PHP_INI_SYSTEM, которые можно изменить, приведён в разделе УправлениеНастройки веб-сервера.

Например, чтобы включить magic_quotes_gpc, нужно прописать директиву функции в файле .htaccess:

php_flag magic_quotes_gpc on

Чтобы отключить буферизацию вывода данных, в файле .htaccess укажите следующий код:

php_flag output_buffering off

Чтобы отключить глобальные переменные, добавьте в .htaccess строчку:

php_flag register_globals off

Все приведённые выше параметры прописаны через директиву php_flag, поскольку они могут принимать только значения — on/off (1/0). Если значение прописываемого параметра может быть отлично от нуля или единицы (т. е. от on или off), то следует использовать директиву php_value.

Например, чтобы увеличить объём загружаемого файла через скрипты, создайте файл .htaccess в папке скрипта или папке домена и поместите в него следующие директивы:

php_value upload_max_filesize 15M
php_value post_max_size 15M

Здесь 15M — это максимальный размер загружаемого файла в МБ. Укажите нужный вам размер. На Джино.Хостинге PHP работает как модуль Apache, поэтому по умолчанию использовать пользовательский php.ini нельзя.

Если вы хотите использовать собственный php.ini вы можете запустить PHP в режиме CGI.

Большую часть настроек можно изменить, не запуская PHP в режиме CGI — через файл .htaccess и раздел меню УправлениеНастройки веб-сервераНастройки PHP.

# allow_call_time_pass_reference

Некоторые CMS требуют включить параметр php.ini allow_call_time_pass_reference. Для этого создайте в нужной папке (например, в папке, куда устанавливаете скрипт) файл .htaccess и поместите в него такую директиву:

php_flag allow_call_time_pass_reference on

Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.

# register_globals

Некоторые скрипты требуют включения директивы register_globals. Для этого в папке скрипта или в папке домена создайте файл .htaccess и поместите в него следующую директиву:

php_flag register_globals on

Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.

# Вопросы и ответы

Как изменить часовой пояс на сайте?

Добавьте в файл .htaccess строку с указанием нужного часового пояса (например, московского):

php_value date.timezone 'Europe/Moscow'

Список поддерживаемых временных зон можно узнать на сайте php.net (opens new window).

Почему вместо результатов работы PHP-скрипта я вижу лишь пустую белую страницу?

Скорее всего, в процессе работы скрипта произошла ошибка, а в файле .htaccess отключён вывод ошибок на экран. Чтобы его включить, добавьте в этот файл (обычно он находится в вашей домашней директории, папке домена или папке с вашим скриптом) строку:

php_flag display_errors on

Если такая строка уже есть, приведите её к указанному выше виду.

После завершения отладки скрипта настоятельно рекомендуем снова выключить отображение ошибок.

Почему вместо результатов работы PHP-скрипта скачивается файл *index.php*?

Это значит, что у вас не подключена услуга «Поддержка PHP», и обработка PHP-скриптов на вашем аккаунте не работает. Подключить услугу можно в разделе Услуги.

Как выключить отображение ошибок PHP?

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

php_flag display_errors off

После завершения отладки скрипта рекомендуется выключать отображение ошибок.