どうも、シローです。
今回は "phpenv"と"php-build"を使って、phpのバージョンを切り替える方法についてまとめました。
動作環境
OS | Ubuntu 18.04.3 LTS |
phpenvとphp-buildとは
phpenv
指定されたphpのバージョンをインストールしたり、プロジェクト毎、またはシステム全体で使用するphpのバージョンを切り替えることができます。
php-build
phpenvで指定されたphpのバージョンをインストールするために必要です。
インストール
phpenvのインストール
gitでphpenvのリポジトリを取ってくる
1 |
git clone git://github.com/phpenv/phpenv.git ~/.phpenv |
.bashrc(または.bash_profile)にphpenvのパスを通す
1 2 3 |
echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bash_profile // または echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc |
.bashrc(または.bash_profile)を再読込させる
1 2 3 |
source ~/.bashrc // または source ~/.bash_profile |
phpenvが実行できることを確認
1 |
phpenv |
php-buildのインストール
gitで.phpenvのフォルダ以下にphp-buildのリポジトリを取ってくる
1 |
git clone git://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build |
php-buildのリポジトリに入って install.shを実行する
1 2 |
cd ~/.phpenv/plugins/php-build sudo sh install.sh |
phpenvの使い方
インストールできるPHPのバージョン一覧を確認する
1 |
phpenv install -l |
バージョンを指定してインストールする
1 |
phpenv install 7.3.9 // 今回は7.3.9 |
システム全体で使うphpのバージョンを切り替える
1 |
phpenv global 7.3.9 |
今いるディレクトリで使うphpのバージョンを切り替える
1 2 3 |
// プロジェクトのディレクトリに移動 cd ~/sample phpenv local system // systemは元々入っていたphpのバージョン |
phpのバージョンを確認する
1 2 3 4 5 |
phpenv versions * system // 使用されるphpのバージョン 7.2.9 7.3 7.3.9 |
よくあるエラー
"phpenv install (version)"でphpのバージョンをインストールするときに発生するエラーは主に必要なパッケージが足りていないことが原因の場合が多いです。(それをなんとかしてくれるのがphp-buildのはずだか・・)
どのパッケージが必要かは環境によって異なると思うので、必要なパッケージの見つける方法は以下の感じです。
1 2 3 4 5 6 7 |
// パッケージのリポジトリを更新する sudo apt-get update // パッケージを検索する (例として libxml2) // devがつくもので絞り込む(devじゃないものはphpenvが使ってくれないらしい) sudo apt-cache search libxml2 | grep dev // パッケージを選んでインストールする sudo apt install libxml2-dev |