Valet の環境を構築して PHP のバージョンを切り替える方法

必要なもの

目次

  1. Homebrew をインストールする (すでに利用中の場合はスキップ)
  2. Com­poser をインストールするする (すでに利用中の場合はスキップ)
  3. Valet をインストールする (すでに利用中の場合はスキップ)
  4. Valet の動作確認をする (すでに利用中の場合はスキップ)
  5. 任意のバージョンの PHP をインストールする
  6. PHPのバージョンを切り替える

1. Homebrew をインストールする

オフィシャルサイト: Homebrew
いろいろ解説しているサイトがあるので,詳しくはそちらを参考にしてください。

2. Com­poser をインストールする

Com­poser にある Down­load Com­poser をご参照ください。

3. Valet をインストールする

手順はオフィシャルサイトや Qiita に載ってますので,詳細はそちらに譲ります。

4. 動作確認をする

テストサイトを作って動作を確認してみてください。
wp-cli-valet-com­mand wp-cli valet をインストール後に wp valet new test などでいろいろできます。

5. 任意のバージョンの PHP をインストールする

PHP 7.1 環境において,PHP 7.2 をインストールする場合

  1. PHP 7.1 を stop (brew services stop php71)
  2. PHP 7.1 を unlink (brew unlink php71)
  3. 使いたい PHPのバージョンをインストール (brew install homebrew/php/php72)
  4. 使いたい PHPのバージョンを link (brew link php72 インストール時にリンクされます)
  5. 使いたい PHPのバージョンを start (brew services start php72)

作業例

zsh 22506 [1] % brew services list
Name       Status  User            Plist
pulseaudio stopped                 
emacs      started root            /Library/LaunchDaemons/homebrew.mxcl.emacs.plist
php71      started root            /Library/LaunchDaemons/homebrew.mxcl.php71.plist
nginx      started root            /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
mysql      started root            /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
jack       stopped                 
mailhog    started TomohycoTsunoda /Users/TomohycoTsunoda/Library/LaunchAgents/homebrew.mxcl.mailhog.plist
jenkins    started root            /Library/LaunchDaemons/homebrew.mxcl.jenkins.plist
dnsmasq    started root            /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

zsh 22512 % sudo brew services stop php71

zsh 22513 % brew services list
Name       Status  User            Plist
pulseaudio stopped                 
emacs      started root            /Library/LaunchDaemons/homebrew.mxcl.emacs.plist
php71      stopped                 
nginx      started root            /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
mysql      started root            /Library/LaunchDaemons/homebrew.mxcl.mysql.plist
jack       stopped                 
mailhog    started TomohycoTsunoda /Users/TomohycoTsunoda/Library/LaunchAgents/homebrew.mxcl.mailhog.plist
jenkins    started root            /Library/LaunchDaemons/homebrew.mxcl.jenkins.plist
dnsmasq    started root            /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist


zsh 22514 % brew install homebrew/php/php72
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (caskroom/cask).
No changes to formulae.

==> Installing php72 from homebrew/php
==> Downloading https://homebrew.bintray.com/bottles-php/php72-7.2.0_11.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring php72-7.2.0_11.high_sierra.bottle.tar.gz
==> Caveats
The php.ini file can be found in:
    /usr/local/etc/php/7.2/php.ini
[......]
?  /usr/local/Cellar/php72/7.2.0_11: 350 files, 46.6MB

zsh 22515 % sudo brew services start php72
==> Successfully started `php72` (label: homebrew.mxcl.php72)

# 確認
zsh 22515 % php -v
PHP 7.2.0 (cli) (built: Dec  3 2017 21:46:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies
[Sat 17/12/09 16:59 JST][s006][x86_64/darwin16.7.0/17.3.0][5.4.2]

6. PHPのバージョンを切り替える

PHP 7.2 → 7.1への切り替え

sudo brew services stop php72
brew unlink php72
brew link php71
sudo brew services start php71

# 確認
zsh 22553 [1] % php -v
PHP 7.1.12 (cli) (built: Dec  2 2017 12:15:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

複数のバージョンの PHP を同時起動・ポートによってバージョンを変えるなども多分できるんでしょうけど,どうやるのかしら。

関連リンク

aka Written by: