我已经下载了 PHP 的 ZIP 存档并将其解压缩到我的个人资料下。然后我需要一些 PEAR 包。 go-pear.bat
显然安装 PEAR 就好了,我只需要之后进入 pear.bat
文件并将路径调整为 php.exe
——没什么大不了的,然后它就运行了。
但是,当我尝试安装某些东西时,我收到以下错误:
ERROR: failed to mkdir C:\php5\pear\data\Console_CommandLine\data
当然,在根目录中不允许写入访问,但我有点不知所措,不知道 PEAR 认为它应该如何在一个既不存在也不配置任何位置的位置安装任何东西。 PHP 目前位于 H:\
下方的某个位置(已替换为我的个人资料)。我在 PEAR 安装期间输入的所有路径都是正常的,我唯一能找到 C:\php5
的位置是在 PEAR/go-pear.phar
和文档中。其中一个是我无论如何都不应该改变的,我猜,另一个与程序本身几乎没有关系。
现在,我可能可以进入并将 C:\php5
设置为指向 PHP 当前所在目录的连接/符号链接(symbolic link),或者将其实际安装在该位置 - 这两件事我宁愿避免,因为这最初只是为了对某些东西进行小测试。
我自从研究了 pear help install
并且显然我可以使用 -P
或 -R
所以设置一些路径。我仍然不清楚它们之间的确切区别,但我想尝试它们不会有什么坏处。结果不知何故……出乎意料:
-P H:\Downloads\php\PEAR
导致有趣的错误(等等)
ERROR: failed to mkdir C:\Downloads\php\PEAR\php5\pear\data\Console_CommandLine\data
而 -R
使用相同的路径(显然 -R
指示下载的存储位置,因为在我猜我不应该碰这个之前它已经工作了)导致甚至更有趣:
download directory "C:\Downloads\php\PEAR\Users\JOHANN~1\AppData\Local\Temp\pear\download" is not writeable. Change download_dir config variable to a writeable dir
到现在为止,我猜 C:\
和 php5
都被硬编码了,没有明显的原因(我的环境变量也不包含任何此类内容)所以我会去再次挖掘,这次寻找更短的字符串,因此需要更长的结果列表。
但是,如果在此期间有人对此有所了解,这可能会有所帮助。
最佳答案
问题是 PEAR 在 Windows 目录中寻找它的 ini 文件,并且因为它没有在那里找到它,所以它求助于猜测位置。更糟糕的是,您无法使用 pear config-set
更改任何配置设置,因为 PEAR 没有可写入的 pear.ini。同时,PEAR 会忽略其自己目录中的现有 pear.ini 文件。一团糟。看到这个bug report .
如果只有一个全局 PEAR 安装,则可以通过创建指向正确目录的环境变量 PHP_PEAR_SYSCONF_DIR
来告诉 PEAR 在哪里查找 ini 文件。
但如果有多个本地 PEAR 安装,则必须通过添加以下行来修补 pear.bat:
IF "%PHP_PEAR_SYSCONF_DIR%"==""SET "PHP_PEAR_SYSCONF_DIR=C:\path\to\pear.ini\directory"
关于php - Windows 上的 PEAR 目录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3255091/