2

我正在运行 Debian Squeeze 并试图进入 PHP 交互模式。(我已经安装了 php5-cli 以及通常的 php 安装包)通常我会通过php -a 在这个系统上运行来做到这一点,我得到以下信息,没有通常的 php 提示:

启用交互模式

非常感谢任何帮助。

4

4 回答 4

4

不幸的是,这是一个 Debian 特有的错误:#576218

总结错误报告中的评论:似乎没有简单的解决方法。但是,Ubuntu 和可能的其他发行版不受此错误的影响,因为它们构建 PHP 是针对libreadline. Debian 不使用libreadline,但libedit由于许可问题。

于 2012-09-10T13:26:41.587 回答
1

另一个答案是缺少解决方案。

  1. 如果您想要一些没有持久环境的简短命令,请执行

     while read -er line; do php -r "$line"; done
    
  2. 获取不同的 php,(通过编译或其他方式)链接到 readline 而不是 libedit(这在 debian 中没有完成,因为参与 php 打包的人不希望 readline 的 gpl 应用于 php),或者更新版本的 php修复了这个错误。

于 2014-04-28T20:40:51.503 回答
0

您可以自己编译 readline 模块。使用 Debian Wheezy 和 PHP 5.4,我可以通过这样做来解决这个问题(以 root 身份运行命令):

# apt-get install php5-dev libedit-dev libreadline-dev

# mkdir php && cd php
# apt-get source php5-cli
# cd php5-5.4.4/ext/readline
# phpize
# ln -s ../../sapi/
# ./configure
# make
# cp modules/readline.so /usr/lib/php5/<number like 20100525>/
# chmod -x /usr/lib/php5/20100525/readline.so
# echo 'extension=readline.so' > /etc/php5/mods-available/readline.ini
# cd /etc/php5/cli/conf.d
# ln -s ../mods-available/readline.ini 20-readline.ini

现在 PHP 控制台应该可以正常工作了。

于 2014-05-05T16:22:21.963 回答
0

我已经为 Ubuntu 12.04 Precise Pangolin(基于 Debian Wheezy)解决了这个问题,所以:

sudo apt-get install php5-readline
于 2016-02-05T19:22:41.863 回答