安装Phing& MAMP上的PHPUnit
我在OS X 10.6上的MAMP下运行phpunit时遇到问题。我已经通过PEAR安装了phpunit并且它存在于MAMP目录中但是当我在终端中运行phpunit时没有任何反应。我猜这是一个路径问题,但作为一个os x新手,我不知道如何解决它。当我尝试从/Applications/MAMP/bin/php5.3/bin运行它时会发生这种情况
$ phpunit
-bash: /usr/bin/phpunit: No such file or directory
$ ./phpunit
$
问题看起来非常类似于如何使用MAMP在mac上安装phpunit 3.5,但到目前为止还没有解决方案。这是一些更多的系统信息:
phpunit在MAMP中的位置
$ sudo find / -name "phpunit"
/Applications/MAMP/bin/php5.3/bin/phpunit
/Applications/MAMP/bin/php5.3/lib/php/PEAR/phing/tasks/ext/phpunit
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
可能是这里的问题
$ which php
/usr/bin/php
$ which phpunit
$ which pear
$ which ./pear
./pear
$ which ./phpunit
./phpunit
来自/Applications/MAMP/conf/php5.3/php.ini的我的php.ini
include_path = ".:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/bin/php5.3/lib/php/PEAR/"
尝试运行或访问phing时会出现同样的问题。
所以再一次,我猜测问题是一个路径设置,但我不知道如何解决这个问题。
谢谢
戴夫
UPDATE
感谢您的答复。
我的梨是1.9.2
pear配置显示列表
$ ./pear config-show
Configuration (channel pear.php.net):
=====================================
Auto-discover new Channels auto_discover <not set>
Default Channel default_channel pear.php.net
HTTP Proxy Server Address http_proxy <not set>
PEAR server [DEPRECATED] master_server pear.php.net
Default Channel Mirror preferred_mirror pear.php.net
Remote Configuration File remote_config <not set>
PEAR executables directory bin_dir /Applications/MAMP/bin/php5.3/bin
PEAR documentation directory doc_dir /Applications/MAMP/bin/php5.3/lib/php/doc
PHP extension directory ext_dir /Applications/MAMP/bin/php5.3/lib/php/extensions
PEAR directory php_dir /Applications/MAMP/bin/php5.3/lib/php/PEAR
PEAR Installer cache directory cache_dir /tmp/pear/cache
PEAR configuration file cfg_dir /Applications/MAMP/bin/php5.3/lib/php/cfg
directory
PEAR data directory data_dir /Applications/MAMP/bin/php5.3/lib/php/data
PEAR Installer download download_dir /tmp/pear/cache
directory
PHP CLI/CGI binary php_bin /Applications/MAMP/bin/php5.3/bin/php
php.ini location php_ini /Applications/MAMP/conf/php5.3/php.ini
--program-prefix passed to php_prefix <not set>
PHP's ./configure
--program-suffix passed to php_suffix <not set>
PHP's ./configure
PEAR Installer temp directory temp_dir /tmp/pear/temp
PEAR test directory test_dir /Applications/MAMP/bin/php5.3/lib/php/test
PEAR www files directory www_dir /Applications/MAMP/bin/php5.3/lib/php/www
Cache TimeToLive cache_ttl 3600
Preferred Package State preferred_state stable
Unix file mask umask 22
Debug Log Level verbose 1
PEAR password (for password <not set>
maintainers)
Signature Handling Program sig_bin /usr/local/bin/gpg
Signature Key Directory sig_keydir /Applications/MAMP/conf/php5.3/pearkeys
Signature Key Id sig_keyid <not set>
Package Signature Type sig_type gpg
PEAR username (for username <not set>
maintainers)
User Configuration File Filename /Users/dave/.pearrc
System Configuration File Filename /Applications/MAMP/conf/php5.3/pear.conf'
ls -al of /Applications/MAMP/bin/php5.3/bin列出了phpunit等
-rwxr-xr-x 1 dave admin 920 6 Apr 19:55 phing
-r-xr-xr--@ 1 dave admin 57583340 16 Feb 16:08 php
-rwxr-xr-x 1 dave admin 2169 6 Apr 19:48 phpunit
如上所述,php.ini似乎列出了正确的位置和echo $ PATH生成
$ echo $PATH
/Applications/MAMP/bin/php5.3/bin:/Applications/MAMP/bin/php5.3/lib/php:/Applications/MAMP/bin/php5.3/lib/php/PEAR/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin
没有找到相关结果
已邀请:
3 个回复
炬卤遁蝎变
报告至少
。如果不是:
并再次检查。如果这不起作用我剩下的唯一想法是重新安装梨。见下文。 您将在此过程中获得的有关“所需通道升级”的任何消息都很重要,您应该执行建议的命令。 之后尝试:
并重复这一点,直到它停止抱怨缺少频道或频道升级。 即使
显示1.9.2,它仍然可能会抱怨需要PEAR 1.9.2。我只能通过重新安装梨来解决这个问题。 重新安装梨 我找到arround的唯一方法是重新安装通过'另存为...'将http://pear.php.net/go-pear.phar保存到磁盘并运行
仍然没有运气?
并寻找“可执行目录” 如果该目录中没有“phpunit”二进制文件,则重新检查安装是否有效,如果没有告诉我们有关错误消息:) Binary在那里但是
不起作用 确保可执行目录位于$ PATH中或使用绝对路径查看它是否有效 它执行但有关于缺少组件的错误 确保
(
)是你的php.ini的include_path 如果你遇到任何麻烦,让我/我们知道出了什么问题,我会尽力调整答案。
僻朵庙惩竣
将其复制并粘贴到终端。这应该给你一个phpunit文件夹与phpunit和所有依赖内。下一条指令是将所有文件夹复制到你的php
中。找出
在
文件中的位置。你正在使用MAMP,所以它应该像
。通常,MAMP的
是这样的:
但是,您不能只复制和粘贴文件夹,您必须繁琐地找出要复制的文件夹。您可以通过阅读每个文件夹的
文件来了解这一点。从
开始:
所以你将
文件夹,
,
,
,
复制到你的
。在此之后,移至
文件夹,
文件夹,依此类推。这有点单调乏味。 确保你不替换任何文件夹,OSX真的替换每个文件夹(而不是像任何理智的人那样合并),所以如果文件夹已经存在,它只复制新的文件夹/文件。您应该能够通过一些逻辑找出容易复制的文件夹。 在此之后,将
复制到任何文件夹,然后编辑第一行:
至:
更改
的权限,以便我们可以执行它:
你应该能够像这样运行它:
希望这可以帮助。 如果您想在MAMP OSX中使用时升级PEAR或了解它的奇怪之处,那么这里有一个很好的讨论: https://serverfault.com/questions/184741/upgrading-pear-from-1-9-0-to-1-9-1-fails 关于在没有PEAR的情况下安装PHPUnit的旧讨论: 如何在Mac OS X 10.5上不使用PEAR的情况下安装PHPUnit?
砷竣阿
看到这个:
我可以看到有两个配置文件用于系统,一个用于用户(请参阅config-show的底部。 我备份了我的用户配置文件,并由系统替换。然后我需要将php_ini设置设置为/Applications/MAMP/conf/php5.3/php.ini(似乎缺少系统配置文件)。 之后我的phpunit再次运作! 谢谢大家 :)