在 Arch Linux 上安装 php_http

在 Arch Linux 上安装 php_http

首先我安装了 PHP 的curl 扩展:

$ sudo pacman -S php-curl

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

然后我安装了PHP PEAR

$ sudo pacman -S php-pear

现在安装了 pear,我还安装了 PECL,现在应该能够安装 php_http 扩展。

$ pecl install php_http

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

http.so 位于文件夹 /usr/lib/php/moduels/ 中,然后复制到文件夹 /usr/lib/http/modules/ 。

现在,据我所知,这应该已经安装了 php_http 扩展,但是当我尝试

$req = new HttpRequest();

我收到错误

Fatal error: Class 'HttpRequest' not found in /srv/http/webcrawler/nettocrawl.php on line 4 

答案1

PECL HTTP 2.0+

最新版本的 pecl_http 引入了 http 命名空间。所以HttpRequest将不再可用。关注 php 的文档使用命名空间,并查看提供的 phpunit 目录以获取用法和示例。

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

或者更优选的方式,允许向后支持

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

别的

有时 PECL 扩展可能无法正确安装。如果您混合 pacman 软件包和 pecl 扩展,则可能会发生这种情况,但这种情况非常罕见。我建议手动安装 pecl_http。

抓取源码

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

配置、编译和测试

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

安装

shell ~/pecl_http> make install

http.so这将输出将安装的目录。就我而言,它是/usr/lib/php/<timestamp>/.一个有用的注释。

php.ini 和测试

编辑php.ini文件,并添加http.so扩展名。

shell ~> php -m | grep http

如果http不显示,请重新编辑php.ini、 以及扩展名完整路径;

extension=/usr/lib/php/<timestamp>/http.so

相关内容