Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法进入PHP交互模式_Php_Debian - Fatal编程技术网

无法进入PHP交互模式

无法进入PHP交互模式,php,debian,Php,Debian,我正在运行debiansqueak&我正在尝试进入PHP交互模式。(我已经安装了php5 cli和常用的php安装包) 通常我会通过在这个系统上运行php-a来实现这一点,在没有常见php提示的情况下,我会得到以下结果: 已启用交互模式 非常感谢您的帮助。不幸的是,这是一个特定于Debian的错误: 要总结错误报告中的评论,请执行以下操作: 似乎没有简单的解决办法。然而,Ubuntu和其他发行版可能不会受到这个bug的影响,因为它们是根据libreadline构建PHP的。由于许可问题,Debi

我正在运行debiansqueak&我正在尝试进入PHP交互模式。(我已经安装了php5 cli和常用的php安装包) 通常我会通过在这个系统上运行
php-a
来实现这一点,在没有常见php提示的情况下,我会得到以下结果:

已启用交互模式


非常感谢您的帮助。

不幸的是,这是一个特定于Debian的错误:

要总结错误报告中的评论,请执行以下操作:
似乎没有简单的解决办法。然而,Ubuntu和其他发行版可能不会受到这个bug的影响,因为它们是根据
libreadline
构建PHP的。由于许可问题,Debian不使用
libreadline
,而是使用
libedit

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

  • 如果您想要一些没有持久环境的短命令,请执行以下操作

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


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

    #apt get install php5 dev libedit dev libreadline dev
    #mkdirphp&光盘php
    #apt获取源php5 cli
    #cd php5-5.4.4/ext/readline
    #phpize
    #ln-s.././sapi/
    #/配置
    #制造
    #cp模块/readline.so/usr/lib/php5//
    #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可用/readline.ini 20-readline.ini
    

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

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


    php.ini
    cli.pager
    工具书中,我在php.ini中搜索了cli.pager,但什么都看不到。你能给我一些关于我需要添加到ini文件的建议吗?非常感谢。
    # 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
    
    sudo apt-get install php5-readline