ことの発端は、これまでローカル環境にてLaravelの開発をしていた。
いつも通り「php artisan serve」サーバー起動コマンドを打つと...
$php artisan serve
command not found
とコマンドないよと怒られた。
調べてみると下記記事発見。
M1のMacOS、MontereyへのOSバージョンアップではPHPはバンドルされない。。。
とのことなので新たにPHPをインストールした。その時の備忘録。
1.Homebrewバージョン確認
$brew -v
Homebrew 3.3.3
brew -vを実行
Homebreは入っている
必要ならHomebrewバージョンアップ
brew upgrade
2.phpバージョン確認
$php -v
command not found
php -v を実行
command not found
やはりない
3.インストール可能php確認
$brew search php
==> Formulae
brew-php-switcher php-code-sniffer php@7.2 php@7.4 phplint phpmyadmin phpunit
php php-cs-fixer php@7.3 phpbrew phpmd phpstan
==> Casks
brew search phpを実行
インストール可能phpバージョンが出る
4.phpインストール
$brew install php@7.4
Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
To rerun under ARM use:
arch -arm64 brew install ...
To install under x86_64, install Homebrew into /usr/local.
7.4をインスト
brew install php@7.4 と実行
arch -arm64 頭につけろってエラー
arch -arm64 つけてインスト
$arch -arm64 brew install php@7.4
Error: No developer tools installed.
Install the Command Line Tools:
xcode-select --installv
arch -arm64 brew install php@7.4 を実行
xcodeインストールしろってエラー
xcodeインストール
$xcode-select --install
xcode-select --install を実行
10分ほどかかる...
Homebrewバージョンアップしとく
$brew upgrade
5.気を取り直しarch -arm64 つけてPHPインスト
$arch -arm64 brew install php@7.4
If you need to have php@7.4 first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
arch -arm64 brew install php@7.4
6.上記の通りパスを通す
echo 'export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
念のため通っているかcatで確認。
$cat ~/.zshrc
>export PATH=/opt/homebrew/bin:$PATH
>export PATH="/opt/homebrew/opt/php@7.4/bin:$PATH"
>export PATH="/opt/homebrew/opt/php@7.4/sbin:$PATH"
cat ~/.zshrc
7.phpバージョン確認とインストール確認
$php -v
PHP 7.4.26 (cli) (built: Nov 28 2021 16:40:00) ( NTS )
$which php
/opt/homebrew/bin/php
8.ターミナルを再起動
参考
https://sakura.ohhappy.jp/mac/1342
https://qiita.com/joh_luck/items/f3321ee81166aea0ff3b