PEAR в Windows: как изменить местоположение pear.ini

Я пытаюсь установить пакет PEAR в мою недавнюю установку XAMPP PHP (PHP 5.3.1) на 64-разрядную версию Windows 7.

Установка новых пакетов c:\windows\pear.ini неудачно, потому что PEAR пытается получить доступ к c:\windows\pear.ini вместо существующего c:\path_to_xampp\php\pear.ini . Это приводит (по праву) к ошибке permission denied в permission denied . Я зарегистрировался как Administrator, но в каталоге Windows есть дополнительная защита IIRC.

Вместо того, чтобы возиться с правами записи в каталоге Windows, я хотел бы использовать существующий файл pear.ini.

Кто-нибудь знает, где изменить поведение PEAR соответственно?

Не совсем уверен, но PEAR зарегистрировал следующие ключи в реестре моей машины

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

И PEAR / Config.php содержит следующий фрагмент кода:

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

и конструктор для класса Config

 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'; похоже, является линией, в которой «моя» установка PEAR использует файл D: \ webserver \ xampp \ php \ pear.ini.
Если это правильно, все, что вам нужно сделать, это как-то установить переменную окружения PEAR_CONFIG_SYSCONFDIR

Другой способ – изменить системную среду Windows и добавить переменную PHP_PEAR_SYSCONF_DIR, указывающую на каталог php.

Чтобы изменить путь от c:\windows\pear.ini до c:\path_to_xampp\php\pear.ini вы можете скачать этот файл по адресу http://pear.php.net/go-pear.phar и поместить его в свой c:\path_to_xampp\php . Бег:

php go-pear.phar

Измените расположение вашего pear.ini (11) на c:\path_to_xampp\php ( $prefix\pear.ini ). Сохраните и запустите новый файл c:\path_to_xampp\php\PEAR_ENV.reg . Выйдите из Windows и запустите (в c:\path_to_xampp\php )

pear config-show

Теперь вы можете видеть, что путь был обновлен 🙂

В Windows 7 я использую powershell.

вы можете установить переменную PHP_PEAR_SYSCONF_DIR, а затем запустить команду груши. Например:

 $env:PEAR_CONFIG_SYSCONFDIR = 'c:\path_to_xampp\php' pear install pear.phpunit.de/PHPUnit 

Спасибо пользователю2204085! Чтобы быть более точным, когда вы запускаете

  php go-pear.phar 

введите 11 (не «все» или не введите), затем введите $prefix\pear.ini . Файл PEAR_ENV.reg будет создан в вашем каталоге php. Я следовал вышеприведенным шагам, и он отлично работает для меня. enter code here