PEAR on Windows: How to change pear.ini location

pear, php, windows-7

Solution

Not entirely sure but PEAR registered the following keys in the registry of my machine

REGEDIT4
[HKEY_CURRENT_USER\Environment]
"PHP_PEAR_SYSCONF_DIR"="D:\\webserver\\xampp\\php"
....

And PEAR/Config.php contains the following code snippet:

if (getenv('PHP_PEAR_SYSCONF_DIR')) {
    define('PEAR_CONFIG_SYSCONFDIR', getenv('PHP_PEAR_SYSCONF_DIR'));

and the constructor for the Config class

function PEAR_Config($user_file = '', $system_file = '', $ftp_file = false,
                         $strict = true)
    {
        $this->PEAR();
        PEAR_Installer_Role::initializeConfig($this);
        $sl = DIRECTORY_SEPARATOR;
        if (empty($user_file)) {
            if (OS_WINDOWS) {
                $user_file = PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.ini';
            } else {
                $user_file = getenv('HOME') . $sl . '.pearrc';
            }
        }

`$user_file = PEAR_CONFIG_SYSCONFDIR . $sl . 'pear.ini';` seems to be the line that makes "my" PEAR installation use the file D:\webserver\xampp\php\pear.ini. If that's correct all you have to do is to somehow set the environment variable `PEAR_CONFIG_SYSCONFDIR`

Problem

I am trying to install a PEAR package into my recent XAMPP PHP installation (PHP 5.3.1) on Windows 7 64-bit. Installing new packages fails because PEAR tries to access `c:\windows\pear.ini` instead of the existing `c:\path_to_xampp\php\pear.ini`. This results (rightly) in a `permission denied` error. I am logged on as Administrator, but the Windows directory enjoys some additional protection IIRC. Rather than fiddle with write rights in the windows directory, I would like to use the existing pear.ini file. Does anybody know where to change PEAR's behaviour accordingly?

Original source

Related problems