2012-07-16 82 views
2

我正在运行Debian Squeeze &正试图进入PHP交互模式。 (我已经安装PHP5-CLI随着通常PHP安装软件包) 通常我会通过这个系统,我得到以下运行php -a做到这一点,没有通常的PHP提示:无法进入PHP交互模式

交互模式启用

任何帮助非常感谢。

+1

http://www.php.net/manual/en/features.commandline.interactive.php其他一些也可能对此有帮助的评论 – 2012-07-16 17:04:47

+0

查看你的'php.ini'作为'cli.pager' – alfasin 2012-07-16 17:07:47

+0

我已经在我的php.ini中搜索了cli.pager并看不到任何东西。你能给我任何我需要添加到ini文件的指针吗?非常感激。 – aphrek 2012-07-16 19:08:01

回答

1

其他答案缺少解决方案。

  1. 如果你想在无持续性环境在短短的命令,请

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

4

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

总结来自错误报告的意见: 对此,似乎没有简单的解决方法。但是,Ubuntu和其他发行版本不受此错误的影响,因为它们针对libreadline构建PHP。由于授权问题,Debian不使用libreadline,而是使用libedit

0

你可以自己编译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控制台应该可以正常工作。

0

我已经解决了这个对Ubuntu 12.04精确穿山甲(基于Debian喘息),所以:

sudo apt-get install php5-readline