Instale o php_http no Arch Linux

2

Primeiro instalei a extensão curl para PHP:

$ sudo pacman -S php-curl

e

$ grep curl /etc/php/php.ini
extension=curl.so

Então eu instalei o PHP PEAR

$ sudo pacman -S php-pear

Tendo instalado o pear, eu também instalei o PECL, e agora devo instalar a extensão php_http.

$ pecl install php_http

e

$ grep http.so /etc/php/php.ini
extension=http.so

O http.so é encontrado na pasta / usr / lib / php / moduels / e posteriormente copiado para a pasta / usr / lib / http / modules /.

Agora, até onde eu sei, isso deve ter instalado a extensão php_http, mas quando tento

$req = new HttpRequest();

Eu recebo o erro

Fatal error: Class 'HttpRequest' not found in /srv/http/webcrawler/nettocrawl.php on line 4 
    
por budde 17.08.2011 / 09:27

1 resposta

1

PECL HTTP 2.0 +

A versão mais recente do pecl_http introduz o namespace http. então HttpRequest não estará mais disponível. Siga a documentação do php para usar o namespace e verifique o diretório phpunit fornecido para uso & exemplos.

$req = new http\Client\Request();

Ou uma maneira mais preferida, que permite suporte retroativo

use http\Client\Request as HttpRequest;
$req = new HttpRequest();

Outra

Às vezes, as extensões PECL podem não ser instaladas corretamente. Isso pode acontecer se você misturar pacotes pacman e extensões pecl, mas é muito raro. Eu recomendo instalar o pecl_http manualmente.

Pegue a fonte

shell ~> curl -o pecl_http.tar.gz http://pecl.php.net/get/pecl_http
shell ~> tar zvxf pecl_http.tar.gz
shell ~> cd pecl_http

Configurar, compilar e testar

shell ~/pecl_http> phpize
shell ~/pecl_http> ./configure
shell ~/pecl_http> make
shell ~/pecl_http> make test

Instalar

shell ~/pecl_http> make install

Isto irá mostrar o diretório http.so será instalado. No meu caso, é /usr/lib/php/<timestamp>/ . Uma nota útil.

php.ini & Teste

Edite o arquivo php.ini e adicione a extensão http.so .

shell ~> php -m | grep http

Se http não for exibido, edite novamente o php.ini e o caminho completo das extensões;

extension=/usr/lib/php/<timestamp>/http.so
    
por 02.08.2012 / 21:53