ServBay マルチ環境設定ガイド:コマンドラインとWebサービスのPHPバージョン管理
一、コマンドライン環境:.servbay.config
の深い利用
プロジェクトレベルの設定ファイル .servbay.config
を使用して、開発者はコマンドライン環境でのPHPバージョンを正確に制御し、複数プロジェクトの並行開発とバージョンの分離を実現します。
1. コア機能と原理
• 複数バージョンの共存:ServBayは PHP 5.6から8.5-devまでの全バージョンの共存をネイティブでサポートし、各プロジェクトは独立した設定ファイルで必要なバージョンを指定します。
• 非侵入型切り替え:コマンド実行時、ServBayはプロジェクトディレクトリ内の.servbay.config
を自動的に認識し、ダイナミックに該当するPHP環境をロードし、グローバル設定の競合を回避します。
2. 設定方法
プロジェクトのルートディレクトリに.servbay.config
ファイルを作成し、以下の内容を追加します:
# PHPバージョンを指定する(例:PHP 8.5-dev)
PHP_VERSION=8.5
2
有効性の検証:
$ php -v # 出力バージョンは8.5であるべき
$ composer install # 依存解決は現在のPHPバージョンに基づく
2
3. 高度なテクニックと制限
• バージョン互換性チェック: "Class not found" などのエラーが発生した場合、依存パッケージと指定されたPHPバージョンの互換性を確認する必要があります(例えば、PHP 8.xで削除された mcrypt
拡張)。
• グローバルデフォルト値:設定されていない場合、ServBayのグローバルデフォルトバージョンを使用します(ServBayの設定
で変更可能)。
• マルチサービス協調:Node.jsのバージョン設定(NODE_VERSION=20
)と組み合わせて、PHP + Node.jsの二重環境制御を実現します。
4. 実行例
以下に、.servbay.config
の動作メカニズムを実際の例を用いて示します。
二、Webサービス環境:複数バージョンPHPのサイトレベル管理
ServBayの グラフィカルウェブ設定インターフェース は、WebサービスのPHPバージョン管理機能を提供し、コマンドライン環境と完全に独立しています。
1. 設定プロセス
サイトの追加/編集:
• ServBayを開き、Hosts(サイト) タブに入ります。
• + をクリックして新しいサイトを作成するか、既存のサイトを編集します。
• PHP Version のドロップダウンメニューからターゲットバージョン(例:8.3、8.5-devなど)を選択します。パスとドメインのバインディング:
• Root Directory:プロジェクトのpublicディレクトリを指定します(例:Laravelの/Applications/ServBay/www/laravel-app/public
)。
• Domain:カスタムドメインを設定します(例:laravel.host
)、HTTPSの自動発行をサポートします。
2. 技術的実装と最適化
• サービスの分離:各PHPバージョンは独立したプロセスで実行され、メモリリークのバージョン間の汚染を回避します。
• パフォーマンス調整:ARM64/X86_64アーキテクチャに最適化されています。
• エラーのトラブルシューティング:
• ログの確認:/Applications/ServBay/var/log/php/php_error.log
• servbayctl status php 8.5
を使用してプロセスの状態を確認します。
3. マルチサーバー拡張
• Apache/Nginx/Caddyのサポート:ServBay 1.7.0+ではWebサーバーを切り替えることができます。
• データベースの連動:複数バージョンのMySQL/MariaDB/PostgreSQLとの組み合わせ(例:Laravelプロジェクト適応のMariaDB 11.5)。
三、クロス環境コラボレーションのベストプラクティス
シナリオ | コマンドライン設定 | Webサービス設定 | |
---|---|---|---|
レガシーシステムのメンテナンス | .servbay.config でPHP 5.6を設定 | サイト設定でPHP 5.6を選択 | |
Laravel 11開発 | PHP 8.3 + Node 20を設定 | ドメインをバインドし、HTTPSを有効化 | |
新しいバージョンのテスト | PHP 8.5-devを使用 | Redis 7.xキャッシュの最適化と組み合わせ |
注意事項:
• コマンドラインとWebサービスのPHPモジュールには差異がある場合があります(例えば、CLIモードではデフォルトでopcache
が無効です)。
• ServBay Runtimeを1.0.20/1.1.20+にアップグレードして最新のPHP機能を取得してください。
上記のシナリオごとの管理を通じて、開発者はServBayの多バージョン制御能力を十分に活かし、開発の柔軟性と本番環境の一貫性を兼ね備えた運用が可能になります。