我正在運行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