Я пытаюсь запустить PHP в интерактивном режиме из окна терминала и когда я запускаю команду
php -a
он говорит «Интерактивный режим включен», но не показывает мне подсказку «php->». Я должен нажать кнопку управления z, чтобы выйти из интерактивного режима, но я могу выполнять любые команды, в то время как интерактивный режим «включен»,
Кто-нибудь знает, как это исправить
Интерактивная оболочка PHP требует, чтобы GNL readline или libedit статически ставилась в двоичный файл PHP. Многие дистрибутивы предоставляют только общие библиотеки, содержащие только расширение readline.
Если вы скомпилируете PHP самостоятельно,
./configure --with-readline
или
./configure --with-libedit
(обратите внимание, что вы, возможно, не можете перераспределять двоичные файлы PHP, связанные с readline из-за несовместимости между GPl и лицензией PHP, тогда вам придется использовать libedit, но я сомневаюсь, что вы вообще хотите перераспределить PHP. Использование, конечно, хорошо. Это не имеет значения для ваших PHP-базовых приложений. Но это одна из причин, почему это не работает для большинства дистрибутивов …)
Редактировать: я просто написал ошибку PHP, чтобы включить режим readline с общей сборкой, тоже, может быть, я нахожу время для ее реализации: http://bugs.php.net/bug.php?id=53878
Существует решение (эмулятор), которое хорошо работает для меня:
Существует еще одно отличное решение (созданное Facebook btw ) phpsh
Своими словами:
phpsh – это интерактивная оболочка для php, которая содержит историю чтения, завершение вкладки, быстрый доступ к документации. Он был разработан на Facebook и по иронии судьбы, написан в основном на python. Он является открытым исходным кодом и выпущен под лицензией BSD.
Я использую его некоторое время, и это действительно хорошо, во многих отношениях даже лучше, чем просто php -a