我已经下载了PHP的ZIP压缩文件并将其解压到我的configuration文件中。 然后我需要一些PEAR包。 go-pear.bat显然安装了PEAR就好了,之后我只需要进入pear.bat文件,然后修改PHP.exe的path – 没什么大不了的,之后就运行了。
但是,当我尝试安装的东西,我得到以下错误:
错误:未能mkdir C: PHP5 pear data Console_CommandLine data
当然,在根目录下不允许写访问权限,但是我知道PEAR认为它应该在任何地方既不存在也不configuration的地方安装任何东西。 PHP目前驻留在H: (代替我的个人资料)的某个地方。 我在PEAR安装期间input的所有path都是理智的,唯一可以find的地方是C:PHP5 ,位于PEAR/go-pear.phar和文档中。 其中之一是我不应该改变的东西,我猜想,另一件事情是与程序本身几乎没有关系。
PHP:PEAR在Windows上尝试打开c: windows pear.ini进行写入,即使configuration文件是c: pear pear.ini
在显示不同版本号的窗口上的梨
麻烦在Windows 7上安装PHPunit,wamp服务器
为什么$ pear-> packageExists()在已安装的包上总是返回false?
无法通过PEAR安装PHPUnit,需要PEAR安装程序> = 1.9.2,无法从1.9.0升级PEAR
现在,我可能会进入并使C:PHP5成为一个连接C:PHP5 /符号链接到PHP所在的目录,或者实际上将它安装在该位置 – 这两个我宁愿避免的事情,因为这最初只是为了一点一些东西。
我自从看着pear help install ,显然我可以使用-P或-R所以设置一些path。 这两者之间的确切区别对我来说还不是很清楚,但我猜,尝试它们不会有什么坏处。 不知何故,结果是……意外的:
-PH:DownloadsPHPPEAR导致了有趣的错误(等)
错误:mkdir失败C: Downloads PHP PEAR PHP5 pear data Console_CommandLine data
而-R使用相同的path(显然-R指明下载的存储位置,因为这工作之前,我想我不应该触摸这个)导致更有趣:
下载目录“C: Downloads PHP PEAR Users JOHANN〜1 AppData Local Temp pear download”是不可写的。 将download_dirconfigurationvariables更改为可写的目录
现在我猜想C:和PHP5都是硬编码的地方,没有明显的原因(我的环境variables也没有包含这种types),所以我会再次挖掘,这次查找更短的string,因此更长的结果列表。
但是如果有人对此有所了解,这可能会有所帮助。
在wampserver上安装PEAR
可能的符号链接攻击
没有find梨数据库类
将PEAR包的本地版本指向开发path?
问题是,PEAR在Windows目录中查找它的ini文件,并且因为它没有在那里找到它,所以它猜测该位置。 更糟糕的是,你不能用pear config-set来更改任何配置设置,因为PEAR没有pear.ini来写入。 同时,PEAR将忽略其自己目录中的现有pear.ini文件。 一团糟。 看到这个错误报告 。
如果只有一个全局PEAR安装,可以通过创建指向正确目录的环境变量PHP_PEAR_SYSCONF_DIR来告知PEAR在哪里查找ini文件。
但是,如果有多个本地PEAR安装,则必须添加以下行来修补pear.bat:
IF "%PHP_PEAR_SYSCONF_DIR%"=="" SET "PHP_PEAR_SYSCONF_DIR=C:pathtopear.inidirectory"
比迈克尔·H的答案稍微好一些的选择可能是:
打开$prefixpearPEARConfig.PHP ,其中$prefix是在PEAR安装程序中使用的值。 (在我的Windows系统上, $prefix是C:PHP5.4.0 )
找到下面的部分:
if (getenv('PHP_PEAR_SYSCONF_DIR')) { define('PEAR_CONfig_SYSconfdIR',getenv('PHP_PEAR_SYSCONF_DIR')); } elseif (getenv('SystemRoot')) { define('PEAR_CONfig_SYSconfdIR',getenv('SystemRoot')); } else { define('PEAR_CONfig_SYSconfdIR',PHP_SYSconfdIR); }
并进行以下更改:
if (getenv('PHP_PEAR_SYSCONF_DIR')) { define('PEAR_CONfig_SYSconfdIR',getenv('PHP_PEAR_SYSCONF_DIR')); //} elseif (getenv('SystemRoot')) { //define('PEAR_CONfig_SYSconfdIR',getenv('SystemRoot')); } else { //define('PEAR_CONfig_SYSconfdIR',PHP_SYSconfdIR); // This next line is new define('PEAR_CONfig_SYSconfdIR',$PEAR_INSTALL_DIR); }
在处理多个PHP / PEAR版本/安装时,这个解决方案的风险较小,特别是在同时运行多个PHP / PEAR版本/安装时,避免环境破坏。
很明显,PEAR开发者忽略了WINDOWS , Program Files和朋友自Windows Vista以来已被弃用为应用程序数据目录的事实,而且通常不再可由非高级应用程序写入。 (出于安全原因。)
查看PEAR命令的config-...参数:
config-create Create a Default configuration file config-get Show One Setting config-help Show @R_971_4045@ion About Setting config-set Change Setting config-show Show All Settings
你可以通过指定配置文件
pear -c /path/to/config/file $command
我有同样的问题。 我的配置文件从C:Windows目录中丢失 – 肯定有错误的安装程序 – 我指定了一个不同的INI文件位置,但我的愿望并没有实现。
我将pear.ini复制到C:windows ,一切开始工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。