Arch Linuxにphp_httpをインストールする

Arch Linuxにphp_httpをインストールする

まず、PHPカール拡張をインストールしました。

$ 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/modules/フォルダにあり、/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 拡張が正しくインストールされないことがあります。パックマンパッケージと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

関連情報