Como instalo uma CLI do PHP com um prompt interativo utilizável no Debian Wheezy?

10

Quando eu instalo o php5-cli no Debian Wheezy (atualmente testando), o prompt interativo é muito inutilizável devido a falta de suporte readline (bug 341868 ). Qual é a maneira mais fácil de instalar uma versão vinculada ao libreadline (para edição de linha utilizável)?

    
por Matthew Flaschen 09.04.2011 / 22:44

8 respostas

10

Use os pacotes estáveis Debian Dotdeb . Embora a documentação não observe isso, os pacotes estáveis atualmente funcionam bem com o Wheezy / testing. Depois de seguir as instruções, faça:

apt-get install php5-cli

como root.

    
por 09.04.2011 / 22:46
6

Depois de instalar o php5-cli de dotdeb , instale o pacote php5-readline.

apt-get install php5-readline
    
por 06.11.2013 / 18:48
4

Como complemento à resposta de Gilles, que sugere recompilar o pacote PHP completo, você também pode esperar pelo PHP 5.4. Em 5.4, reestruturei a funcionalidade de readline de que todas as peças necessárias estão no módulo de readline, para que você possa construir esse autônomo.

$ 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

Então você vai acabar com um modules/readline.so que pode ser carregado do php.ini ( make install irá movê-lo para extension_dir )

Como alternativa, o distribuidor pode enviar o módulo readline (talvez ligado ao libedit, não readline) e o modo interativo estará disponível.

Isso tudo não vai ajudá-lo agora (como o PHP 5.4 ainda não foi lançado), mas pode ajudar outras pessoas a encontrarem essa questão mais tarde.

Mais alguns detalhes no meu blog: link

Editar: na verdade, a postagem do blog é mais antiga que essa alteração, mas ainda pode ser interessante. Um pouco de informação está no relatório de bug # 53878 mas não muito ... após o lançamento link deve ter mais.

    
por 29.10.2011 / 01:25
3

Instale rlwrap e execute rlwrap php5 . O Rlwrap é um invólucro de readline genérico, ele fornece edição de linha de comando e histórico para qualquer loop de leitura e impressão-eval. Como é um invólucro genérico, você não receberá nenhuma conclusão específica do PHP.

Como alternativa, obtenha o pacote de origem e reconstrua-o com o suporte readline. O suporte Readline foi deixado de fora apenas devido a problemas de licenciamento , mas esses problemas apenas proíbem distribuindo PHP5 linkado com readline, eles não o proíbem de usá-lo.

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
    
por 09.04.2011 / 22:56
3

Tente isto:

$ php -a
Interactive mode enabled

<?php echo "hi!"; ?>

A imprensa Ctrl-d

    
por 20.05.2011 / 11:15
3

Para usuários do Ubuntu, o php5-readline é o pacote adicional que você precisa instalar para ter um prompt de comando php utilizável:

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

Eu tive que fazer isso no meu Ubuntu 14.04.

    
por 06.09.2014 / 14:21
1

Nada disso funcionou para mim. Use o link em seu lugar.

    
por 17.10.2012 / 21:03
1

No debian jessie e no uso sid do debian:

sudo apt-get install php5 php5-readline

então

php -a
Interactive mode enabled

php > echo 1+2;
3
php >
    
por 06.03.2015 / 08:40