Коли використовується PHP як модуль Apache, можна також змінити параметри конфігурації, використовуючи директиви файлів конфігурації Apache (напр. httpd.conf та .htaccess). Також потрібні "AllowOverride Options" або "AllowOverride All" привілеї, щоб зробити це.
Існує кілька директив Apache, які дозволяють змінити PHP-конфігурацію через
конфігураційні файли Apache. Зіставлення між цими директивами та типами
INI_ALL
, INI_PERDIR
, або
INI_SYSTEM
наведено у
Список директив php.ini.
php_value
name
value
Встановлює значення вказаної директиви.
Може використовуватись тільки з типами директив
INI_ALL
та INI_PERDIR
.
Щоб очистити попереднє значення, використовуйте none
як значення.
Зауваження: Не використовуйте
php_value
для встановлення логічного (boolean) значення. Замість цього використовуйтеphp_flag
(див. нижче).
php_flag
name
on|off
Використовується для встановлення логічного значення для директив.
Може використовуватись тільки з типами директив
INI_ALL
та INI_PERDIR
.
php_admin_value
name
value
Встановлює значення вказаної директиви. Її не можна
використовувати в файлах .htaccess. Будь-який тип директив
встановлений з php_admin_value
не може бути перезаписаний через .htaccess або ini_set().
Щоб очистити попереднє значення, використовуйте none
як значення.
php_admin_flag
name
on|off
Використовується для встановлення логічного значення для директив.
Її не можна використовувати в файлах .htaccess.
Будь-який тип директив встановлений з
php_admin_flag
не може бути перезаписаний через .htaccess або ini_set().
Приклад #1 Конфігурація Apache
<IfModule mod_php5.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule> <IfModule mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on </IfModule>
PHP константи не можуть існувати за межами PHP. Наприклад, в httpd.conf
ви не можете використовувати PHP-константи такі як E_ALL
чи E_NOTICE
для встановлення директиви
error_reporting, оскільки вони
не матимуть сенсу та будуть прирівнюватись до 0.
Використовуйте замість цього відповідні значення bitmask (бітової маски).
Ці константи можна використовувати в php.ini
Коли PHP запущено у Windows, значення конфігурації можна змінювати на рівні
теки за допомогою реєстрів Windows. Значення конфігурації зберігаються
в ключі реєстра HKLM\SOFTWARE\PHP\Per Directory Values
,
в суб-ключах відповідних до шляху назви. Наприклад, значення конфігурації
для теки c:\inetpub\wwwroot
буде зберігатись в ключі
HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
.
Налаштування для теки будуть активними для будь-якого скрипта, що
запущено з цієї теки або її підтеки. Значення ключа повинно мати
назву директиви PHP-конфігурації та мати рядковий тип (string). Константи PHP
в середині ключів реєстра не парсяться. Хоча, тільки значення конфігурації,
що змінюються в INI_USER
, можуть бути встановленими
таким чином, тоді як значення для INI_PERDIR
- не
можуть, бо ці значення перечитуються для кожного запиту.
Не зважаючи на те як запущено PHP, ви можете змінити конкретне значення директиви під час виконання вашого скрипта через функцію ini_set(). Докладнішу інформацію можна прочитати на сторінці ini_set().
Якщо ви хочете побачити повний список та значення параметрів конфігурації у вашій системі, можна ознайомитись з виводом функції phpinfo(). Також можна отримати значення конкретної директиви під час виконання за допомогою функції ini_get() або get_cfg_var().