PECLによる拡張機能のインストール
PHP本体をソース配布からインストールした時、後から追加で拡張機能を共有ライブラリ(.so)としてインストールできます。 これにはPECLという物を使います。 peclコマンド自身はPHP本体と共にインストールされています。

ここでは、opensslという拡張機能を追加で後からインストールする例で説明します。

cd /usr/local/src/php-8.4.2/ext/openssl
cp -i config0.m4 config.m4
phpize
./configure --prefix=/usr/local/php-8.4.2
make
sudo make install

ここで、PHP本体のソース配布に含まれている一部の拡張機能は、このopensslのように config.m4というファイルがなくて代わりに config0.m4 というファイル名になっており、 そのままconfigureを実行するとエラーになってしまいます。 これ、長年ずっとこの状態になっているようで、 一部の拡張機能だけ昔からこうしている理由がよく分かりませんが、 単純にconfig.m4という名前に改名すればOKのようです。

インストールできたら、php.iniを編集して、

extension=openssl

の行頭のコメントを削除して有効にします。 なお、make installを実行すると、PHPのルートが/usr/local/php-8.4.2の場合は、 /usr/local/php-8.4.2/lib/php/extensions/no-debug-zts-20240924/openssl.so というパスに共有ライブラリのファイルが配置されますが、 このディレクトリは php.ini の extension_dir に書く必要はないようです。
php.iniが編集できたら、以下のコマンドを実行します。opensslの行が表示されたらインストール成功です。

php -m | grep openssl

ではもう一つ、pdo_firebird という拡張機能をインストールしてみます。

cd /usr/local/src/php-8.4.2/ext/pdo_firebird
phpize
./configure --prefix=/usr/local/php-8.4.2
make
sudo make install

同じやないか〜い!
はい、先述のconfig.m4の問題を除けば、どの拡張機能も同じ手順で行けるようになっています。 こちらは共有ライブラリの名前が pdo_firebird.so なので、php.ini を同じように編集して有効にします。

Open Source Web Architecture Top

(first uploaded 2025/01/04 last updated 2025/01/04, URANO398)