phpenvを使ってUbuntu20.04にPHPをインストールする手順
はじめに
phpenv
を使ってUbuntu20.04にPHPをインストールしたのでその手順をまとめます。phpenv
を使うことで、システム全体で使うPHPのバージョンや使うPHPバージョンを特定のディレクトリ毎に分けたり、複数のPHPのバージョンをインストールしたりできるようになります。
前提と環境
- Ubuntu20.04
phpenvをインストール
PHPをインストールするためにはじめにphpenv
をUbuntuにインストールします。インストール手順は公式リポジトリに記載の手順に従います。まず以下をターミナルで実行します。
$ git clone git@github.com:phpenv/phpenv.git ~/.phpenv
上記の実行結果は以下のようになります。
$ git clone git@github.com:phpenv/phpenv.git ~/.phpenv
Cloning into '/home/username/.phpenv'...
remote: Enumerating objects: 1213, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 1213 (delta 3), reused 0 (delta 0), pack-reused 1205
Receiving objects: 100% (1213/1213), 235.52 KiB | 554.00 KiB/s, done.
Resolving deltas: 100% (748/748), done.
なお、もし以下のように表示されてしまう場合は、GitHubへの接続ができていないため、自身のGitHubアカウントでGitHubに対してSSH接続できるようになっているか確認が必要です。
$ git clone git@github.com:phpenv/phpenv.git ~/.phpenv
Cloning into '/home/username/.phpenv'...
The authenticity of host 'github.com' can't be established.
ECDSA key fingerprint is SHA256:2sdllsaj37dhj9ejsopjke8wh.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ECDSA) to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
設定ファイル
続いて以下を実行してパスを通します。これによってどのディレクトリからでもphpenv
コマンドを使えるようにします。
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc
CentOSの場合はデフォルトだとbashrc
ではなくbash_profile
になるので以下のようにします。
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bash_profile
初期化
続いて以下を実行してphpenv
を初期化します。
$ echo 'eval "$(phpenv init -)"' >> ~/.bashrc
CentOSの場合は以下。
$ echo 'eval "$(phpenv init -)"' >> ~/.bash_profile
ターミナルを再起動する
以下を実行してターミナルを再起動し、上記までの設定を反映させます。
$ exec $SHELL -l
php-buildをインストールする
phpenv
と一緒に使うphp-build
も一緒にインストールしておきます。php-build
によって指定したバージョンのPHPをインストールすることができます。以下を実行してphp-build
のインストールは完了します。
$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
Cloning into '/home/username/.phpenv/plugins/php-build'...
remote: Enumerating objects: 10754, done.
remote: Counting objects: 100% (1297/1297), done.
remote: Compressing objects: 100% (432/432), done.
remote: Total 10754 (delta 1115), reused 932 (delta 765), pack-reused 9457
Receiving objects: 100% (10754/10754), 1.31 MiB | 19.22 MiB/s, done.
Resolving deltas: 100% (8167/8167), done.
phpenvを使ってPHPをインストールする
以下によってインストール可能なPHPのバージョン一覧を表示できます。
$ phpenv install -l
以下のようにバージョンを指定してPHPをインストールできます。
$ phpenv install 8.0.15
PHPをインストールした後、rehash
を実行して反映します。
$ phpenv rehash
ローカルで使用するバージョンを指定する
以下のようにphpenv local
を使うことで特定のディレクトリ配下でのみ使うPHPのバージョンを指定できます。以下ではphpenv local
を実行したディレクトリでPHP8.0.15
を使えるようになります。
$ phpenv local 8.0.15
$ phpenv rehash
バージョン確認
以下のようにバージョンを確認し、表示されれば問題なくPHPをインストールできています。
$ php -v
PHP 8.0.15 (cli) (built: Jul 9 2022 17:16:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.15, Copyright (c) Zend Technologies
with Zend OPcache v8.0.15, Copyright (c), by Zend Technologies
with Xdebug v3.1.5, Copyright (c) 2002-2022, by Derick Rethans
まとめ
Rubyのrbenv
やPythonのpyenv
のようにphpenv
も簡単に利用できました。