回答:
まず、apt-get
両方PEAR
をPECL
使用する必要なパッケージと配布システムを取得するために、PEARをインストールする必要があります。シェルプロンプトから次を入力します。
sudo apt-get install php-pear
インストールの確認を求められます。「y」を押して入力します。すべてがうまくいけば、php-pearパッケージをダウンロードしてインストールするのが見えるはずです。
次に、php5-devパッケージをインストールして、追加モジュールをコンパイルするために必要なPHP5ソースファイルを取得する必要があります。シェルプロンプトから次を入力します。
sudo apt-get install php5-dev
php5-devパッケージをインストールせず、「pear install」を使用してPECL拡張機能をインストールしようとすると、次のエラーが表示されます。
sh: phpize: not found
ERROR: `phpize’ failed
PECL_HTTP拡張機能には、追加の依存パッケージをインストールする必要があります。他の拡張機能については、おそらくこれをスキップできます。
sudo apt-get install libcurl3-openssl-dev
これで、実際に拡張機能をインストールする準備が整いました。シェルプロンプトから次のように入力しますが、インストールするPECL拡張機能名で「pecl_http」を置き換えます。
sudo pecl install pecl_http
インストーラーは、インストールしている拡張機能の特定のオプションについて尋ねる場合があります。実装に特定のオプションを設定する場合を除き、Enterキーを1回以上押すだけですべてのデフォルトを受け入れることができます。すべてがうまくいけば、モジュールはダウンロード、ビルド、インストールされます。
インストールが完了すると、おそらくphp.iniファイルに「extension =」行を追加するように求められます。お好みのテキストエディターでphp.iniファイルを開き、「Dynamic Extensions」というラベルの付いたセクションの下に行を追加します。Ubuntuでは、php.iniファイルは/ etc / php5 / apache2フォルダーにあるようです。
sudo nano /etc/php5/apache2/php.ini
この例では、pecl_http拡張機能のインストールで「extension = http.so」を追加するように求められました。php.iniファイルが更新されたので、Apacheを再起動して新しい拡張機能をロードする必要があります。
sudo /etc/init.d/apache2 restart
make
これを行う前にインストールする必要があるかもしれません。単純に行うsudo apt-get install make
php7.0-dev
代わりに、パッケージを:sudo apt-get install php7.0-dev
@Askの答えに加えて、私もする必要がありました:
sudo apt-get install libpcre3-dev
pecl install pecl_http
私がこのエラーを取得していたため、実行する前にpcre.h
:
致命的なエラー:pcre.h:そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。
また、代わりに編集のphp.ini
ファイルを、私はと呼ばれる新しいファイルを作成pecl-http.ini
してconf.d
どこのサブディレクトリphp.ini
のファイルだったが、(Ubuntuの上/etc/php5/apache2/conf.d
)
そして、次の3行を追加する必要がありました。
extension=raphf.so
extension=propro.so
extension=http.so
最後に、このインストールされたバージョン2.0.6
はhttp_get_request_headers
関数を使用できませんでしたが、代わりに名前空間バージョンを使用する必要があったため、\http\Env::getRequestHeader()
詳細はこちらを参照してください
ps:完了したらapacheを再起動することを忘れないでください(service apache2 restart
)
extension=json.so
前http.so
の行にもかかわらず、すでに持つjson.ini
に含まれるファイルをconf.d
。
Maythuxとcwdの回答に加えて、これらの変更は更新時に失われる可能性があるため、php.iniファイルを編集したくない場合があります。
Debian(およびUbuntu)は、Apacheモジュールと同じ方法でphpモジュールを処理します。をご覧ください/etc/php5
。次のようなディレクトリがあります。
apache2/
cli/
mods-available/
調べると、mods-available
次のようなファイルがいくつか表示されます。
curl.ini
gd.ini
json.ini
mysql.ini
…
すべてのAPI(apache、cli、cgi)でこれらの利用可能なMODを有効/無効にするには、コマンドを使用するphp5enmod
か、または次のphp5dismod
ようにします。
$ sudo php5enmod curl
それぞれ
$ sudo php5dismod curl
これらは、apache2/conf.d/
およびのモジュール構成ファイルへのシンボリックリンクを作成(または削除)しますcli/conf.d/
。
sapiを指定してmodを有効/無効にすることもできます(この場合はApache):
$ sudo php5enmod -s apache2
pecl install
raphf
(およびそれとともにインストールされる他のモジュール)の構成ファイルを作成しない場合がありますが、独自に作成することができます。
$ sudo touch /etc/php5/mods-available/raphf.ini
次に、次の行に書き込みます。
; configuration for php raphf module
; priority=20
extension=raphf.so
デフォルトの優先度は20です。使用する優先度は、モジュールのタイプによって異なります。以下のためにraphf
20罰金です。(更新:pecl_httpを探している場合、バージョン2の時点でrapfh
andの後にロードする必要があるpropro
ため、mods-available/http.ini
toに優先順位を設定し30
ます。)
それにより、モジュールを有効にできます:
$ sudo php5enmod raphf
(注:私の答えはUbuntu 14.04に依存しますが、13.04でも同じように機能する場合があります。http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntuを参照してください)