【Mac】任意のPHPバージョンをphpbrewで取得してみた

# はじめに

MacはデフォでPHPがインストールされているけど、開発する際に指定したPHPバージョンを使いたい！

しかし、、WindowsのようにPHP公式サイトでダウンロードしPATHを通すことが難しい。。
Homebrewだとバージョンの［x.x.★］の★部分まで選べない。。

phpbrewならバージョンの指定ができ、複数のバージョンを切り替えることができる為、
phpbrewを使って好きなバージョンを取得してみました。


## 環境
- macOS 10.15.7
- Homebrew 2.5.11
- phpbrew 1.26.0


## 事前準備
Homebrewというツールを使用するので事前にインストールしておきます。
インストール方法は以下サイトを参考にしました。

[Mac Homebrewインストール手順](https://awesome-linus.com/2019/08/17/mac-homebrew-install/)


## phpbrew本体のインストール
[公式ドキュメント](https://github.com/phpbrew/phpbrew/blob/master/README.ja.md)を参考に以下コマンドを実行していきます。

```
// ダウンロード
$ curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
$ chmod +x phpbrew.phar

// $PATH の通っているディレクトリにファイルを移動
$ sudo mv phpbrew.phar /usr/local/bin/phpbrew

// セットアップ
$ phpbrew init
$ echo 'source ~/.phpbrew/bashrc' >> ~/.bashrc
$ phpbrew lookup-prefix homebrew
```

以上を実行したら、`$ phpbrew`で確認します。

```
$ phpbrew

  ______ _   _ ____________                   
  | ___ \ | | || ___ \ ___ \                  
  | |_/ / |_| || |_/ / |_/ /_ __ _____      __
  |  __/|  _  ||  __/| ___ \ '__/ _ \ \ /\ / /
  | |   | | | || |   | |_/ / | |  __/\ V  V / 
  \_|   \_| |_/\_|   \____/|_|  \___| \_/\_/  
                                            
Brew your latest php!

```

この表示が出ればOKです。



## インストール可能なPHPバージョンの確認

`$ phpbrew known`を実行すると、インストール可能なバージョンが一覧で表示されます。

```
$ phpbrew known

7.4: 7.4.12, 7.4.11, 7.4.10, 7.4.9, 7.4.8, 7.4.7, 7.4.6, 7.4.5 ...
7.3: 7.3.24, 7.3.23, 7.3.22, 7.3.21, 7.3.20, 7.3.19, 7.3.18, 7.3.17 ...
7.2: 7.2.34, 7.2.33, 7.2.32, 7.2.31, 7.2.30, 7.2.29, 7.2.28, 7.2.27 ...
7.1: 7.1.33, 7.1.32, 7.1.31, 7.1.30, 7.1.29, 7.1.28, 7.1.27, 7.1.26 ...
7.0: 7.0.33, 7.0.32, 7.0.31, 7.0.30, 7.0.29, 7.0.28, 7.0.27 ...
5.6: 5.6.40, 5.6.39, 5.6.38, 5.6.37, 5.6.36, 5.6.35, 5.6.34, 5.6.33 ...
5.5: 5.5.38, 5.5.37, 5.5.36, 5.5.35, 5.5.34, 5.5.33, 5.5.32, 5.5.31 ...
5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...

```

##### 今回は　" __7.4.5__ "　をインストールしていきます。



## 指定したバージョンのPHPバージョンをインストール

`$ phpbrew install`コマンドを実行し、__php-7.4.5__をインストールします。
（デフォルトを7.4.5にしたいので、`+default`を末尾に付け足します。）

```
$ phpbrew install 7.4.5 +default

===> phpbrew will now build 7.4.5
You haven't enabled any variants. The default variant will be enabled: 
[bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc, json, mbregex, mbstring, mhash, pcntl, pcre, pdo, pear, phar, posix, readline, sockets, tokenizer, xml, curl, openssl, zip]
Please run 'phpbrew variants' for more information.
 
===> Loading and resolving variants...
Homebrew prefix "/usr/local/Cellar/libxml2/2.9.10" does not exist.
Homebrew prefix "/usr/local/Cellar/bzip2/1.0.8" does not exist.
Homebrew prefix "/usr/local/Cellar/mhash/0.9.9.9" does not exist.
Homebrew prefix "/usr/local/Cellar/curl/7.68.0" does not exist.
Downloading https://www.php.net/distributions/php-7.3.14.tar.bz2 via curl extension
```

###### dose not exist.
ソフトウェアが存在しないと言われてしまいました。。
足りないソフトウェアを`brew install`コマンドでまとめてインストールします。

```
$ brew install libxml2 bzip2 mhash curl
```

よしよし、再度チャレンジです。


## 改めてインストール

インストール完了するまでに時間がかかるので、休憩がてら猫と戯れてました。

```
$ phpbrew install 7.4.5 +default

（略）
* WARNING:
  You haven't setup your .bashrc file to load phpbrew shell script yet!
  Please run 'phpbrew init' to see the steps!
 
To use the newly built PHP, try the line(s) below:
 
    $ phpbrew use php-7.4.5
 
Or you can use switch command to switch your default php to php-7.3.14:
 
    $ phpbrew switch php-7.4.5
 
Enjoy!
```

インストール完了です！

## 再起動
インストールしたらコマンドプロンプトを再起動して`source`コマンドを実行します。

```
$ source ~/.phpbrew/bashrc
```

## インストール済みのPHPバージョンを確認

`list`コマンドを実行してインストールされたか改めて確認します。

```
$ phpbrew list

* php-7.4.5
```

さらに`php -v`でバージョンが7.4.5になっているか確認します。

```
$ php -v

PHP 7.4.5 (cli) (built: Nov 25 2020 23:12:04) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
```

php-7.4.5を使えるようになりました！



## 他バージョンの確認・切り替え
インストールした別のバージョンを確認し切り替えます。

#### 1. インストール済みのバージョンを一覧で確認

```
$ phpbrew list

  php-7.4.6
* php-7.4.5
```

"＊"は現在使用されているバージョンです。
7.4.6に切り替えてみる。


#### 2. バージョンの切り替え

```
// 7.4.6を使用する
$ phpbrew use php-7.4.6

// 切り替わったか確認
$phpbrew list

* php-7.4.6
  php-7.4.5
```

切り替わりました！
最後に`php -v`でバージョンが7.4.6になっているか確認

```
$ php -v

PHP 7.4.6 (cli) (built: Nov 26 2020 00:53:12) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
```

7.4.6に切り替えることができました！


## 最後に
ここまで行き着くのに2日かかりました (›´ω`‹ ) 
これからコマンド慣れしていかねば、、！