我正在运行Debian Squeeze &正试图进入PHP交互模式。 (我已经安装PHP5-CLI随着通常PHP安装软件包) 通常我会通过这个系统,我得到以下运行php -a
做到这一点,没有通常的PHP提示:无法进入PHP交互模式
交互模式启用
任何帮助非常感谢。
我正在运行Debian Squeeze &正试图进入PHP交互模式。 (我已经安装PHP5-CLI随着通常PHP安装软件包) 通常我会通过这个系统,我得到以下运行php -a
做到这一点,没有通常的PHP提示:无法进入PHP交互模式
交互模式启用
任何帮助非常感谢。
其他答案缺少解决方案。
如果你想在无持续性环境在短短的命令,请
while read -er line; do php -r "$line"; done
获取不同的PHP,(通过编译或其他方式)的链接的ReadLine,而不是libedit(这是没有在debian中完成,因为有人参与php包装不希望readline的gpl适用于php),或者修正了这个bug的更新版本的php。
不幸的是,这是一个Debian特有的bug:#576218。
总结来自错误报告的意见: 对此,似乎没有简单的解决方法。但是,Ubuntu和其他发行版本不受此错误的影响,因为它们针对libreadline
构建PHP。由于授权问题,Debian不使用libreadline
,而是使用libedit
。
你可以自己编译readline模块。与Debian的喘息和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控制台应该可以正常工作。
我已经解决了这个对Ubuntu 12.04精确穿山甲(基于Debian喘息),所以:
sudo apt-get install php5-readline
http://www.php.net/manual/en/features.commandline.interactive.php其他一些也可能对此有帮助的评论 – 2012-07-16 17:04:47
查看你的'php.ini'作为'cli.pager' – alfasin 2012-07-16 17:07:47
我已经在我的php.ini中搜索了cli.pager并看不到任何东西。你能给我任何我需要添加到ini文件的指针吗?非常感激。 – aphrek 2012-07-16 19:08:01