10

Max OS X 10.7 .. 运行时phing -v出现以下错误:

Warning: require_once(phing/Project.php): failed to open stream: No such file or directory in /usr/lib/php/pear/phing/Phing.php on line 22

Fatal error: require_once(): Failed opening required 'phing/Project.php' (include_path='.:') in /usr/lib/php/pear/phing/Phing.php on line 22

以下是我使用的命令:

pear config-set auto_discover 1
pear install phing/phing

这是我的 php.ini:

include_path = ".:/Applications/MAMP/bin/php/php5.3.6/lib/php"

为 php、pear 和 phing 运行 whereis 会返回:

bash-3.2$ whereis php
/usr/bin/php

bash-3.2$ whereis pear
/usr/bin/pear

bash-3.2$ whereis phing
/usr/bin/phing

运行 config-get 获取梨返回:

→ pear config-get php_dir
/usr/lib/php/pear

检查此文件夹,system.php并且phing.php两者都存在于此路径中。

4

4 回答 4

25

好像include_path是莫名其妙坏了。

检查 PEAR 的目录:

pear config-get php_dir
/usr/lib/php

无论返回什么目录,它都应该包含 PEAR 文件(System.php尤其phing是文件)

检查是否php.ini使用了正确的:

运行php --ini并查看正在加载的 INI 文件。然后确保这个 INI 文件中包含 PEAR 目录include_path

检查include_path

运行php -c /path/to/php.ini -r 'echo get_include_path() . "\n";'


更新

问题确实存在,include_path因为错误消息报告(include_path='.:')清楚地表明 PEAR 不在您的包含路径中。这意味着php.ini为 CLI PHP 加载了错误。要修复它,找到正确的php.ini文件(步骤 2)并添加

include_path = ".:/usr/lib/php/pear" 

给它。

于 2012-04-20T21:40:46.650 回答
1

我解决它很简单...

我正在配置我的 /etc/paths 以在我的路径环境中包含推进生成器。

然后我添加 /Application/XAMPP/bin 和 /Application/XAMPP/Propel/generator/bin

我得到了包含错误。Mac 系统预装了 php ......所以,propel generator 出现了错误的 php 安装。

我解决它很简单......我只是改变了 /etc/paths 文件夹的顺序......

如您所见,我的 /etc/paths 文件:

/Applications/XAMPP/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/XAMPP/Propel/generator/bin
于 2014-02-06T21:20:52.820 回答
0

只是想为 mac LION 用户(通过 macport 安装东西的用户)添加一个更简单的解决方案,也可能适用于 leopard

  1. 在任何地方下载这个脚本,不管它在哪里

    curl http://pear.php.net/go-pear.phar > go-pear.phar
    
  2. 运行这个命令

    sudo php -q go-pear.phar
    
  3. 它会询问您的路径,您不需要更改它,只需检查这些路径是否包含任何与梨相关的文件。

  4. 它会询问您是否要使用这些包含路径 [Y] 为您更新 php.ini

你完成了!输入 phing 你应该询问你的 build.xml

于 2012-05-01T00:26:14.380 回答
-2

或者,如果您无权访问服务器,则可以这样做:

$root = $SERVER['DOCUMENT_ROOT'];

它总是会引用您项目的根目录,然后您可以从中引用文件夹/文件。
如果这样做,您不必触摸服务器。

于 2012-04-20T21:14:56.640 回答