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