Local(旧名称:Local by Flywheel)でsiteを開こうとしたとき、「TypeError: Cannot read property ‘version’ of undefined Stack Trace:」というエラーが出たことはありますか。
最近Localを使い始めた私。このエラーの解決方法を調べるだけでも一苦労でした。
今回の記事では、「TypeError: Cannot read property ‘version’ of undefined Stack Trace:」というエラーの原因と対処法について書きます。
同じエラーが出てお困りの方に読んでいただけたらと思います。
エラーの原因
エラーの原因をネットで調べたところ、PHPのバージョンアップが上手くいかなかったというものでした。
対処法
「sites.json」ファイルにPHPのバージョン情報を追記する
手順1
「C:\Users\UserName\AppData\Roaming\Local」の中にある「sites.json」というファイルを開きます。
※UserNameの箇所には各自のユーザーネームが入ります
※念のため「sites.json」ファイルをコピーし、デスクトップなどに一時的に保管しておくと安心です(コピーしたファイルはエラーが解消されたら削除してOK)
手順2
「PHPのバージョンに関する情報」を「"services":{」の後に追記し、上書き保存してファイルを閉じます。
※「PHPのバージョンに関する情報」の具体例は、後述「対応の具体例」を参照してください
※バージョンアップする以前のバージョンを指定します
「"」や「,」などの文字が漏れないよう注意が必要です
対応の具体例
例えばバージョンアップ前のPHPのversionが7.3.5の場合、以下を「sites.json」ファイルの「"services":{」の後に追記します。
"php":{"name":"php","version":"7.3.5","type":"lightning","role":"php","ports":{"cgi":[10028,10029]}},
sites.jsonファイルの修正例(※PHPのversionが7.3.5の場合)
{"abCDEFghI":{"id":"abCDEFghI","name":"yamotomori test blog","path":"~\\Local Sites\\yamotomori-test-blog","domain":"yamotomori-test-blog.local","localVersion":"6.4.2+6012","mysql":{"database":"local","user":"root","password":"root"},"environment":"flywheel","services":{"php":{"name":"php","version":"7.3.5","type":"lightning","role":"php","ports":{"cgi":[10028,10029]}}, "mailhog":{"name":"mailhog","version":"1.0.0","type":"lightning","ports":{"WEB":[10000],"SMTP":[10001]}},"mysql":{"name":"mysql","version":"8.0.16","type":"lightning","role":"db","ports":{"MYSQL":[10008]}},"nginx":{"role":"http","version":"1.16.0","ports":{"HTTP":[10004]}}},"workspace":null,"multiSite":"","ports":{}}}
追記したのはマーカーの箇所です。
さいごに
以下の情報のおかげで今回のエラーが解決しました。
英語なので難しかったですが、貴重な情報をいただけて大変助かりました。
この記事もどなたかのお役に立てたら幸いです。