phpbrew
GitHub概要
phpbrew/phpbrew
Brew & manage PHP versions in pure PHP at HOME
スター5,489
ウォッチ127
フォーク370
作成日:2011年9月27日
言語:Makefile
ライセンス:MIT License
トピックス
php-versionsphpbrew
スター履歴
データ取得日時: 2025/7/20 03:05
言語バージョン管理ツール
phpbrew
概要
phpbrewは、PHPの複数バージョンをホームディレクトリにビルド・インストールして管理するツールです。純粋なPHPで書かれており、PHPのコンパイルオプションを「バリアント」として簡略化し、拡張機能の管理も統合的に行えます。開発環境で異なるPHPバージョンを必要とするプロジェクトを扱う開発者に最適です。
詳細
主な特徴
- バリアントシステム: 複雑なconfigureオプションを簡潔に指定
- 拡張機能管理: PECLと統合した拡張機能のインストール・管理
- Apacheモジュール対応: mod_phpの複数バージョン管理
- ホームディレクトリインストール: root権限不要
- シェル統合: bash/zshでの自動バージョン切り替え
- 自動機能検出: HomebrewやMacPortsのパス最適化
動作原理
phpbrewはPHPソースコードをダウンロードし、指定されたバリアントに基づいてコンパイル・インストールします。各バージョンは~/.phpbrew/php/以下に独立して保存され、シェルの初期化スクリプトによってPATHが動的に切り替わります。
バリアント種類
- default: 一般的な開発に必要な基本セット
- +mysql +pdo: データベース接続機能
- +sqlite: SQLiteサポート
- +debug: デバッグシンボル付きビルド
- +fpm: FastCGI Process Manager
- +opcache: OPcacheの有効化
メリット・デメリット
メリット
- 完全な制御: コンパイルオプションを細かく指定可能
- 拡張機能の柔軟性: 各PHPバージョンごとに異なる拡張セット
- 最新版への対応: 新しいPHPバージョンも即座にビルド可能
- 開発環境最適化: デバッグビルドや特殊な設定が容易
- 複数SAPI対応: CLI、FPM、Apacheモジュールを同時管理
- 環境分離: システムPHPに影響を与えない
デメリット
- ビルド時間: ソースからのコンパイルに時間がかかる
- 依存関係の複雑さ: 開発用ライブラリの事前インストールが必要
- ディスク使用量: 各バージョンが完全なPHP環境を保持
- 初期設定の手間: シェル設定やビルド環境の準備が必要
- Windows非対応: Unix系OSのみサポート
- トラブルシューティング: ビルドエラーの解決に知識が必要
参考ページ
書き方の例
インストール
# phpbrewのダウンロードとインストール
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar
sudo mv phpbrew.phar /usr/local/bin/phpbrew
# 初期化
phpbrew init
# シェル設定(.bashrcまたは.zshrcに追加)
echo '[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc' >> ~/.bashrc
source ~/.bashrc
# macOSでの依存関係インストール
brew install automake autoconf curl pcre re2c mhash libtool icu4c gettext jpeg libxml2 mcrypt gmp libevent
brew link icu4c --force
# Ubuntuでの依存関係インストール
sudo apt-get update
sudo apt-get install -y php build-essential libxml2-dev libssl-dev libbz2-dev \
libcurl4-openssl-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev \
libtidy-dev libxslt-dev libzip-dev
PHPバージョンのインストール
# 利用可能なバージョンの確認
phpbrew known
phpbrew known --old # 古いバージョンも表示
# 基本的なインストール
phpbrew install 8.3.0 +default
phpbrew install 8.2.13 +default +fpm
# データベース対応でインストール
phpbrew install 8.1.26 +default +mysql +pdo +pgsql
# 開発用フルセット
phpbrew install 8.3.0 +default +mysql +pdo +pgsql +sqlite \
+curl +gd +intl +mbstring +opcache +openssl +xml +zip +fpm +debug
# スレッドセーフ版(ZTS)
phpbrew install 8.2.13 +default +zts
# 特定のconfigureオプション指定
phpbrew install 8.3.0 +default -- \
--with-config-file-path=/etc/php/8.3 \
--with-config-file-scan-dir=/etc/php/8.3/conf.d
バージョンの切り替え
# インストール済みバージョンの一覧
phpbrew list
# 一時的な切り替え(現在のシェルのみ)
phpbrew use 8.3.0
phpbrew use php-8.2.13
# 永続的な切り替え(デフォルト設定)
phpbrew switch 8.3.0
# システムPHPに戻す
phpbrew off
# 現在の状態確認
phpbrew info
php -v
拡張機能の管理
# 拡張機能の検索
phpbrew ext search redis
phpbrew ext search xdebug
# 拡張機能のインストール
phpbrew ext install redis
phpbrew ext install xdebug 3.3.0
phpbrew ext install imagick -- --with-imagick=/usr/local
# 安定版の自動選択
phpbrew ext install redis stable
phpbrew ext install mongodb latest
# インストール済み拡張機能の確認
phpbrew ext list
phpbrew ext show
# 拡張機能の有効化/無効化
phpbrew ext enable redis
phpbrew ext disable xdebug
# 拡張機能の削除
phpbrew ext uninstall redis
PHP-FPMの管理
# FPM付きでPHPをインストール
phpbrew install 8.3.0 +default +fpm
# FPMの起動
phpbrew fpm start
# FPMの停止
phpbrew fpm stop
# FPMの再起動
phpbrew fpm restart
# FPM設定ファイルの場所
phpbrew config fpm
# カスタムポートでFPM起動
phpbrew fpm start --port 9001
Apacheモジュールの管理
# Apache対応でインストール
phpbrew install 8.2.13 +default +apxs2=/usr/bin/apxs2
# インストール後のモジュール確認
ls ~/.phpbrew/php/php-8.2.13/modules/
# Apacheへの設定例
sudo ln -s ~/.phpbrew/php/php-8.2.13/modules/libphp.so /usr/lib/apache2/modules/libphp8.2.so
設定とカスタマイズ
# php.iniの編集
phpbrew config
# 特定バージョンのphp.ini編集
phpbrew config php-8.3.0
# バリアント一覧の確認
phpbrew variants
# ビルドログの確認
phpbrew build-dir
# キャッシュのクリア
phpbrew purge
プロジェクトでの使用例
# プロジェクトディレクトリで
cd /path/to/my-project
# .phpbrewrcファイルの作成
echo "8.2.13" > .phpbrewrc
# 自動的にバージョンが切り替わる
cd ..
cd my-project # 8.2.13に自動切り替え
# Composerとの併用
phpbrew use 8.2.13
composer install
トラブルシューティング
# ビルドエラー時のログ確認
phpbrew build-dir
tail -f ~/.phpbrew/build/php-8.3.0/build.log
# OpenSSLエラーの対処(macOS)
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
phpbrew install 8.3.0 +default +openssl
# メモリ不足エラーの対処
export PHPBREW_MAKE_JOBS=1 # 並列ビルドを無効化
phpbrew install 8.3.0 +default
# ビルドのやり直し
phpbrew clean php-8.3.0
phpbrew install 8.3.0 +default