web-dev-qa-db-ja.com

pecl_http拡張機能がロードされていません

何らかの理由で、pecl_http拡張子が次の内容でtest.phpファイルに表示されません。

<?php phpinfo(); ?>

以下を使用してpecl_httpをインストールしました。

peclインストールpecl_http

インストールは成功し、次のコマンドを実行して確認しました。

peclリスト

Installed packages, channel pecl.php.net:
=========================================
Package   Version State
mongo     1.2.10  stable
pecl_http 1.7.4   stable

次に、以下を使用してphp.iniファイルを見つけました。

php -i | grep '構成ファイル'

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

私はそれをvimで編集して追加しました:

extension = http.so

最後に、NginxとPHP-FastCGIを再起動しました。

/etc/init.d/nginx restart
/etc/init.d/php-fastcgi stop
/etc/init.d/php-fastcgi start

私のPHP extension_dirは:

/ usr/lib/php5/20090626

「http.so」がそのディレクトリにあることを確認しました。

ロードされない理由はありますか?

私のマシンはLinodeでUbuntu10.04 LTS64ビットプロファイルを実行しています。私がインストールした他の拡張機能は、NewRelicとMongoだけです。

ありがとう!

1
Tegan Snyder

Phpiniファイルのパスを見てください。

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

CLIはコマンドラインインターフェイスです。 Webサーバーからphpinfo()を確認し、正しいphp.iniを編集します。

4
johannes

答えを探してここに到着したかもしれないが、受け入れられたものがあなたのケースに合わなかった他の人のために-私はあなたの解決策を持っているかもしれません!

セットアップの問題はありませんでした-少なくとも私の知る限りでは。私はnginx + php5-fpmを実行しています。 php.iniファイルが正しく構成され、他のすべての拡張機能が正しく機能していました。phpinfo()またはphp--iniでテストしてください。

Pecl_http(HttpRequest)に関する私の問題は、拡張機能のバージョン(2.0.4)でした。コマンドラインで実行してバージョンを確認します

pecl list

Pecl_http-2.0.4を動作させることができませんでしたが、実行することはできました

pecl uninstall pecl_http

その後

pecl install pecl_http-1.7.6。 libcurlもインストールされていることを確認してください。インストールされていない場合、インストールが失敗する可能性があります。

Php5-fpmと私のウェブサーバー(nginx)を再起動した後、すべてが完全に機能していました!


追加のヘルプ:

インストールする前に(そしてpearをインストールする前に)、fpmでphp.iniを使用していると仮定して、次の2つのコマンドを実行することをお勧めします。または、構成に従ってパスを書き込むこともできます。 /php.ini pecl config-set php_ini /etc/php5/fpm/php.ini

これにより、peclはWebサーバーで使用しているphp.iniファイルを認識し、extension = http.soを正しい場所に追加します。これは私を助けたので、多分それはあなたも助けるでしょう!

6
amurrell

AURから1つのパッケージをインストールした場合:

pecl_http

そして私はpecl_http PHP拡張子:

extension = http.so

ファイル内:

/etc/php/conf.d/http.ini

このコマンドから:

php test.php

私が得た:

PHP警告:必要なモジュール「iconv」が行0の不明にロードされていないため、モジュール「http」をロードできません

コメントの削除:

extension = iconv.so

ファイル内:

/etc/php/php.ini

問題を解決しました。

Linuxディストリビューション:Manjaro(Arch Linuxベース)。

0
s77s