PEAR в Windows: как изменить местоположение pear.ini - PullRequest
22 голосов
/ 02 февраля 2010

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

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

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

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

Ответы [ 5 ]

26 голосов
/ 02 февраля 2010

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

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

10 голосов
/ 16 августа 2010

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

3 голосов
/ 22 мая 2013

Чтобы изменить путь с 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

Теперь вы видите, что путь обновлен:)

0 голосов
/ 02 августа 2013

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

 php go-pear.phar 

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

0 голосов
/ 17 ноября 2011

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

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

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