PECLパッケージをUbuntuにインストールする


32

私はそれを100回試してみましたが、私はUbuntuが初めてなので、エラーの束で終わりましたが、誰も私を助けてくれるのか分からないのですか?

ここに私がやったことがあります:

  1. PHPをインストールしました
  2. libcurlをインストールしてからphp5-devをインストールしました
  3. PECL拡張モジュールをインストールしようとしPHPIZEましたが、見つかりませんと表示されます。

Ask Ubuntuへようこそ。発行した完全なコマンドと完全なエラーメッセージをお知らせください。質問テキストを編集して、情報を追加してください。
MadMike 14年

回答:


48

まず、apt-get両方PEARPECL使用する必要なパッケージと配布システムを取得するために、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 

ソース


これらは私がまったく同じ手順でした(同じソースから)まだ喜びはありません:/ Windowsで利用できないいくつかの拡張機能のためにUbuntuに移動しましたが、これは私が新しいのでとても混乱しています。
マニテヤ14年

1
注意:makeこれを行う前にインストールする必要があるかもしれません。単純に行うsudo apt-get install make
Tomanow

5
あなたがPHP7を使用している場合は、たいと思うphp7.0-dev代わりに、パッケージを:sudo apt-get install php7.0-dev
グラハム・スワン

4

@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.6http_get_request_headers関数を使用できませんでしたが、代わりに名前空間バージョンを使用する必要があったため、\http\Env::getRequestHeader() 詳細はこちらを参照してください

ps:完了したらapacheを再起動することを忘れないでください(service apache2 restart


良い電話; libcre-devを探しに行く前に、あなたの答えを読んでほしいと思います。私はまたしていることを追加する必要があります私の場合、私は追加する必要がextension=json.sohttp.soの行にもかかわらず、すでに持つjson.iniに含まれるファイルをconf.d
M1ke 14

1

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 installraphf(およびそれとともにインストールされる他のモジュール)の構成ファイルを作成しない場合がありますが、独自に作成することができます。

$ sudo touch /etc/php5/mods-available/raphf.ini

次に、次の行に書き込みます。

; configuration for php raphf module
; priority=20
extension=raphf.so

デフォルトの優先度は20です。使用する優先度は、モジュールのタイプによって異なります。以下のためにraphf20罰金です。(更新:pecl_httpを探している場合、バージョン2の時点でrapfhandの後にロードする必要があるproproため、mods-available/http.initoに優先順位を設定し30ます。)

それにより、モジュールを有効にできます:

$ sudo php5enmod raphf

(注:私の答えはUbuntu 14.04に依存しますが、13.04でも同じように機能する場合があります。http://www.lornajane.net/posts/2012/managing-php-5-4-extensions-on-ubuntuを参照してください


1

今では、この方法でPEARをインストールして、ソースから取得します。

wget http://pear.php.net/go-pear.phar
php go-pear.phar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.