How to change configuration settings

Running PHP as Apache module

När PHP används som Apache-modul, kan du ändra inställningar med hjälp av Apache's konfigurationsfiler och .htaccess-filer. (Du behöver "AllowOverride Options" och "AllowOverride All"-rättigheter för att det ska fungera.)

Med PHP 3.0 finns Apache-direktiv motsvarande varje inställning i php3.ini, och med samma namn som i filen förutom att det inleds med "php3_".

Med PHP 4.0, finns ett antal Apache-direktiv som gör det möjligt för dig att ändra PHP-inställningar i Apache's konfigurationsfil.

php_value name value

Det här tilldelar den specificerade variabeln ett värde.

php_value auto_prepend_file none

php_flag name on|off

Det här används för att sätta booleska inställningar.

php_admin_value name value

Det här tilldelar den specificerade variabeln ett värde. "Admin"-inställningar kan bara ändras inuti Apache's konfigurationsfil och inte i .htaccess-filer.

php_admin_flag name on|off

Det här används för att sätta booleska inställningar.

Exempel 4-2. Konfigurationsexempel för Apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Not: PHP-konstanter existerar inte utanför PHP. T.ex. kan du inte använda PHP-konstanter såsom E_ALL eller E_NOTICE i httpd.conf för att sätta error_reporting-direktivet. De kommer, om du gör så, inte få någon annan än betydelse än 0. Använd bitmaskar för att sätta värdena istället. Följande konstanter kan användas i php.ini

Other interfaces to PHP

Regardless of the interface to PHP you can change certain values at runtime of your scripts through ini_set(). The following table provides an overview at which level a directive can be set/changed.

Tabell 4-1. Definition of PHP_INI_* constants

ConstantValueMeaning
PHP_INI_USER1Entry can be set in user scripts
PHP_INI_PERDIR2 Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM4 Entry can be set in php.ini or httpd.conf
PHP_INI_ALL7Entry can be set anywhere

Du kan se dina inställningar med hjälp av det som skrivs ut av phpinfo(). Du kan också kontrollera specifika direktiv genom ini_get() eller get_cfg_var().