Як змінити налаштування конфігурації

Запуск 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()