Heroku x WordPres で Heroku にアップロード/ダウンロードしたファイルが消える問題への対策

Heroku は git push で簡単にデプロイされて便利だが、サーバーが固定のものではないため、Heroku 上に画像などのファイルを配置しても再起動などのタイミングで削除されてしまう。

そのため、ファイルは他のクラウドサービスを利用して参照する形にするか、ローカルからファイルをコミットして git push でアップロードする形となる。

自分の調べた限りだと、頻繁にアップロードする画像は他のクラウドサービス(S3 や Cloudinary)を利用して、更新の頻度の低いプラグインやテーマはローカルにダウンロードしたものを push する形が良さそう。WordPress自体のアップデートもこの問題に当てはまるのでローカルでアップデートできたものを確認できた後に push すべき。

ちなみに、プラグインの有効化や設定などはデータベースで管理されているため、ローカルでプラグインをダウンロードして設定していたとしても、Heroku にデプロイした際に有効化や設定は必要だと思われる。

プラグインなどのパターンは git を理解していればわかると思うので、以下では画像対応について説明する。

画像が消える問題の対策

自分の場合は無料でケチりたかったので Cloudinary を採用したが、S3 を採用する方は「WordPress 画像 S3」などとググれば色々出てくるはず。

Cloudinary で画像管理するフローを以下に説明する。

  1. Cloudinary 登録
  2. ローカル PC で Cloudinary プラグインを導入して push
  3. Cloudinary と WordPress の紐付け

1. Cloudinary 登録

Cloudinary にアクセス。

Cloudinary 登録
“SIGN UP FOR FREE” ボタンをクリック。

Cloudinary 登録フォーム
必要な情報を入力して CREATE ACCOUNT

アカウント作成に成功するとダッシュボードが表示されるので、”Environment variable” の CLOUDINARY_URL= 以下の部分をコピーする。

2. ローカル PC で Cloudinary プラグインを導入して push

  1. ローカル PC の localhost/wp-admin/ にアクセス
  2. プラグイン > 新規追加 > Cloudinary で検索すると Cloudinary – Image management and manipulation in the cloud + CDN が見つかるのでダウンロード
  3. 変更を git コミットして Heroku にデプロイ
  4. Heroku の WordPress ダッシュボードから Cloudinary プラグインを有効化

3. Cloudinary と WordPress の紐付け

  1. WordPress ダッシュボードに Cloudinary タブが追加されるので Settings をクリック
  2. フォームに 1 でコピーした CLOUDINARY_URL= 以下の文字列を貼り付けて Update Settings ボタンをクリック

これで紐付けは完了

紐付け後の画像管理

Cloudinary と WordPress を紐付けたら、基本的に Cloudinary に画像をアップロードし、 URL を WordPress の記事に貼り付けて使う形となる。

画像のアップロードは Cloudinary タブ > Media library からおこなう。

最後に

これで画像の管理とプラグイン、テーマ、WordPress バージョンの管理が可能になった。次にこの一連の記事の終わりとして、ドメイン設定について書こうと思う。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です