Настройка параметров PHP

PHP в рамках виртуального хостинга может работать в двух режимах — mod_php и mod_cgi:

  • В первом случае PHP функционирует как модуль веб-сервера Apache, поэтому настройки PHP необходимо указывать в файле .htaccess.
  • Во втором случае настройки PHP необходимо указывать в файле php.ini, который располагается в директории cgi-bin вашего сайта.

По умолчанию на новых серверах PHP работает в режиме mod_php, но при желании вы можете подключить режим mod_cgi, воспользовавшись нашей инструкцией.

При настройке параметров через .htaccess ирективы необходимо добавлять в самый конец или в самое начало файла, вне блоков кода <IfModule>...</IfModule>.

Настройка опций

allow_url_fopen

Опция включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL по протоколам ftp или http как с обычными файлами.

В файле php.ini:

Включение опции (для отключения значение = 0):

allow_url_fopen = 1

apc.cache_by_default

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

В файле .htaccess:

Управление APC осуществляется директивами:

php_flag apc.cache_by_default on
php_flag apc.cache_by_default off

В файле php.ini:

Отключение APC (для включения значение = 1):

apc.cache_by_default = 0

default_charset

Директива указывает кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц.

В файле .htaccess:

AddDefaultCharset cp1251
php_value default_charset cp1251

В файле php.ini:

default_charset = "cp1251"

display_errors

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

В файле .htaccess:

Включение и выключение осуществляются следующим образом:

php_value display_errors 0
php_value display_errors 1

В файле php.ini:

Включение вывода ошибок (для выключения значение = off).

display_errors = on

log_errors

Опция позволяет включить логирование ошибок php с их записью в произвольный файл (в примере errors.log). При указании пути к файлу замените u и user на первую букву вашего логина и сам логин.

В файле .htaccess:

php_value log_errors on
php_value error_log /home/u/user/путь_к_файлу/errors.log

magic_quotes_gpc

Волшебные кавычки (Magic Quotes) — это процесс автоматического экранирования входящих данных PHP-скрипта. Если опция включена, то одинарные (') и двойные (") кавычки и обратный слэш (\)экранируются обратным слэшем автоматически.

В файле .htaccess:

Включение и выключение magic_quotes осуществляется директивами:

php_flag magic_quotes_gpc on
php_flag magic_quotes_gpc off

В файле php.ini:

Отключение Magic Quotes (для включения значение = 1):

magic_quotes_gpc = 0

mail.add_x_header

Опция позволяет включить логирование отправки почты из скриптов сайта. Логи будут содержать полный путь до скрипта, адрес получателя и заголовки. При указании пути к файлу, в который будут записываться логи (mail.log), замените u и user на первую букву вашего логина и сам логин.

В файле .htaccess:

php_value mail.add_x_header 1
php_value mail.log /home/u/user/public_html/mail.log

В файле php.ini:

mail.add_x_header = on
mail.log = /home/u/user/public_html/mail.log

max_input_vars

Директива указывает, сколько входных переменных может быть принято в одном запросе. Например:

В файле .htaccess:

php_value max_input_vars 11000

В файле php.ini:

max_input_vars = 11000

mbstring.func_overload и mbstring.internal_encoding

Для корректной работы сайтов на старых версиях CMS Битрикс (до v20.100.0) требуются следующие параметры:

При настройке через .htaccess:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

При настройке через php.ini:

mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2

opcache.revalidate_freq

Отключение OpCache (требуется для CMS Битрикс).

При настройке через .htaccess:

php_value opcache.revalidate_freq 0

При настройке через php.ini:

opcache.revalidate_freq = 0

pcre.recursion_limit

Устанавливает лимит на рекурсию.

При настройке через .htaccess:

php_value pcre.recursion_limit 14000

При настройке через php.ini:

pcre.recursion_limit = 14000

post_max_size

Опция устанавливает максимально допустимый размер данных, отправляемых методом POST. Также это значение также влияет на загрузку файлов — для загрузки больших файлов оно должно быть больше значения директивы upload_max_filesize.

При настройке через .htaccess:

php_value post_max_size 40M

При настройке через php.ini:

post_max_size = 40M

register_globals

Директивы для включения/выключения глобальных переменных.

При настройке через .htaccess:

php_flag register_globals on
php_flag register_globals off

При настройке через php.ini:

Отключение Register Globals (для включения значение = 1):

register_globals = 0

request_order

Директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST.

При настройке через .htaccess:

php_value request_order GPC

При настройке через php.ini:

request_order = GPC

upload_max_filesize

Устанавливает максимальный размер закачиваемого файла.

При настройке через .htaccess:

php_value upload_max_filesize 30M

При настройке через php.ini:

upload_max_filesize = 30M

Опции, которые не могут быть изменены

К настройкам PHP, изменение которых невозможно в рамках виртуального хостинга, относятся:

  • memory_limit
  • apc.num_files_hint
  • apc.shm_size
  • apc.ttl
  • apc.user_entries_hint

Просмотр параметров php

  • Просмотреть значения параметров php, установленных для сервера, можно на странице phpinfo: https://server.timeweb.ru/phpinfo.php, где server — имя сервера, на котором расположен ваш аккаунт.
  • Для того, чтобы просмотреть значения параметров php, установленных для конкретного сайта, создайте в его директории файл info.php со следующим содержимым:
<?php
phpinfo();
?>
  • После чего информация будет доступна по ссылке http://имя_сайта/info.php.