まず、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