web-dev-qa-db-ja.com

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

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

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

  1. PHPをインストールしました
  2. Libcurlをインストールしてからphp5-devをインストールしました
  3. PECL拡張モジュールをインストールしようとしましたが、PHPIZE not foundと表示されます。
32
maniteja

最初に、PEARをapt-get経由でインストールして、PEARPECLの両方が使用する必要なパッケージと配布システムを取得する必要があります。シェルプロンプトから次を入力します。

Sudo apt-get install php-pear

インストールの確認を求められます。 「y」を押して入力します。すべてがうまくいけば、php-pearパッケージをダウンロードしてインストールするのが見えるはずです。

追加のモジュールをコンパイルするために必要なPHP5ソースファイルを取得するには、php5-devパッケージをインストールする必要があります。シェルプロンプトから次を入力します。

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 

ソース

44
Maythux

@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

4
cwd

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です。使用する優先度は、モジュールのタイプによって異なります。 raphf 20の場合は問題ないようです。 (Update:pecl_httpを探している場合、バージョン2以降、rapfhおよびproproの後にロードする必要があります。 、[mods-available/http.iniの優先度を30に設定します。)

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

$ Sudo php5enmod raphf

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

1
David

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

wget http://pear.php.net/go-pear.phar
php go-pear.phar
0
Anuga