現象
Homestead.yamlでPHPのバーション指定しても
デフォルトのバージョンになってしまう
- map: xxx.test
to: /home/vagrant/code/xxx/html
php: "5.6"
URLからxxx.testを開いてphpinfo();
を表示させると
デフォルトのPHP7.1
が表示されてしまう
なんで?
公式に書いてある通りにやったはずなのに・・・
https://readouble.com/laravel/5.4/ja/homestead.html
原因
1日かけて、英語のサイトも目がつるぐらい探しても見当たらず、
諦めかけた時に、ふとバージョンが気になった(いや、アドバイスをもらった)
WINDOWSではPHPバージョンの切り替えはできたのに
MACだけでできないっておかしくないか?
は?もしかしてバージョンが違うんじゃ???
調べた結果
WINDOWS | MAC |
---|---|
laravel/homestead (virtualbox, 5.0.1) | laravel/homestead (virtualbox, 5.2.0) |
Vagrant 2.0.1 | Vagrant 2.0.3 |
Laravel Homestead 7.0.1 | Laravel Homestead 5.4.0 |
どう考えてもHomesteadのバージョンおかしいやろ
でも、公式に書かれたままやっただけやのに・・・
// クローンしたいリリースバージョン
git checkout v5.4.0`
これが同じページに書かれてるから混乱するねん
Homestead6から、同一仮想マシン上での複数PHPバージョンをサポートを開始しました。
Homestead.yamlファイルで、特定のサイトでどのバージョンのPHPを使用するのかを指定できます。
利用できるPHPバージョンは、"5.6"、"7.0"、"7.1"です。
でHomesteadのバージョンってどこで分かるねん?
って調べたらまさかのファイルを直接テキストで見るなんてびっくりや
/Users/*username*/Homestead/bin/homestead
$app = new Symfony\Component\Console\Application('Laravel Homestead', '5.4.0');
対応
ボックス入れるところからやり直しや
/ boxの削除 /
vagrant box remove ****
/ boxの追加(バージョン指定) /
vagrant box add laravel/homestead --box-version 5.0.1
/ ディレクトリ移動 /
cd ~
/ 前の関係ファイルを削除(隠しファイルも含めて) /
/Users/*username*/Homestead
をディレクトリごと削除
/ Homesteadをclone /
git clone https://github.com/laravel/homestead.git Homestead
/ 移動 /
cd Homestead
/ クローンしたいリリースバージョン /
git checkout v7.0.1
/ Homestead.yaml生成 /
bash init.sh
/ Homestead.yaml編集 /
- map: xxx.test
to: /home/vagrant/code/xxx/html
php: "5.6"
/ homesteadのstatusを確認 /
vagrant global-status
/ 前のやつが残ってるのでIDを指定して削除 /
vagrant destroy xxxxxx
/ virtualboxを確認 /
vboxmanage list vms
/ 前のやつを掴んでるので削除 /
VirtualBox.app起動してhomestead-7を除去
/ ようやく起動 /
vagrant up
ここまでやってxxx.testを見たら、無事PHPバージョン指定が5.6になってた!!!
こういう細かいトラブルシューティングがなかなかズバリ見つからんからめっちゃ時間かかったわ