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

Composer を使って PSR-4 オートロードしている場合、composer.json は必要なくなる

PHP を使った開発でよく使う Composer に関するお話しです。 例えば、composer.json に以下のように記述して開発を行ったとします。 { … “autoload”: { “ps …

PHP

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

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

PHP

PHPって何ができるの?

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

PHP

【PHP】Composer の使い方

Composer は、PHPのパッケージ管理ツールです。利用するパッケージ(ライブラリ)間の依存関係も解決してくれます。 スポンサードリンク 目次1. Composer の特徴2. 対応している PH …

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

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