답변:
dotdeb 에서 php5-cli를 설치 한 후 php5-readline 패키지를 설치하십시오.
apt-get install php5-readline
php5-readline
는 jessie 및 sid의 기본 아카이브에서 사용 가능합니다. 그리고 당신은 php5-cli
from dotdeb 가 필요하지 않습니다 .
완전한 PHP 패키지 재 컴파일을 제안하는 Gilles의 답변 외에도 PHP 5.4를 기다릴 수도 있습니다. 5.4에서는 필 요한 모든 부품이 리드 라인 모듈에있는 리드 라인 기능을 재구성하여 독립형으로 빌드 할 수 있습니다.
$ 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에서로드 할 수있는 a로 끝납니다 ( make install
이동합니다 extension_dir
)
대안으로 배포자는 readline 모듈 (readline이 아닌 libedit에 링크 될 수 있음)을 배송 할 수 있으며 대화식 모드를 사용할 수 있습니다.
이 모든 것이 현재 당신을 도울 수는 없지만 (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 래퍼이며, 모든 read-eval-print 루프에 대한 명령 줄 버전 및 기록을 제공합니다. 그것은 일반적인 래퍼이기 때문에 PHP에 따른 완성을 얻지 못할 것입니다.
또는 소스 패키지를 가져 와서 readline 지원으로 다시 빌드하십시오. 라이센스 문제 로 인해 Readline 지원이 생략 되었지만이 문제는 Readline과 연결된 PHP5의 배포 만 금지하며 사용을 금지하지는 않습니다.
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
rlwrap
많이 도움이되지 않는 것 같습니다. 을 실행 rlwrap php5
하면 enter를 입력 echo 1;
한 다음 return 키를 누른 다음 Ctrl-D (입력 끝) echo 1;
를 누르면 결과 대신 입력이 출력 됩니다 (1). 라이센스 문제라는 점에 유의 해 주셔서 감사합니다.
rlwrap php5
그냥 php5
이전 수 있도록 명령 줄 에디션 이외. 을 입력 <?php echo 1;?>
하면 출력은 1
이지만 두 경우 모두 즉시 방출되지 않습니다. 인터넷 검색은 php5
단순히 PHP REPL이 아니며 phpsh 와 같은 것을 사용해야한다고 제안 합니다.
<?php
또는 ?>
대화식 쉘에 입력하지 마십시오 . PHP에 완전한 REPL이 없다는 것에 동의합니다. 그러나 작동하는 readline 지원으로 컴파일 된 버전 (예 : 링크 된 dotdeb 패키지)을 사용하면 enter를 누르면 즉시 1 (또는 실제 출력이 무엇이든)이 출력됩니다. 나는 rlwrap과 readline 사이에 큰 차이가 없다는 것에 동의합니다 (라인 편집 및 히스토리 외에도 훌륭하지만 즉각적인 출력만큼 유용하지는 않습니다).
이 시도:
$ php -a
Interactive mode enabled
<?php echo "hi!"; ?>
Ctrl-d를 누르십시오
<?php ?>
블록. 나는 그것을 알지 못했고, 그것은 내가 Gilles를 일찍 오해했음을 보여줍니다.
이 중 어느 것도 나를 위해 일하지 않았습니다. 대신 http://www.phpsh.org/ 를 사용 하십시오 .
데비안 제시와 데비안 sid에서 :
sudo apt-get install php5 php5-readline
그때
php -a
Interactive mode enabled
php > echo 1+2;
3
php >
php>
나를 위해 프롬프트가 없습니다 :(