我正在运行Debian Squeeze&我想尝试进入PHP交互模式。 (我已经安装了php5-cli以及通常的php安装包)
通常我会通过在这个系统上运行php -a
来做到这一点我得到以下内容,没有通常的PHP提示符:
启用交互模式
任何帮助都非常感激。
答案 0 :(得分:4)
不幸的是,这是特定于Debian的错误:#576218。
总结错误报告中的评论:
似乎没有简单的解决方法。但是,Ubuntu和可能的其他发行版不受此错误的影响,因为它们针对libreadline
构建PHP。由于许可问题,Debian不使用libreadline
,而是libedit
。
答案 1 :(得分:1)
另一个答案是错过了一个解决方案。
如果您想要一些没有持久环境的短命令,请执行
while read -er line; do php -r "$line"; done
获取一个不同的php,(通过编译或其他方式)链接到readline而不是libedit(这不是在debian中完成的,因为参与php包装的人不希望readline的gpl应用于php),或修复此错误的较新版本的php。
答案 2 :(得分: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控制台应该可以正常工作。
答案 3 :(得分:0)
我已经为Ubuntu 12.04 Precise Pangolin(基于Debian Wheezy)解决了这个问题所以:
sudo apt-get install php5-readline