Як змінити налаштування конфігурації
Запуск PHP як модуль Apache
Коли 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
для встановлення логічних значень. Цю функцію виконує директива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 mod_php4.c> php_value include_path ".:/usr/local/lib/php" php_admin_flag engine on
Застереження
PHP-константи недоступні поза PHP. Наприклад, у httpd.conf ви не можете використовувати константи PHP, такі як E_ALL
або E_NOTICE
, щоб встановити директиву error_reporting, тому що вони не будуть мати значення і будуть прирівнюватися до . Використовуйте натомість відповідні значення типу bitmask (бітова маска). Ці константи можуть бути використані у php.ini
Зміна конфігурації PHP через реєстр Windows
При використанні PHP у Windows значення конфігурації можуть бути змінені на рівні директорії за допомогою реєстру Windows. Значення конфігурації зберігаються у ключі реєстру HKLM\SOFTWARE\PHP\Per Directory Values
, у підключах, що включають повний шлях. Наприклад, значення конфігурації для директорії c:\inetpub\wwwroot
могут храниться в ключеHKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot
. Налаштування для директорії будуть дійсними для будь-яких скриптів, запущених із цієї директорії або її піддиректорії. Значення ключа повинні мати назву конфігураційної директиви PHP та рядкове значення. PHP-константи у значеннях ігноруються. Однак тільки значення конфігурації, що змінюються в INI_USER
можуть бути встановлені таким чином, значення ж INI_PERDIR
не можуть, тому що ці конфігураційні значення перечитуються для кожного запиту.
Інші інтерфейси у PHP
Незалежно від того, як ви запускаєте PHP, ви можете змінювати деякі значення під час виконання ваших скриптів за допомогою ini_set(). Для більш детальної інформації дивіться документацію на сторінці функції ini_set()
Якщо вам цікавий повний список конфігураційних налаштувань вашої системи з поточними значеннями, ви можете запустити функцію phpinfo() та переглянути результуючу сторінку. Ви також можете отримати доступ до значень індивідуально налаштованих директив у процесі виконання, використовуючи ini_get() або get_cfg_var()