Php Windows上的PEAR:如何更改PEAR.ini位置

Php Windows上的PEAR:如何更改PEAR.ini位置,php,windows-7,pear,Php,Windows 7,Pear,我正在尝试将PEAR包安装到最近在Windows7 64位上安装的XAMPP PHP(PHP5.3.1)中 安装新软件包失败,因为PEAR尝试访问c:\windows\PEAR.ini,而不是现有的c:\path\u to\u xampp\php\PEAR.ini。这会(正确地)导致权限被拒绝错误。我以管理员身份登录,但Windows目录享受一些额外的保护IIRC 我希望使用现有的pear.ini文件,而不是摆弄windows目录中的写权限 有人知道在哪里相应地改变PEAR的行为吗?不完全确定,

我正在尝试将PEAR包安装到最近在Windows7 64位上安装的XAMPP PHP(PHP5.3.1)中

安装新软件包失败,因为PEAR尝试访问
c:\windows\PEAR.ini
,而不是现有的
c:\path\u to\u xampp\php\PEAR.ini
。这会(正确地)导致
权限被拒绝
错误。我以管理员身份登录,但Windows目录享受一些额外的保护IIRC

我希望使用现有的pear.ini文件,而不是摆弄windows目录中的写权限


有人知道在哪里相应地改变PEAR的行为吗?

不完全确定,但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\u file=PEAR\u CONFIG\u SYSCONFDIR$sl梨似乎是使“我的”PEAR安装使用文件D:\webserver\xampp\php\PEAR.ini的那一行。

如果这是正确的,您所要做的就是以某种方式设置环境变量PEAR\u CONFIG\u SYSCONFDIR

另一种方法是编辑windows系统环境并添加指向PHP目录的PHP\u PEAR\u SYSCONF\u DIR变量。

在windows 7中,我使用powershell

您可以设置PHP\u PEAR\u SYSCONF\u DIR变量,然后运行PEAR命令。例如:

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

要将路径从
c:\windows\pear.ini
更改为
c:\path\u至\u xampp\php\pear.ini
,您可以从下载此文件,并将其放置在
c:\path\u至\u xampp\php
文件夹中。 运行:

php go-pear.phar

将pear.ini(11)的位置更改为
c:\path\u to_xampp\php
$prefix\pear.ini
)。 保存并运行新文件
c:\path\u to\u xampp\php\PEAR\u ENV.reg
。 注销Windows并运行(在
c:\path\u to\u xampp\php
中)

梨形图

现在您可以看到路径已经更新:)

谢谢用户2204085! 更准确地说,当你跑步时

 php go-pear.phar 
键入11(不是“全部”或不输入),然后键入
$prefix\pear.ini
。 将在php目录中创建文件PEAR_ENV.reg。
我已经按照上面的步骤操作了,对我来说效果很好。
在这里输入code

干杯
PHP\u PEAR\u SYSCONF\u DIR
就是这样。对于全局PEAR安装来说效果很好。但是如果有多个本地梨,你需要修补pear.bat。更多信息,请参见此处:在Windows上,编辑pear.bat,如果“%PHP\u pear\u SYSCONF\u DIR%”设置“PHP\u pear\u SYSCONF\u DIR=c:\dev\PHP”
(或指向PHP安装的实际位置),则行
。您的问题可能会对其他人有所帮助。不需要删除它。