问题
Max OS X 10.7.. when i run phing -v
i get the following errors:
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
Here are the commands i used:
pear config-set auto_discover 1
pear install phing/phing
Here is my php.ini:
include_path = ".:/Applications/MAMP/bin/php/php5.3.6/lib/php"
running whereis for php, pear, and phing returns:
bash-3.2$ whereis php
/usr/bin/php
bash-3.2$ whereis pear
/usr/bin/pear
bash-3.2$ whereis phing
/usr/bin/phing
running config-get for pear returns:
→ pear config-get php_dir
/usr/lib/php/pear
checking this folder, system.php
and phing.php
both exist in this path.
回答1:
Seems like include_path
is somehow broken.
Check PEAR's directory:
pear config-get php_dir
/usr/lib/php
Whatever directory is returned, it should contain PEAR files (System.php
and phing
files in particular)
Check that correct php.ini
is used:
Run php --ini
and see what INI file is being loaded. Then make sure this INI files contains PEAR directory in it's include_path
Check include_path
:
Run php -c /path/to/php.ini -r 'echo get_include_path() . "\n";'
.
Update
The problem is indeed with include_path
since the error message reports (include_path='.:')
which clearly shows that PEAR is NOT in your include path. This means that wrong php.ini
is being loaded for CLI PHP. To fix it, find correct php.ini
file (step 2) and add
include_path = ".:/usr/lib/php/pear"
to it.
回答2:
I solve it simple ...
i'm configuring my /etc/paths to include propel generator on my path ambient.
then i add /Application/XAMPP/bin and /Application/XAMPP/Propel/generator/bin
i was getting that include error. Mac system comes with php preinstalled ... so, propel generator was getting wrong php installation.
I solve it simple ... i just changed the order of /etc/paths folders ...
as you see my /etc/paths file:
/Applications/XAMPP/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/XAMPP/Propel/generator/bin
回答3:
Just Want to add one more easier solution for mac LION users (those who install stuff via macport ) , might work for leopard too
download this script anywhere, doesn't matter where it is
curl http://pear.php.net/go-pear.phar > go-pear.phar
run this command
sudo php -q go-pear.phar
it will ask you the paths, you shouldn't need to change it, but just check these paths contains any pear related files.
it will ask you if you want to update php.ini for you with these includes path [Y]
you are done! type phing and you should ask for your build.xml
回答4:
Or if you don't have access to the server, you can do this:
$root = $SERVER['DOCUMENT_ROOT'];
It'll always reference the root of your project, and you can then reference the folder/file from that.
You don't have to touch the server if done that way.
来源:https://stackoverflow.com/questions/10253187/cannot-get-phing-to-run-at-all