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 <
Another way is edit your windows system environment and add PHP_PEAR_SYSCONF_DIR variable pointing to php's dir.
In windows 7 i use powershell.
you can set the PHP_PEAR_SYSCONF_DIR variable and then run a pear command. For Example:
$env:PEAR_CONFIG_SYSCONFDIR = 'c:\path_to_xampp\php'
pear install pear.phpunit.de/PHPUnit
To change the path from c:\windows\pear.ini
to c:\path_to_xampp\php\pear.ini
you can download this file at http://pear.php.net/go-pear.phar and place it in your c:\path_to_xampp\php
folder.
Run:
php go-pear.phar
Change the location of your pear.ini (11) to c:\path_to_xampp\php
($prefix\pear.ini
).
Save and run the new file c:\path_to_xampp\php\PEAR_ENV.reg
.
Log out of Windows and run (in c:\path_to_xampp\php
)
pear config-show
Now you can see that the path has been updated :)
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
Thanks user2204085 ! To be more accurate, when you run
php go-pear.phar
type 11 (not 'all' or not enter) then type $prefix\pear.ini
.
The file PEAR_ENV.reg will be created in your php directory.
I've followed the above steps, and it works fine for me.enter code here