Работа с директивами PHP.ini в httpd.conf

Директивы для конфигурирования PHP можно размещать не только в файле php.ini, но также и в конфигурационных файлах Apache – httpd.conf и .htaccess. Это позволяет проводить тонкую настройку php для разных директорий и виртуальных хостов.

Необходимые условия и установка привилегий

Использование директив php в конфигурационных файлах Apache возможно только при подключении PHP в качестве модуля, а также при соответствующей настройке привилегий AllowOverride, которые должны быть установлены либо в значение Options, либо в значение All.

AllowOverride Options 
AllowOverride All

Для того, чтобы установить максимально возможные привилегии для всего сервера найдите в файле httpd.conf контейнер и установите в нем значение All для директивы AllowOverride.

Контейнер в httpd.conf

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
#  Deny from all 
    Satisfy all 
</Directory>

Примечание: Если на Вашем сервере размещаются сайты, доступ к публикации которым имеете не только Вы, то будьте осторожны с назначением максимальных привилегий (All) директивой AllowOverride, так как это дает возможность любому человеку, имеющему доступ к аккаунту сайта, переопределять настройки веб-сервера. В этом случае, Вы должны установить минимально-необходимые привилегии.

Директивы httpd.conf для работы с директивами php.ini

Для работы с PHP в конфигурационных файлах Apache доступны 4 директивы: php_value, php_flag, php_admin_value, php_admin_flag, которые отличаются значимостью, типом устанавливаемых значений и местом применения.

Директивы php_value и php_flag могут использоваться как в файлах httpd.conf, так и в файлах .htaccess, т.е. их использование доступно, практически, любому владельцу сайта (при наличии соответствующих привилегий AllowOverride, о которых говорилось выше).

Директивы php_admin_value и php_admin_flag можно использовать только в файле httpd.conf и любой параметр, заданный с помощью этих директив не может быть переопределен в файлах .htaccess.

Директивы php_flag и php_admin_flag служат для установки логических значений директив php.ini.

Синтаксис директив php_flag и php_admin_flag

php_flag имя_директивы_php On|Off 
php_admin_flag имя_директивы_php On|Off

Директивы php_flag и php_admin_flag служат для установки строковых и числовых значений директив php.ini, т.е. любых типов значений, за исключением логических.

Синтаксис директив php_value и php_admin_value

php_value имя_директивы_php значение 
php_admin_value имя_директивы_php значение

Частные случаи применения

Если устанавливаемое значение представляет собой строку с пробелами, то его следует заключить в кавычки. Пример:

php_value auto_prepend_file «c:/web сервер/prepend.php»

Для сброса значений следует использовать синтаксис:

php_admin_flag имя_директивы_php none

Пример сброса значения директивы php.ini

php_value error_reporting none

Область применения директив PHP.INI и примеры

Директивы php.ini отличаются по областям применения. Часть директив можно изменять даже через php-скрипты во время их выполнения, часть можно применять только в файлах httpd.conf, некоторые доступны для изменения через .htaccess, а особо важные можно устанавливать только в файле php.ini. Ниже приведены наиболее интересные и частоупотребимые директивы php, которые можно изменить в конфигурационных файлах Apache (httpd.conf, .htaccess).

Примечание:Полный список директив PHP и областей их применения можно посмотреть в руководстве по PHP, распространяемым c сайта php.net

Перечень распространенных директив PHP.INI

mysql.default_host

Устанавливает имя хоста базы данных

Область применения: httpd.conf, .htaccess

Пример: php_value mysql.default_host localhost

mysql.default_user

Устанавливает имя пользователя базы данных

Область применения: httpd.conf, .htaccess

Пример: php_value mysql.default_user vasia

mysql.default_password

Устанавливает пароль пользователя базы данных

Область применения: httpd.conf, .htaccess

Пример: php_value mysql.default_password Xcfg45

highlight.bg

Устанавливает цвет фона при выводе php-кода функциями highlight_file() и highlight_string().

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.bg #FFFFFF

highlight.comment

Устанавливает цвет комментариев при выводе php-кода функциями highlight_file() и highlight_string().

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.comment #FF9900

highlight.default

Устанавливает цвет ключевых слов, переменных, имен функций при выводе php-кода функциями highlight_file() и highlight_string()

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.default #0000BB

highlight.html

Устанавливает цвет html-кода при выводе php-кода функциями highlight_file() и highlight_string()

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.html #000000

highlight.keyword

Устанавливает цвет конструкций языка, скобок, операторов при выводе php-кода функциями highlight_file() и highlight_string().

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.keyword #007700

highlight.string

Устанавливает строковых параметров при выводе php-кода функциями highlight_file() и highlight_string().

Область применения: httpd.conf, .htaccess

Пример: php_value highlight.string #DD0000

display_errors

Разрешает вывод ошибок и предупреждений в браузер.

Область применения: httpd.conf, .htaccess

Пример: php_flag display_errors Off

display_startup_errors

Включает отображение ошибок, возникающих при запуске PHP.

Область применения: httpd.conf, .htaccess

Пример: php_flag display_startup_errors Off

magic_quotes_gpc

Включает автоматическую обработку кавычек и апострофов, в данных GET, POST, и Cookie.

Область применения: httpd.conf, .htaccess

Пример: php_flag magic_quotes_gpc On

register_globals

Включает автоматическое создание переменных PHP из данных, полученных извне. Если директива register_globals выключена, то доступ к данным, полученным извне методами GET, POST, через COOKIE и т.п., возможен только через суперглобальные массивы.

Область применения: httpd.conf, .htaccess

Пример: php_flag register_globals Off

safe_mode

Включение безопасного режима

Область применения: httpd.conf

Пример: php_flag safe_mode On

short_open_tag

Включение режима поддержки короткого синтаксиса php-кода

Область применения: httpd.conf, .htaccess

Пример: php_flag short_open_tag On

auto_prepend_file

Определение файла, который будет выводится в начале каждого php-скрипта. Путь указывается от корня файловой системы сервера. С помощью этой директивы можно, например, подключить ко всем php-файлам скрипт подключения к базе данных, вынеся его за пределы пространства, доступного через браузер. Это позволит немного повысить защиту сайта от взлома.

Область применения: httpd.conf, .htaccess

Пример: php_value auto_prepend_file /www/server/prepend.php

auto_append_file

Определение файла, который будет выводится в конце каждого php-скрипта.

Область применения: httpd.conf, .htaccess

Пример: php_value auto_append_file /www/server/append.php

error_log

Устанавливает имя файла-журнала для записи ошибок, возникающих при выполнении php-скриптов, либо позволяет перенаправить вывод ошибок на syslog – для этого вместо имени файла нужно указать слово syslog.

Область применения: httpd.conf, .htaccess

Пример: php_value error_log /var/log/php_error.log

extension_dir

Устанавливает имя директории, в которой расположены загружаемые расширения PHP

Область применения: httpd.conf

Пример: php_admin_value extension_dir c:/php-5.1.4/ext/

max_execution_time

Устанавливает максимальное время выполнения php-скриптов

Область применения: httpd.conf, .htaccess

Пример: php_admin_value max_execution_time 60

upload_max_filesize

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

Область применения: httpd.conf, .htaccess

Пример: php_admin_value upload_max_filesize 5M

post_max_size

Устанавливает максимальный объем данных, которые могут быть переданы методом POST.

Область применения: httpd.conf, .htaccess

Пример: php_admin_value post_max_size 5M

error_reporting

Определяет типы (уровени важности) фиксируемых ошибок.

Область применения: httpd.conf, .htaccess

Пример: php_value error_reporting “E_ALL & ~E_NOTICE”

memory_limit

Определяет максимальный объем оперативной памяти, который может быть задействован php-скриптом.

Область применения: httpd.conf, .htaccess

Пример: php_admin_value memory_limit 8M

sendmail_from

Устанавливает e-mail отправителя, который применяется при отправке почтовых сообщений с помощью PHP.

Область применения: httpd.conf, .htaccess

Пример: php_value sendmail_from apache@server.ru

sendmail_path

Устанавливает путь к программе, которая будет использоваться при отправке почте функцией mail().

Область применения: httpd.conf

Пример: php_admin_value sendmail_path /usr/sbin/sendmail

allow_url_fopen

Разрешает работу с ресурсами URL, запрашиваемыми по протоколам http и ftp, как с файлами.

Область применения: httpd.conf, .htaccess

Пример: php_admin_flag allow_url_fopen Off

user_agent

Устанавливает строку User-agent, которая используется PHP при обращении к удаленным серверам.

Область применения: httpd.conf, .htaccess

Пример: php_value user_agent “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)”

default_socket_timeout

Устанавливает максимальное время ожидания (таймаут) для потоков, использующих сокеты.

Область применения: httpd.conf, .htaccess

Пример: php_value default_socket_timeout 60

Добавить комментарии



[CODE] [/CODE]


Комментариев нет!