1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Herokuのstackアップグレードの進め方

Last updated at Posted at 2022-09-06

Herokuのstackをアップグレードする際にエラーが出て詰まったので備忘録として残します。

基本的な進め方としては

  1. Heroku管理画面で対象のアプリを選択し、「Settings」選択。
  2. 「Upgrade Stack」押下。
  3. 次回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.

どうやら

  1. PHPのバージョンを指定する必要がありそう。
  2. その後、composer.lock を更新する必要がある。

ということなので一つずつ潰していきました。

PHPのバージョンを指定する

phpのバージョンを指定するにはcomposer.jsonに記述する必要があります。

{
  "require": {
    "php": "^8.1.0"
  }
}

composer.lock を更新する

そもそも更新の仕方もわからないので結構詰まりました。。

調べたところ更新するにはcomposer update をする必要があるということですが、そんなコマンドがないと怒られてしまいました。

bash: composer: command not found

composerを使うにはphpが必要で、phpをインストールするにはHomebrewが必要。
ということで以下の手順で進めていきます。

  1. HomeBrewインストール
  2. PHPインストール
  3. 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!
お疲れ様でした!

参考サイト

こういったサイトにいつも助けられています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?