2012-07-16 79 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