我基本上是PEAR(和PhpDocumentor)的新手;我使用PEAR CLI安装了PhpDocumentor,一切似乎都很好......直到我去使用它,此时我收到了以下错误:
Warning: require(PhpDocumentor/phpDocumentor/phpdoc.inc):
failed to open stream: No such file or directory in
/usr/local/bin/phpdoc on line 40
Fatal error: require(): Failed opening required
'PhpDocumentor/phpDocumentor/phpdoc.inc' (include_path='.:/usr/share/pear')
in /usr/local/bin/phpdoc on line 40
我在网上找不到任何关于错误的内容,所以我再次通过命令行卸载/重新安装,没有错误,但我遇到了同样的问题。我忽略了什么吗?正如我所说,我对PEAR很新:)
感谢。 d
答案 0 :(得分:4)
要确定PEAR放置的位置,请运行pear config-show
。如果PEAR之前已经说过它已经为你成功安装了PhpDocumentor,那么你要查找的文件应该在php_dir
设置的值中找到(在我的Mac上,这是/usr/lib/php/PEAR
)。
必须在include_path中设置此php_dir
值才能使大多数PEAR包正常运行。由于/usr/share/pear
DOES似乎位于您的include_path中,因此根据您上面包含的错误,我不得不猜测您的PEAR安装已将php_dir
设置为其他位置。
现在,如果您想将PEAR安装更改为指向/usr/share/pear
,您需要了解PEAR如何安装内容。许多软件包使用install-time text replacement
,它将您的安装设置放入软件包的代码本身。如果您回顾一下pear config-show
输出,您将看到其他几个* _dir设置(data_dir,bin_dir,www_dir等)。因此,在安装软件包之前,将它们设置为您想要它们非常重要。不过不用担心,对于已经安装的软件包来说,已经不太晚了。
要更改PEAR设置,请使用pear config-set (setting name) (setting value)
,例如pear config-set php_dir /usr/share/pear
。由于只有php_dir绝对必须在您的include_path中,因此您可以保留其他设置。我通常会确保它们都指向同一个根目录,只是为了将所有内容保存在一个整体位置。
更改其中任何设置后,您应该运行已安装的每个软件包的pear update
。这将做的是执行前面提到的install-time text replacement
,但这次将使用当前的设置,即刚刚完成设置的设置。首先在PEAR主程序包上运行它,pear update --force pear
...你必须包含--force
标志,因为PEAR会实现你要求我更新包已经'当前'并停止自己。为所有已安装的软件包运行此update
后,您的PEAR安装文件将放置在当前include_path
期望找到它们的位置。
答案 1 :(得分:4)
嗯,这个问题很滑稽,但是我只是遇到了同样的问题并且在经过多次努力之后解决了这个问题,所以我想我会分享。
我运行了pear config-show
,因为@ashnazg详细,我的php_dir
设置为/usr/lib/php
。我尝试从那里运行phpdoc -h
- 瞧! - 有效。所以对我来说问题是PHP需要知道这条路径。我编辑了php.ini(对我来说是在/private/etc/php.ini中)并编辑了include_path
以包含/usr/lib/php
。我看起来像是:
include_path = ".:/usr/lib/php"
在那之后,它就像一个魅力!希望这有助于其他人。 FWIW,我在Snow Leopard,我通过运行sudo pear install phpdocumentor
安装了phpdoc。
答案 2 :(得分:0)
PhpDocumentor / phpDocumentor / phpdoc.inc是否存在?它存在于/ usr / share / pear中吗?如果答案分别是“是”和“否”,那么你需要在你的包含路径中添加任何目录PhpDocumentor。
长话短说,找到phpdoc.inc,然后从那里开始工作。