【发布时间】:2011-06-17 17:44:34
【问题描述】:
我正在尝试从终端窗口以交互模式运行 PHP,当我运行命令时
php -a
它说“启用交互模式”,但没有向我显示它应该的“php->”提示。我必须按 control z 才能退出交互模式,但我可以在交互模式“启用”时执行任何命令
有谁知道如何解决这个问题
【问题讨论】:
标签: php macos terminal interactive-mode
我正在尝试从终端窗口以交互模式运行 PHP,当我运行命令时
php -a
它说“启用交互模式”,但没有向我显示它应该的“php->”提示。我必须按 control z 才能退出交互模式,但我可以在交互模式“启用”时执行任何命令
有谁知道如何解决这个问题
【问题讨论】:
标签: php macos terminal interactive-mode
PHP 交互式 shell 要求将 GNU readline 或 libedit 静态编译到 PHP 二进制文件中。许多发行版只提供仅包含 readline 扩展的共享库。
如果你自己编译 PHP 的话
./configure --with-readline
或
./configure --with-libedit
(请注意,由于 GPl 和 PHP 许可证之间的不兼容,您可能不会重新分发链接到 readline 的 PHP 二进制文件,那么您必须使用 libedit,但我怀疑您是否想重新分发 PHP 本身。用法是当然可以。这对您的基于 PHP 的应用程序无关紧要。但这就是为什么这对大多数发行版不起作用的原因之一......)
编辑:我刚刚提交了一个 PHP 错误以启用共享构建的 readline 模式,也许我有时间实现它:http://bugs.php.net/bug.php?id=53878
【讨论】:
php -m。要查看它是否是静态的,请尝试运行php -nm。如果列出了“readline”,它应该可以工作。
有一个解决方案(模拟器)对我来说效果很好:
【讨论】:
还有另一个出色的解决方案(由 Facebook btw 创建)phpsh
用他们自己的话来说:
phpsh 是 php 的交互式 shell,具有读取行历史记录、制表符补全、快速访问文档的功能。它是在 Facebook 开发的,具有讽刺意味的是,它主要是用 python 编写的。它是开源的,并在修改后的 BSD 许可下发布。
我用了一段时间,真的很好,在很多方面甚至比php -a还要好
【讨论】: