Running PHP as Apache module
When using PHP as an Apache module, you can also change the
configuration settings using directives in Apache configuration
files (e.g. httpd.conf) and
.htaccess files (You will need
"AllowOverride Options" or "AllowOverride All" privileges)
With PHP 4.0, there are several Apache directives that allow you
to change the PHP configuration from within the Apache configuration
files. For a listing of which directives are
PHP_INI_ALL, PHP_INI_PERDIR,
or PHP_INI_SYSTEM, have a look at the table
found within the ini_set() documentation.
Note:
With PHP 3.0, there are Apache directives that correspond to each
configuration setting in the php3.ini name,
except the name is prefixed by "php3_".
- php_value
name
value
Sets the value of the specified directive.
Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.
To clear a previously set value use none
as the value.
- php_flag
name
on|off
Used to set a Boolean configuration directive.
Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.
- php_admin_value
name
value
Sets the value of the specified directive.
This can NOT be used in .htaccess files.
Any directive type set with php_admin_value
can not be overridden by .htaccess or virtualhost directives.
- php_admin_flag
name
on|off
Used to set a Boolean configuration directive.
This can NOT be used in .htaccess files.
Any directive type set with php_admin_flag
can not be overridden by .htaccess or virtualhost directives.
Example 4-2. Apache configuration example <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> |
|
Note:
PHP constants do not exist outside of PHP. For example, in
httpd.conf you can not use PHP constants
such as E_ALL or E_NOTICE
to set the error_reporting
directive as they will have no meaning and will evaluate to
0. Use the associated bitmask values instead.
These constants can be used in 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.
Table 4-1. Definition of PHP_INI_* constants
| Constant | Value | Meaning |
|---|
| PHP_INI_USER | 1 | Entry can be set in user scripts |
| PHP_INI_PERDIR | 2 |
Entry can be set in php.ini, .htaccess or
httpd.conf
|
| PHP_INI_SYSTEM | 4 |
Entry can be set in php.ini or httpd.conf
|
| PHP_INI_ALL | 7 | Entry can be set anywhere |
You can view the settings of the configuration values in
the output of phpinfo(). You can also
access the values of individual configuration directives using
ini_get() or get_cfg_var().