|
How to change configuration settings
When using PHP as an Apache module, you can also change the
configuration settings using directives in Apache configuration
files (e.g.
With PHP 4 and PHP 5, 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
Note:
With PHP 3, there are Apache directives that correspond to each
configuration setting in the
Example 7.2. Apache configuration example<IfModule mod_php5.c>
Caution:
PHP constants do not exist outside of PHP. For example, in
When running PHP on Windows, the configuration values can be
modified on a per-directory basis using the Windows registry. The
configuration values are stored in the registry key
Regardless of how you run PHP, you can change certain values at runtime of your scripts through ini_set(). See the documentation on the ini_set() page for more information. If you are interested in a complete list of configuration settings on your system with their current values, you can execute the phpinfo() function, and review the resulting page. You can also access the values of individual configuration directives at runtime using ini_get() or get_cfg_var(). Code Examples / Notes » configuration.changeswebmaster
To change the configuration for php running as cgi those handy module commands won't work.. The work-around is being able to tell php to start with a custom php.ini file.. configured the way you want. With multiple custom php.ini files ------------------------------------------- /site/ini/1/php.ini /site/ini/2/php.ini /site/ini/3/php.ini -- The trick is creating a wrapper script to set the location of the php.ini file that php will use. Then it exec's the php cgi. shell script /cgi-bin/phpini.cgi ------------------------------------------- #!/bin/sh export PHPRC=/site/ini/1 exec /cgi-bin/php5.cgi -- Now all you have to do is setup Apache to run php files through the wrapper script instead of just executing the php cgi. In your .htaccess or httpd.conf file ------------------------------------------- AddHandler php-cgi .php Action php-cgi /cgi-bin/phpini.cgi -- So to change the configuration of php you just need to change the PHPRC variable to point to a different directory containing your customized php.ini.. You could also create multiple shell wrapper scripts and create multiple Handler's+Actions in .htaccess.. in your .htaccess ------------------------------------------- AddHandler php-cgi1 .php1 Action php-cgi1 /cgi-bin/phpini-1.cgi AddHandler php-cgi2 .php2 Action php-cgi2 /cgi-bin/phpini-2.cgi AddHandler php-cgi3 .php3 Action php-cgi3 /cgi-bin/phpini-3.cgi -- The only caveat here is that it seems like you would have to rename the file extensions, but there are ways around that too -> http://www.askapache.com/php/custom-phpini-tips-and-tricks.html pgl
It is not possible to unset a config option using php_value. This caused me problems with auto_prepend_file settings where I wanted to have a global file auto included, with an exception for only one site. The solution used to be to use auto_prepend_file /dev/null, but this now causes errors, so I just create and include blank.inc now instead.
woody/mc
@ pgl: As the documentation says: "To clear a previously set value use none as the value." Works fine for me. |