Skip to content
Advertisement

Is it possible to use environment variables in php.ini?

Rather than hard-wiring some paths in my php.ini configuration, I’d like to configure them using system variables that are shared in some other places such as my Apache configuration. I’ve done some searching and couldn’t find the right mix of keywords to discover if there’s a way to do this.

Does anyone know if this can be done?

upload_tmp_dir = $SCRATCH_HOME/uploads

Now SCRATCH_HOME can be exported in the environment as /tmp or /var/scratch or whatever I want it to be.

Advertisement

Answer

Documented officially: https://www.php.net/manual/en/configuration.file.php#example-36

Before I begin, I just want to specify my configurations: I’m using Windows 7-64bit, PHP 5.4.3, Apache HTTP Server 2.2.x, I’ve set my environmental variable PHP_HOME=C:toolsphp-5.4.3 (PHP installation directory). I use the variable in my httpd.conf and php.ini file

Note: I will be omitting some text for brevity.

In the httpd.conf file

# For PHP 5 do something like this:
LoadModule php5_module "${PHP_HOME}/php5apache2_2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "${PHP_HOME}"

In the php.ini file

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "${PHP_HOME}/ext"
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement