在 MAMP 上安装 Phing 和 PHPUnit

2023-12-04

我在 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

我的 php.ini 来自 /Applications/MAMP/conf/php5.3/php.ini

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

尝试运行或访问 phing 时也会发生同样的问题。

所以,我再次猜测问题是路径设置,但我不知道如何解决这个问题。

Thanks

Dave

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'

/Applications/MAMP/bin/php5.3/bin 的 ls -al 列出了 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

让我尝试一下“通用 phpunit 安装故障排除列表”中的内容。 (以前从未写过,所以我无法将您链接到任何内容)。

首先要确保

pear version

至少报告pear 1.9.2。如果不:pear install --force pear/pear并再次检查。如果这不起作用,我剩下的唯一想法就是重新安装 pear。见下文。

您在此过程中收到的有关“需要频道升级”的任何消息都很重要,您应该执行建议的命令。

之后尝试:

pear install phpunit/phpunit --force --alldeps

并重复此操作,直到它不再抱怨缺少频道或频道升级。

It still可能会抱怨需要 PEAR 1.9.2,即使pear version显示 1.9.2。我只能通过重新安装pear来解决这个问题。

重新安装梨

我找到的唯一方法是重新安装保存http://pear.php.net/go-pear.phar通过“另存为...”到磁盘并运行php go-pear.phar


还是没有运气?

pear config-show 

并查找“可执行目录”

如果没有“phpunit”binary在该目录中重新检查安装是否有效以及是否没有告诉我们错误消息:)

二进制存在但是which phpunit不起作用

确保可执行目录位于您的 $PATH 中或使用绝对路径来查看它是否有效

它执行但存在缺少组件的错误

确保PEAR directory (php_dir) 是你的 php.ini include_path


如果您遇到更多麻烦,请告诉我/我们出了什么问题,我会尽力调整答案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MAMP 上安装 Phing 和 PHPUnit 的相关文章

随机推荐

  • 如何将绘制的线保留在补丁下方

    在下面的代码中 我绘制了一条线 然后在其上方绘制了一个不透明补丁 alpha 1 我希望被补丁覆盖的线部分被隐藏 但看起来好像线是在补丁之后绘制的 如何更改 使线条不显示出来 该代码改编自这个 matplotlib 示例 import ma
  • Android:将视图投射到视图

    我有一个扩展视图的类 MyView 扩展视图 在活动中我有下一个 View view View findViewById R id relative layout view here I have error because of cast
  • 如何检查R中函数的所有参数

    通常在 R 参数列表中包的 html 帮助中 以结尾 其他论点通过 但是我们如何在 R 中打印函数的所有参数 如果我正确理解你的问题 那么我倾向于说 大多数时候 不可能列出所有可能通过的参数 函数的 部分 请看一下非常简单的 plot功能
  • 如何获取 std::string 的准确长度?

    我正在修剪长条std string使用此代码将其放入文本容器中 std string AppDelegate getTrimmedStringWithRange std string text int range if text lengt
  • 这个Python装饰器是如何工作的?

    编辑 澄清以使我的问题具体到我的查询 我可以看到装饰器静态日志函数是如何调用的 但我不知道如何调用 被调用以及它的结果如何是log的结果 我看到了输入 输入内容是如何工作的 class logger staticmethod def log
  • 使用 python requests 模块在 Github 中创建经过身份验证的会话

    我的目标是在 github 中创建一个经过身份验证的会话 以便我可以使用高级搜索 这将功能限制为未经身份验证的用户 目前 我收到来自发布请求的网页响应 什么 您的浏览器执行了意外操作 如果问题仍然存在 请联系我们 这是我用来尝试完成我的任务
  • 随机数,分布不均匀[重复]

    这个问题在这里已经有答案了 可能的重复 生成密度不均匀的随机数 我尝试识别 创建一个函数 在 Java 中 它给我一个非均匀分布的数字序列 如果我有一个函数说function f x and x gt 0它会给我一个随机数 从0 to x
  • 如何确保从抽象泛型类派生的类使用自身作为泛型参数

    我有一个抽象类 public abstract class MyAbstractBase
  • 检查字符串的第一个字母是否为大写

    我想创建一个函数来检查字符串的第一个字母是否为大写 这是我到目前为止所想出的 def is lowercase word if word 0 in range string ascii lowercase return True else
  • Node.js、bluebird、执行路径控制不佳

    我正在努力学习蓝鸟 我没有按照自己的意愿控制执行 这个蓝鸟问题来自 async js 问题Node js 异步模块 并发 这是一些代码 加上我期望得到的和我得到的 问题 为什么 3 函数在 1 1 和 2 函数结束以及 2 第一个错误检查函
  • 更改日期格式

    我有一个 DateTime 变量 例如时间戳 它以通常的格式保存日期 如下所示 11 1 2011 该变量用于构建 SQL 命令 Oracle数据库只接受以下格式的日期 YYYY MM DD 如何操作我的变量以这种格式存储日期 根本不要格式
  • 底部导航视图中所选选项卡的颜色

    我正在添加一个BottomNavigationView到一个项目 我想为选定的选项卡使用不同的文本 和图标色调 颜色 以实现灰显未选定的选项卡效果 使用不同的颜色android state selected true 在颜色选择器资源文件中
  • data.table中按组填充缺失值

    如果想要根据一组内的前 后非 NA 观察来填充变量的缺失值 则 data table 命令是 setkey DT id date DT value filled in DT is na value list id date value DT
  • 使用 C# 解析复杂的 XML

    我正在尝试使用 C 解析复杂的 XML 我正在使用 Linq 来完成它 基本上 我正在向服务器发出请求并获取 XML 这是代码 XElement xdoc XElement Parse e Result this newsList Item
  • 为什么要在 CSS 文件路径中添加版本号?

    我注意到有些网站将版本号 尤其是 放在 CSS 文件路径中 例如 放置版本号的主要目的是什么 如果目的是记住 CSS 文件上次更新的时间 那么版本号不应该作为注释添加到 CSS 文件中吗 From HTML5 样板文档 什么是 v 1 v
  • 可滑动的侧面菜单不起作用

    我为响应式页面 针对移动页面 编写了一个自定义可滑动侧菜单 这是代码 jQuery code window load function data toggle click function var toggle el this data t
  • 理解链表实现的问题

    更新 非常感谢所有回复的人 这让我觉得在学习 Java 的过程中我并不孤单 请原谅 但我想我没有足够澄清我对链表和练习应用程序的不了解 首先 类定义如何包含其自身的对象 好吧 我知道这是递归 但对我来说仍然是一个非常奇怪和陌生的概念 第二
  • Safari 11 上的视频自动播放

    您好 我注意到视频不再在 Safari 11 上自动播放 下面是我的代码 它可以在 Chrome 上运行 因为它必须被静音 它仅显示海报图像 任何帮助
  • 使用 Java 中的 Selenium Webdriver 以不同用户身份运行 IE

    有谁知道如何使用 JAVA 使用 以不同用户身份运行 功能让 selenium 运行 IE 会话 我不知道我该如何设置这个 谷歌没有提出任何东西 所以也许我在某个地方寻找错误的东西 为了详细说明为什么我需要这样做 我正在测试的网站是一个内部
  • 在 MAMP 上安装 Phing 和 PHPUnit

    我在 OS X 10 6 上的 MAMP 下运行 phpunit 时遇到问题 我已经通过 PEAR 安装了 phpunit 它存在于 MAMP 目录中 但是当我在终端中运行 phpunit 时没有任何反应 我猜这是一个路径问题 但作为一个