# Язык программирования PHP
PHP — самый распространённый язык программирования для веб-приложений, на котором написано большинство CMS, блоговых движков и других скриптов. При подключении услуги Поддержка PHP на хостинге можно будет использовать скрипты, написанные на этом языке.
# Особенности работы PHP на Джино
В работе PHP на Джино есть ряд особенностей:
Для установки доступны несколько версий PHP от старых до самых последних и стабильных. Но так как устаревшие версии PHP не поддерживаются разработчиками и могут иметь проблемы с безопасностью, мы рекомендуем использовать последнюю из доступных версий.
Для каждого подключённого к хостингу домена можно установить отдельную версию PHP. Переключение между версиями происходит в разделе УправлениеНастройки веб-сервера.
PHP-скрипты исполняются от имени владельца аккаунта, а не от имени веб-сервера. Чтобы PHP смог что-то записать в папку, достаточно будет стандартных прав 0755.
Режим safe_mode выключен.
Поддержка cURL, файлов .htaccess и mod_rewrite включена.
Путь к интерпретатору PHP: /usr/bin/phpX.Y (CLI), /usr/bin/phpX.Y-cgi (CGI). Здесь X.Y — номер версии PHP, например, 7.2.
PHP на Джино работает и как модуль сервера Apache, и через CGI. Для этого нужно подключить Поддержку скриптовых языков. Если ваш аккаунт создан до 25.10.2021 г., то вам нужно будет подключить Поддержку Python+Django и Поддержку mod_perl + Catalyst.
Для работы скриптов выделяется 128 МБ оперативной памяти, для премиум-аккаунта — 256 МБ.
На Джино установлен модуль IonCube.
Можно использовать функции IMAP.
По умолчанию PHP-скриптом считается файл с расширением .php или .phtml. Чтобы включить обработку PHP-кода в файлах с расширением .html или .htm, нужно добавить в файл .htaccess следующую директиву: AddType application/x-httpd-php .html .htm .
Если в нужной папке нет файла .htaccess, создайте его. Действие директив этого файла распространяется на все вложенные папки.
Все подключаемые модули и расширения текущей версии PHP, доступные для установки на Джино, представлены в разделе меню УправлениеНастройки веб-сервераНастройки PHP.
Чтобы узнать текущие установки PHP на хостинге, нужно написать PHP-скрипт и обратиться к нему из браузера.
Создайте текстовый файл php.info со следующим содержимым:
<?php phpinfo(); ?>
Теперь поместите этот файл в папку ~/domains/ваш_домен и зайдите в браузере по адресу ваш_домен/php.info
.
# Запуск PHP в режиме CGI
Запуск PHP в режиме CGI позволяет указывать свой php.ini, работать из PHP с любыми файлами на аккаунте и иметь полный доступ к файлам, созданным из PHP.
Чтобы запустить PHP в режиме CGI, необходимо:
Подключить Поддержку скриптовых языков (Поддержку PHP можно отключить).
Создать файл php.cgi со следующим содержанием:
#!/bin/bash /usr/local/bin/php-cgi -n
Также содержание файла может быть таким:
#!/bin/bash /usr/local/bin/php-cgi -c /путь/к/файлу/php.ini
Закачать файл на сервер в ASCII-режиме в папку домена, на котором предполагается запускать PHP в режиме CGI.
Например, для домена test.ru это будет папка /domains/test.ru. Если закачать файл не в ASCII-режиме, скрипт работать не будет, появится ошибка 500 (Internal Server Error).
Установить на файл php.cgi права 0755 (rwxr-xr-x) — это можно сделать в файловом менеджере, щёлкнув правой кнопкой мыши на нужном файле.
Проверить права на папку домена. Должны быть установлены права 0755 (drwxr-xr-x).
Внутри папки с правами 0777 (drwxrwxrwx) скрипт работать не будет, появится ошибка 500 (Internal Server Error).
Создать файл .htaccess в директории домена, на котором PHP будет работать в режиме CGI, и поместить в него следующие директивы:
Action php-cgi /php.cgi AddHandler php-cgi .php
Теперь файлы с расширением .php будут обрабатываться 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
Для отключения буферизации вывода данных:
php_flag output_buffering off
Для отключения глобальных переменных:
php_flag register_globals off
Все приведённые выше параметры прописаны через директиву php_flag, поскольку они могут принимать только бинарные значения — on/off (1/0). Если значение прописываемого параметра может быть отлично от нуля или единицы (т. е. от on или off), то следует использовать директиву php_value.
Рассмотрим пример.
Чтобы увеличить объём загружаемого файла через скрипты, создайте файл .htaccess в папке скрипта или папке домена и поместите в него следующие директивы (вместо 15 укажите нужный размер):
php_value upload_max_filesize 15M
php_value post_max_size 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
После завершения отладки скрипта рекомендуем выключать отображение ошибок.