Как установить PHP CLI с помощью интерактивной подсказки на Debian Wheezy?

Когда я устанавливаю php5-cli в Debian Wheezy (в настоящее время тестирует), интерактивное приглашение очень непригодно из-за отсутствия поддержки readline (ошибка 341868 ). Какой самый простой способ установить версию, связанную с libreadline (для редактирования используемой строки)?

Используйте стабильные пакеты Dotdeb Debian. Несмотря на то, что в документации это не отмечается, стабильные пакеты в настоящее время отлично работают с Wheezy / testing. Следуя инструкциям, выполните следующие действия:

apt-get install php5-cli 

как корень.

После установки php5- cli из dotdeb установите пакет php5-readline.

 apt-get install php5-readline 

В дополнение к ответу Gilles, который предлагает перекомпилировать полный пакет PHP, вы также можете дождаться PHP 5.4. В 5.4 я реструктурировал функциональность readline, что все необходимые части находятся в модуле readline, поэтому вы можете построить это отдельно.

 $ wget ...php-5.4.0.tar.bz2 $ tar xjf php-5.4.0.tar.bz2 $ cd php-5.4.0/ext/readline $ phpize && ./configure && make 

Затем вы получите modules/readline.so которые могут быть загружены из php.ini ( make install переместит его на extension_dir )

В качестве альтернативы дистрибьютор может отправить модуль readline (возможно, связан с libedit, а не с readline), и интерактивный режим будет доступен.

Это все не поможет вам сейчас (поскольку PHP 5.4. Еще не вышел), но может помочь другим найти этот вопрос позже.

Некоторые подробности в моем блоге: http://schlueters.de/blog/archives/133-Now-in-trunk-Improved-interactive-shell.html

Изменить: на самом деле сообщение в блоге старше этого изменения, но все равно может быть интересно. Немного информации в отчете об ошибке # 53878, но не так много … после выпуска http://php.net/commandline.interactive должно быть больше.

Установите rlwrap и запустите rlwrap php5 . Rlwrap – это общая оболочка readline, она предоставляет версию командной строки и историю для любого цикла чтения-eval-print. Поскольку это общая оболочка, вы не получите никакого завершения для PHP.

Кроме того, получите исходный пакет и перестройте его с поддержкой readline. Поддержка Readline была оставлена ​​только из-за проблем с лицензированием , но эти проблемы запрещают распространять PHP5, связанные с readline, они не запрещают вам использовать его.

 apt-get source php5-cli apt-get install build-essential fakeroot apt-get build-dep php5-cli cd php5-*/ # Edit debian/rules to configure with readline support # Add an entry to debian/changelog to remember what you did dpkg-buildpackage -rfakeroot -us -uc -b -nc 

Попробуй это:

 $ php -a Interactive mode enabled <?php echo "hi!"; ?> 

Пресса Ctrl-d

Для пользователей Ubuntu php5-readline – это дополнительный пакет, который необходимо установить для использования командной строки php:

 sudo apt-get install php5-cli php5-readline sudo php5enmod readline 

Я должен был сделать это на своем Ubuntu 14.04.

Ни один из них не работал для меня. Вместо этого используйте http://www.phpsh.org/ .

В debian jessie и в debian sid используют:

 sudo apt-get install php5 php5-readline 

тогда

 php -a Interactive mode enabled php > echo 1+2; 3 php >