When PEAR installs itself on Windows it places pear.ini file in the system folder c:\Windows by default. Which sometimes needs to be changed after all. And sometimes it is not possible for some reasons (not sure why, probably a bug in PEAR installation scripts) to change this location during the installation. Then we need to change this location when PEAR is already installed and in use.
First check the current PEAR configuration pear config-show
C:\>pear config-show
CONFIGURATION (CHANNEL PEAR.PHP.NET):
=====================================
Auto-discover new Channels auto_discover 1
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy <not set>
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pear.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir C:\lib\php\PEAR
PEAR documentation directory doc_dir C:\lib\php\PEAR\docs
PHP extension directory ext_dir ./ext
PEAR directory php_dir C:\lib\php\PEAR\pear
PEAR Installer cache directory cache_dir c:\temp\pear\cache
PEAR configuration file cfg_dir C:\lib\php\PEAR\cfg
directory
PEAR data directory data_dir C:\lib\php\PEAR\data
PEAR Installer download download_dir C:\temp
directory
PHP CLI/CGI binary php_bin C:\lib\php\php.exe
php.ini location php_ini c:\lib\php
--program-prefix passed to php_prefix <not set>
PHP's ./configure
--program-suffix passed to php_suffix <not set>
PHP's ./configure
PEAR Installer temp directory temp_dir C:\temp
PEAR test directory test_dir C:\lib\php\PEAR\tests
PEAR www files directory www_dir C:\lib\php\PEAR\www
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state stable
Unix file mask umask 0
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin C:\Program Files
(x86)\Git\bin\gpg.EXE
Signature Key Directory sig_keydir c:\lib\php\pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename c:\lib\php\pear.ini
System Configuration File Filename c:\lib\php\pearsys.ini
Two last lines here show the location for PEAR configuration files that needs to be changed.
Some users reports that PEAR creates a key in Windows registry but this is not always true. And PEAR works fine without that key.
What always works is an environment variable PHP_PEAR_SYSCONF_DIR. It should points to the pear.ini file location.