PHPモジュールのコンパイル方法
ServBayを使ったPHP開発を行う際には、PHPの機能を拡張するために追加のPHPモジュールをコンパイルしてインストールする必要があるかもしれません。本記事では、ServBay環境でPHPモジュールをコンパイルする方法について説明します。具体的には、imagick
モジュールとsqlsrv
モジュールのコンパイル手順を紹介します。
前提条件
注意
下記の記事に従い、必ずコンパイル環境を初期化し、システム環境変数を設定してください。さもなければ、以下の操作は失敗します!
PHPモジュールのコンパイルを開始する前に、コンパイル環境の初期化が完了していることを確認してください。コンパイル環境の初期化方法についての詳細な手順は、ドキュメントServBayを使用した二次コンパイルを参照してください。
PHPバージョン指定の重要性
ServBayには複数のPHPバージョンが付属しており、phpize
やphp-config
、その他のツールを使ってコンパイルを行う際には、使用するPHPバージョンを必ず指定する必要があります。異なるPHPバージョンには異なる設定や依存関係があるため、正しいバージョンを選択することでコンパイルエラーやランタイム問題を回避できます。
ここではPHP 8.3
を例にします。
PHP imagickモジュールのコンパイル
imagick
モジュールはPHPの拡張機能で、画像処理を行うためのものです。imagick
モジュールをコンパイルする手順は以下の通りです。
手順1:ソースコードをダウンロード
まず、PECLからimagick
モジュールのソースコードパッケージをダウンロードします。
wget https://pecl.php.net/get/imagick-3.7.0.tgz
手順2:ソースコードパッケージを解凍
ダウンロードしたソースコードパッケージを解凍します。
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
2
手順3:設定ファイルを生成
phpize
を使用して設定ファイルを生成します。このプロセスでは、必ず使用するPHPバージョンを指定してください。例えば、PHP 8.3を使用している場合は、次のコマンドを実行します。
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
手順4:コンパイルオプションの設定
コンパイルオプションを設定し、PHPの設定パスを指定します。
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
手順5:コンパイルとインストール
imagick
モジュールをコンパイルしてインストールします。
make -j ${CPU_NUMBER}
make install
2
手順6:モジュールを有効化
PHPのconf.d
ディレクトリにimagick.ini
ファイルを作成して、imagick
モジュールを有効化します。例えば:
echo "extension=imagick.so" > /Applications/ServBay/package/etc/php/8.3/conf.d/imagick.ini
手順7:モジュールのロードを確認
ServBay管理パネルでPHPサービスを再起動し、コマンドラインを使用してモジュールが正常にロードされたか確認します。
php-8.3 -m | grep imagick
モジュールが正常にロードされていれば、出力結果にimagick
が表示されるはずです。
PHP sqlsrvモジュールのコンパイル
注意
先決条件:macOSでsqlsrvをコンパイルするには、MicrosoftのODBCドライバmsodbcsql18
とmssql-tools18
を先にインストールする必要があります。
ServBayにはMS ODBCが付属していないため、Homebrewを使用してインストールしてください。
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
2
3
sqlsrv
モジュールはPHPの拡張機能で、Microsoft SQL Serverとの対話に使用されます。sqlsrv
モジュールをコンパイルする手順は以下の通りです。
手順1:ソースコードをダウンロード
まず、PECLからsqlsrv
モジュールのソースコードパッケージをダウンロードします。
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz
手順2:ソースコードパッケージを解凍
ダウンロードしたソースコードパッケージを解凍します。
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
2
手順3:設定ファイルを生成
phpize
を使用して設定ファイルを生成します。このプロセスでは、必ず使用するPHPバージョンを指定してください。例えば、PHP 8.3を使用している場合は、次のコマンドを実行します。
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
手順4:コンパイルオプションの設定
コンパイルオプションを設定し、PHPの設定パスを指定します。
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include ${CPPFLAGS}"
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
2
3
手順5:コンパイルとインストール
sqlsrv
モジュールをコンパイルしてインストールします。
make -j ${CPU_NUMBER}
make install
2
手順6:モジュールを有効化
PHPのconf.d
ディレクトリにsqlsrv.ini
ファイルを作成して、sqlsrv
モジュールを有効化します。例えば:
echo "extension=sqlsrv.so" > /Applications/ServBay/package/etc/php/8.3/conf.d/sqlsrv.ini
手順7:モジュールのロードを確認
ServBay管理パネルでPHPサービスを再起動し、コマンドラインを使用してモジュールが正常にロードされたか確認します。
php-8.3 -m | grep sqlsrv
モジュールが正常にロードされていれば、出力結果にsqlsrv
が表示されるはずです。
まとめ
上記の手順に従うことで、ServBay環境内で必要なPHPモジュールをコンパイルおよびインストールできます。コンパイル中は必ず正しいPHPバージョンを指定し、モジュールがPHP環境と互換性があることを確認してください。この記事がPHPモジュールのコンパイルと有効化作業の成功に役立つことを願っています。