ServBayでカスタムPHPモジュールをコンパイル・インストールする方法
ServBayは、macOSおよびWindowsで利用可能な強力なローカルWeb開発環境です。PHP、Node.js、Python、Go、Java、各種データベース(MySQL, PostgreSQL, MongoDB)、キャッシュ(Redis)、Webサーバー(Caddy, Nginx, Apache)など、幅広いテクノロジースタックを標準搭載し、現代のWeb開発者の多様なニーズに応えます。各パッケージはマルチバージョン対応で、プロジェクトごとに最適な環境が柔軟に選択できます。
ServBayは多くの標準的なPHPモジュールを最初から含んでいますが、開発によっては追加のPHPモジュールが必要となることもあります。例えば、画像処理機能の強化や、特定のサードパーティサービスとの連携などです。
本ガイドでは、ServBay環境下でお使いのPHPバージョンに対して、imagickなどの画像処理モジュールや、sqlsrvなどのMicrosoft SQL ServerドライバなどのカスタムPHPモジュールを、自分でコンパイル・インストールする一連の手順を詳しく解説します。
必要な準備
重要なご注意
PHPモジュールのコンパイルを始める前に、最も重要なのはServBay公式ドキュメントの手順に従って、コンパイル環境の初期化と、必要なシステム環境変数の正しい設定を済ませておくことです。これができていない場合、後述するすべてのコンパイルプロセスで「コマンドが見つからない」「ライブラリやヘッダファイルが無い」等の失敗がほぼ確実に発生します。
ServBayの初期化スクリプトは、PATH
(ServBay内部ビルドツールへのパス)、SERVBAY_PACKAGE_FULL_PATH
(ServBayパッケージのルート)、CPU_NUMBER
(並列コンパイル用コア数)など、重要な環境変数をセットします。これらはすべて、コンパイル工程を正しく動作させる上で不可欠です。
詳細は必ず公式マニュアル:ServBay二次コンパイルの流れ をご参照ください。記載内容を事前に十分に理解し、必要な設定を漏れの無いように徹底してください。
以降のモジュールコンパイル前に、前述のServBayコンパイル環境の初期化が完全にできていること、ならびに各種環境変数が現在のターミナルセッションで正しく設定されていることを必ずご確認ください。
PHPバージョン指定の重要性
ServBayの最大の特徴のひとつは、複数のPHPバージョンを同時にインストール・切り替え可能な点です。この柔軟性により、複数のプロジェクトで異なるPHPバージョンを使い分けることが容易になっています。
ですが、PHPモジュールをコンパイルする際は、特定のPHPバージョン向けに作業する必要があります。ビルド用ツールである phpize
と php-config
は、それぞれ個別のPHPバージョンに紐付けられています。
phpize
: PHP拡張モジュール向けのビルド環境を準備するスクリプトです。config.m4
ファイルを読み込み、C/C++拡張モジュールのconfigure
スクリプトを生成します。php-config
: 対象PHPインストールの各種情報(コンパイラフラグ、インクルードディレクトリ、ライブラリディレクトリ、拡張インストールディレクトリ等)を取得するスクリプトです。configure
スクリプトはこの情報を利用して、モジュールを適切にビルド・リンクします。
このため、phpize
やphp-config
を使う際は、必ずフルパスで対象のPHPバージョンを指定してください。
パス例
ServBayでPHP 8.3向けにビルドする場合:
macOS:
phpize
:/Applications/ServBay/package/php/8.3/current/bin/phpize
php-config
:/Applications/ServBay/package/php/8.3/current/bin/php-config
Windows:
phpize
:C:\ServBay\package\php\8.3\current\bin\phpize
php-config
:C:\ServBay\package\php\8.3\current\bin\php-config
正しいバージョン指定で、ビルドモジュールがPHP環境と互換性を持ちます。これを誤ると、コンパイルエラー、あるいはランタイム時の「シンボルが見つからない」などの問題になります。
本ドキュメントの例はServBayでPHP 8.3を前提にしています。ご自身の環境に合わせて、対象バージョンのパスに必ず読み替えてください。
PHP imagickモジュールのコンパイル手順
imagick
はImageMagickライブラリをもとにしたPHP拡張で、画像のリサイズ・切り抜き・フォーマット変換・ウォーターマーク・合成など多彩な処理が実現できる人気モジュールです。ServBayで特定PHPバージョン向けにimagick
モジュールをコンパイル・インストールする手順は次の通りです。
ステップ1:ImageMagickライブラリの導入
imagick
PHPモジュールの利用には、システムにImageMagickのライブラリが必要です。
macOS
Homebrewパッケージマネージャーの利用を推奨します。Homebrew未導入の場合は公式サイトを参照してください。
ターミナルで下記コマンドを実行し、ImageMagickと開発ライブラリをインストールします:
bash
brew install imagemagick
1
Windows
WindowsではImageMagickを公式サイトから手動でダウンロード・インストールしてください。ImageMagickダウンロードページでバージョンを選択します。
インストール時に開発用ライブラリを選択し、パスもシステム環境変数に追加しましょう。
ステップ2:imagickモジュールのソース取得
続いて、PECL公式サイトから最新imagick
モジュールのソースパッケージを取得します。PECL imagickページで最新版リンクを確認。以下は執筆時バージョン3.7.0
での例です:
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz
1
ステップ3:ソース解凍とディレクトリ移動
ダウンロードしたソースをtar
で解凍し、作業ディレクトリへ移動します:
bash
tar zxvf imagick-3.7.0.tgz
cd imagick-3.7.0
1
2
2
ステップ4:phpizeでビルド環境準備
ソースディレクトリに移動後、対象のPHPバージョン用phpize
ツールを使います(必要な環境変数設定済みを前提に)。例:PHP 8.3の場合
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
成功すると、config.m4
読み込み後、configure
や他のビルド関連ファイルが生成されます。ターミナル出力で問題ないことを確認。
ステップ5:ビルドオプションの設定
生成されたconfigure
スクリプトを実行し、ビルドオプションを指定します。--with-php-config
でPHP 8.3のphp-config
パスを明示します。
bash
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
この工程でImageMagickライブラリや各種ヘッダを検出し、適切なMakefileが生成されます。エラーが出る場合は依存ライブラリやパス不備が原因です。
ステップ6:モジュールのビルド・インストール
Makefile生成後、make
でコンパイルし、make install
で拡張ディレクトリにインストールします。${CPU_NUMBER}
は並列処理数です。
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
はphp-config
の情報にもとづき、モジュールファイルを以下へコピーします:
- macOS:
/Applications/ServBay/package/php/8.3/current/lib/php/extensions/no-debug-non-zts-YYYYMMDD/
- Windows:
C:\ServBay\package\php\8.3\current\lib\php\extensions\no-debug-non-zts-YYYYMMDD\
パスはPHPバージョン・ビルド内容により異なります。
ステップ7:モジュールの有効化
インストール完了後、ServBayのGUIで対象PHPバージョンの設定ファイル内に記述して有効化します。
- ServBayアプリを起動
- 左メニューから「言語」→「PHP」→「PHP 8.3」
- 右側で「PHP」タブを選択し、下部「追加パラメータ」欄に
extension=imagick.so
と入力 - 「保存」をクリックするとPHPプロセスが再起動し、モジュールが有効化されます
ステップ8:モジュールの読み込み確認
モジュールを有効化後、必ずPHPパッケージ自体を再起動し新設定を反映させます。ServBay管理画面で該当PHPパッケージを選択し「再起動」ボタンを利用できます。CLIツールによる再起動方法は公式マニュアルをご参照ください。
再起動後、CLIコマンドでimagickモジュールのロードを確認します:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep imagick
1
このコマンドで、ServBay指定のPHPバージョンを利用しています。-m
で全PHPモジュール一覧を表示。imagickが読み込まれていれば「imagick」の表示があります。
さらに詳細な確認には、Webルート(macOS: /Applications/ServBay/www
、Windows: C:\ServBay\www
)に下記内容のPHPファイル例info.php
を設置します:
php
<?php phpinfo(); ?>
1
ブラウザで http://localhost/info.php
または設定済みドメインにアクセスし、出力ページで「imagick」を検索すると、バージョン・設定内容までチェックできます。
PHP sqlsrv/pdo_sqlsrvモジュールのコンパイル
sqlsrv
およびpdo_sqlsrv
は、PHPでMicrosoft SQL Serverに接続・操作するための公式拡張です。Microsoftが提供するODBCドライバが必要です。
ServBayのPHP環境でSQL Serverに接続するなら、事前にモジュールのコンパイル・インストールが必要です。主な手順は下記となります。
注意:重要な前提条件
sqlsrvモジュールコンパイルの前に、必ずMicrosoft提供のSQL Server ODBCドライバ&関連ツールをインストールしてください。これはServBayの標準搭載ではなく、利用者自身で追加する必要があります。
macOS
Homebrewを使い、以下の手順でMicrosoft ODBCドライバおよびツールを導入できます。ライセンスに同意(HOMEBREW_ACCEPT_EULA=Y
のセット)が必要となります。
bash
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18
1
2
3
2
3
通常は /opt/homebrew/
(Apple Silicon Mac)や /usr/local/
(Intel Mac)以下にインストールされます。ビルド時はこれらのパス指定も必要になります。
Windows
Windowsの場合、公式サイトからODBC Driver for SQL Serverをダウンロード&インストールしてください:
- Microsoft ODBC Driver for SQL Server
- システム適合バージョンをダウンロード・インストール
- ドライバが正しくインストールされ、認識されていることを確認
コンパイルの前提として、これらの依存ライブラリが官製に導入されていることを確認しましょう。
ヒント
sqlsrv
とpdo_sqlsrv
は別々のモジュールですが、ビルド工程はほぼ同様です。以下はsqlsrv
での例です。
ステップ1:Microsoft ODBCドライバ・ツールの導入
(先述の方法に従い、msodbcsql18
およびmssql-tools18
のHomebrewインストールを済ませます)
ステップ2:sqlsrvモジュールのソース取得
PECL公式サイトで最新版sqlsrv
とpdo_sqlsrv
ソースをダウンロードします。PECL sqlsrvページからバージョンリンクを確認。例:5.12.0
版
bash
wget https://pecl.php.net/get/sqlsrv-5.12.0.tgz # sqlsrv
wget https://pecl.php.net/get/pdo_sqlsrv-5.12.0.tgz # pdo_sqlsrv
1
2
2
ステップ3:ソース解凍とディレクトリ移動
ダウンロード後に解凍し、ビルド作業ディレクトリへ移動します:
bash
tar zxvf sqlsrv-5.12.0.tgz
cd sqlsrv-5.12.0
# pdo_sqlsrvでも同様の流れです。以下はsqlsrvでの説明となります。
1
2
3
4
2
3
4
ステップ4:phpizeでビルド環境準備
対象PHPバージョンのphpize
ツールを使ってビルド環境を初期化します。PHP 8.3の場合:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/phpize
1
ステップ5:ビルドオプションの設定(依存パス含む)
configure
スクリプト実行時、sqlsrvはHomebrewインストールのMicrosoft ODBCドライバ+unixODBCライブラリへの依存が強いため、環境変数LDFLAGS
とCPPFLAGS
でそれぞれライブラリ・ヘッダのパスを明示してからconfigure
を呼び出してください。
Homebrewのパス(Intel Macでは/usr/local
、Apple Silicon Macでは/opt/homebrew
)に合わせて調整。以下は/opt/homebrew
の場合の例:
bash
export LDFLAGS="-L/opt/homebrew/lib ${LDFLAGS}"
export CPPFLAGS="-I/opt/homebrew/opt/unixodbc/include -I/opt/homebrew/include ${CPPFLAGS}" # 必要なヘッダ参照
./configure --with-php-config=${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php-config
1
2
3
2
3
LDFLAGS
: リンカでライブラリを探すパス(-L/opt/homebrew/lib
など)CPPFLAGS
: プリプロセッサでヘッダを探すパス(-I/opt/homebrew/opt/unixodbc/include
,-I/opt/homebrew/include
など)。${CPPFLAGS}
,${LDFLAGS}
はShellの既存設定を保持。
ステップ6:モジュールのビルド・インストール
Makefile生成後、make
でコンパイルし、make install
で拡張ディレクトリにインストールします:
bash
make -j ${CPU_NUMBER}
make install
1
2
2
make install
によってsqlsrv.so
やpdo_sqlsrv.so
がServBayの対象PHPバージョンの拡張ディレクトリに配置されます。
ステップ7:モジュールの有効化
インストール後、ServBayのGUIで下記の手順にて対象PHPバージョンにextension=sqlsrv.so
およびextension=pdo_sqlsrv.so
を追加し有効化します。
- ServBayアプリ起動
- 左メニューで「言語」→「PHP」→「PHP 8.3」
- 右側の「PHP」タブで「追加パラメータ」に2行(
extension=sqlsrv.so
、extension=pdo_sqlsrv.so
)記入 - 「保存」をクリックし、自動的にPHPプロセス再起動で新モジュールを反映
ステップ8:モジュールの読み込み確認
モジュール有効化後は必ずPHPソフトウェアパッケージ自体を再起動します。
起動後、下記コマンドでsqlsrvとpdo_sqlsrvのロードを確認:
bash
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep sqlsrv
${SERVBAY_PACKAGE_FULL_PATH}/php/8.3/current/bin/php -m | grep pdo_sqlsrv
1
2
2
出力にそれぞれモジュール名があれば正常動作です。phpinfo()
等による詳細確認も並行して行えます。
よくある質問 (FAQ)
- Q: "Cannot find autoconf"などのエラーが出る場合?
- A: これはほぼ間違いなくServBayコンパイル環境の初期化未完了が原因です。冒頭「必要な準備」セクションに戻り、ServBay二次コンパイルの流れを再確認し、初期化スクリプト+端末の再起動をお試しください。autoconf, automake, libtool等のビルドツール類が正しく環境変数経由で認識されているかが重要です。
- Q:
configure
スクリプトがライブラリやヘッダ発見できずに失敗する場合?- A: 依存ライブラリのインストール漏れ、もしくはパス設定ミスです。
- imagickの場合はImageMagick開発ライブラリが必要です(
brew install imagemagick
)。 - sqlsrvの場合は、Homebrewで
msodbcsql18
とmssql-tools18
のインストールが完了しているか、加えてLDFLAGS
,CPPFLAGS
に正しくパスが指定されているかを必ず確認。例:/opt/homebrew/lib
,/opt/homebrew/opt/unixodbc/include
。 - ServBayのコンパイル環境設定がHomebrewのパスを認識しているか、もしくは手動でHomebrewのbinディレクトリを
PATH
へ追加済みかを要チェック。
- imagickの場合はImageMagick開発ライブラリが必要です(
- A: 依存ライブラリのインストール漏れ、もしくはパス設定ミスです。
- Q:
make
やmake install
が失敗する場合?- A: 原因は多岐に渡ります:
- 依存不足: エラーメッセージから不足ファイル・ライブラリを特定し、必要なパッケージを追加
- 設定ミス:
configure
実行時にパラメータ誤り(特に--with-php-config
のパス指定) - 権限問題: 拡張ディレクトリへの書き込み権限不足。必要に応じて
sudo make install
(ただし安全性に留意) - ソースの問題: ダウンロードしたモジュールソースの破損・不備
- A: 原因は多岐に渡ります:
- Q: 拡張モジュール
.so
は拡張ディレクトリに配置され、iniにも記載したのに、php -m
やphpinfo()
に表示されない場合?- A:
- 最も多い原因: ServBayのPHPパッケージを再起動していない。iniファイル編集後は必ず管理画面またはCLIツールでPHPパッケージ自体を再起動してください。Webサーバ(Caddy/Nginx)再起動だけでは不十分です。
- iniファイルの記法ミス(
extension=modulename.so
)もチェック。 - 拡張ディレクトリのパス指定ミス。
php.ini
中のextension_dir
がphp-config --extension-dir
の出力と一致しているか確認。 - モジュールファイルの破損や互換性不一致。ソースバージョンおよびPHPバージョンの組み合わせを再確認し、再コンパイルも試みましょう。失敗時はServBayインストールディレクトリ以下のログファイルも参照してください。
- A:
まとめ
本ガイドの手順を実践することで、ServBayローカル開発環境で、imagick
やsqlsrv
などのカスタムPHPモジュールを安全かつ確実にコンパイル・インストールできます。特に重要なポイントは以下です。
- ServBayコンパイル環境の初期設定・理解の徹底:すべてのビルド成功がこの事前準備に依存します。
- 正しいPHPバージョンのフルパス指定:
phpize
やphp-config
を対象バージョンに合わせて使い分けましょう。 - 外部依存ライブラリの適切な導入&パス指定:ImageMagickやMicrosoft ODBC等、モジュールごとに必要なライブラリ・ツールをしっかり追加しましょう。
LDFLAGS
,CPPFLAGS
含め、configure
実行前の環境変数設定も忘れずに。 - 拡張モジュールの有効化:
conf.d
ディレクトリのiniファイルで、extension=modulename.so
を正しく記述しましょう。 - PHPパッケージの完全再起動:新たな拡張の適用には、ServBayパッケージ自体の再起動が不可欠です。
ServBayはPHPに限らず、MySQL・PostgreSQL・MongoDB・Redis・Caddy・Nginx・Apache・Node.js・Python・Go・Java・.NET・Ruby・Rustなど多彩なスタックにも標準対応。ACMEによるSSL証明書申請、本物のCORS設定、設定・サイト・DB・SSL証明書三段階自動バックアップ、rootパスワードリセット、ServBay User CAやServBay Public CA等、本格的なローカルHTTPS開発支援まで、豊富な便利機能を搭載しています。
本ガイドが、ServBayのPHP環境拡張をはじめWeb開発をより効率的かつ快適に進めるための一助となれば幸いです。さらなる疑問やトラブル時は、ServBay公式ドキュメントやコミュニティサポートをご参照ください。