PHP

pecl install xxxx する際は、php -v と php-config –version が一致しているか確認してから行う

投稿日:2019年8月23日 更新日:

1. はじめに

PHP では C言語で記述された拡張モジュールを pecl コマンドでインストールすることができます(参考:PHP: PECL インストール入門 – Manual)。

pecl install モジュール名 というコマンドでインストールを行うのですが、これを実行する前に確認しておくとよい項目を紹介します。

2. pecl install xxxx する前に確認すること

以下の2つのコマンドによって表示されるバージョン情報が一致しているかどうかを確認します。

$ php -v
$ php-config --version

php-config --version の方が古い場合があるのですが、その場合は php-dev といった “dev” のついたパッケージをインストールします。

例えば、php -v が “PHP 7.3.x” で php-config --version が “PHP 7.2.x” であれば、php7.3-dev というパッケージをインストールします(これはUbuntu の場合です)。インストールするコマンドは以下です。

$ sudo apt install php7.3-dev

3. どのような問題が起きるか

以上のことを確認せずに pecl install xxxx すると、PHP を実行する毎に以下の警告が表示されます。

警告メッセージの例

PHP Warning:  PHP Startup: xxxxxx: Unable to initialize module
Module compiled with module API=20170718
PHP    compiled with module API=20180731

PHP自体とモジュールのバージョンが異なっています。

このような警告が表示されたら、PHPのバージョンに合わせた php-dev パッケージをインストールすればよいのですが、それでも警告が出るようなら先程インストールしたモジュールを一旦アンインストールしてから再度インストールします。

$ sudo pecl uninstall モジュール名
$ sudo pecl install モジュール名

📂-PHP

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PHP

PHP: ob_start() 関数によるバッファリングの動作

PHP の ob_start() 関数によるバッファリングの動作について説明します。

PHPでのエラー処理・例外処理

目次1. PHPの例外クラス2. 例外クラスの使い分け3. 独自アプリ用例外クラスの作成例と利用例4. 資料 1. PHPの例外クラス PHPには以下の例外クラスが組み込まれています。 PHPの例外ク …

Google App Engine

SendGrid でメール送信する(Google App Engine, PHP7)

Google App Engine (runtime: php72) の環境における、SendGrid を使ったメール送信方法について説明しています。

PHP

PHPって何ができるの?

「PHPって何ができるか?」を知るために、最小限の PHP を使った Webページが Webブラウザにどんなデータを返すのか? を見ていきます。 スポンサードリンク 目次1. この記事が前提としている …

PHP

CentOS 6.8 の PHPを 5.4 から 7 に変更する

PHPのバージョンがいまだに 5.4のままの CentOS 6.8 があったので PHP 7 に更新した;) 環境 この環境では、Nginx + FPM + PHP が動いている。 手順 まずは、関連 …