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?
Ответы
Ответ 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