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

必要なもの

目次

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

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

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

2. Composer をインストールする

Composer にある Download Composer をご参照ください。

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: