Herokuのstackをアップグレードする際にエラーが出て詰まったので備忘録として残します。
基本的な進め方としては
- Heroku管理画面で対象のアプリを選択し、「Settings」選択。
- 「Upgrade Stack」押下。
- 次回Deploy時に自動でアップグレード
となります。
無事アップグレードできればこれで終了です。
Deploy時にエラーが出る場合は以降の内容を参考にしてください。
エラー内容
! For reference, the following runtimes are currently available:
!
! PHP: 8.1.10, 8.1.9, 8.1.8, 8.1.7, 8.1.6
!
! Please verify that all requirements for runtime versions in
! 'composer.lock' are compatible with the list above, and ensure
! all required extensions are available for the desired runtimes.
どうやら
- PHPのバージョンを指定する必要がありそう。
- その後、
composer.lock
を更新する必要がある。
ということなので一つずつ潰していきました。
PHPのバージョンを指定する
phpのバージョンを指定するにはcomposer.json
に記述する必要があります。
{
"require": {
"php": "^8.1.0"
}
}
composer.lock
を更新する
そもそも更新の仕方もわからないので結構詰まりました。。
調べたところ更新するにはcomposer update
をする必要があるということですが、そんなコマンドがないと怒られてしまいました。
bash: composer: command not found
composerを使うにはphpが必要で、phpをインストールするにはHomebrewが必要。
ということで以下の手順で進めていきます。
- HomeBrewインストール
- PHPインストール
- Composerインストール
心折れそうになりますがいくつかコマンド叩けば大丈夫!
HomeBrewインストール
以下にアクセスし、インストール用のコマンドをそのままコピペして実行。
インストールしたらバージョン確認して出てきたらOK。
brew -v
PHPインストール
HomeBrewを使ってPHPをインストールします。
brew install php
エラーでた。。
Error:
homebrew-core is a shallow clone.
To `brew update`, first run:
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
エラーに出てるコマンドをそのまま使います。
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
次は成功しました!
(インストール少し時間かかります)
brew install php
終わったのでバージョン確認してみます。
バージョンが表示されたらOK。
php -v
Composerインストール
ここまできたら後少し!
curl -sS https://getcomposer.org/installer | php
composer.phar
が作成されるはずです。
バージョン確認してみます。
php composer.phar -v
ようやくcomposerアップデートできる!
php composer.phar update
デプロイ
これでcomposer.lock
が更新されたはずですので、そのままプッシュすればOK!
お疲れ様でした!
参考サイト
こういったサイトにいつも助けられています。