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 3.0, there are Apache directives that correspond to each
configuration setting in the php3.ini name,
except the name is prefixed by "php3_".
With PHP 4.0, there are several Apache directives that allow you
to change the PHP configuration from within the Apache
configuration file itself.
- php_value
name
value
This sets the value of the specified variable.
- php_flag
name
on|off
This is used to set a Boolean configuration option.
- php_admin_value
name
value
This sets the value of the specified variable. "Admin"
configuration settings can only be set from within the
main Apache configuration files, and not from
.htaccess files.
- php_admin_flag
name
on|off
This is used to set a Boolean configuration option.
Příklad 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> |
|
Poznámka:
PHP constants do not exist outside of PHP. For example, in
httpd.conf do 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.
Tabulka 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 .htaccess and VHost
directives in httpd.conf.
|
| PHP_INI_SYSTEM | 4 |
Entry can be set in php.ini or
httpd.conf (but not in VHost blocks in
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 settings using
ini_get() or get_cfg_var().