Подтвердить что ты не робот

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

Я пытаюсь установить пакет 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?

4b9b3361

Ответ 1

Не совсем уверен, но 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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

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

 php go-pear.phar 

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