Submit Search
Upload
EC-CubeをHerokuでも
•
2 likes
•
1,404 views
Takahiro Yonei
Follow
Heroku Meetup #22 セッション資料 初学者が、EC-CubeをHerokuに載っける上で色々苦労したところなど
Read less
Read more
Technology
Report
Share
Report
Share
1 of 22
Download now
Download to read offline
Recommended
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Takeshi HASEGAWA
KLabの社内勉強会紹介
KLabの社内勉強会紹介
KLab Inc. / Tech
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
Takahiro Yonei
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修
Satoru Ishikawa
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
Taiki Yoshikawa
Salesforce dug meetup #5
Salesforce dug meetup #5
Akira Kuratani
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
Recommended
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Eject-io (OSC2014 Tokyo/Fall 懇親会LT)
Takeshi HASEGAWA
KLabの社内勉強会紹介
KLabの社内勉強会紹介
KLab Inc. / Tech
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
Takeshi HASEGAWA
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
HerokuとSalesforceで例えばこんなCMSでも (LT資料)
Takahiro Yonei
Trailheadでサクサク!新人研修
Trailheadでサクサク!新人研修
Satoru Ishikawa
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
IonicFrameworkをつかってSalesforce1アプリの開発をしよう
Taiki Yoshikawa
Salesforce dug meetup #5
Salesforce dug meetup #5
Akira Kuratani
Salesforce開発のスタート地点で考えたいこと
Salesforce開発のスタート地点で考えたいこと
Yuki Yamaguchi
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
Toru Inoue
Herokuトレーニング
Herokuトレーニング
Yosuke Murata
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
Ikou Sanuki
Salesforce developer conference tokyo2013
Salesforce developer conference tokyo2013
Ikou Sanuki
Salesforceのほんとにあった怖い話(こわれた組織)
Salesforceのほんとにあった怖い話(こわれた組織)
Toru Inoue
「標準機能ファースト」でSalesforceを使い倒せ!
「標準機能ファースト」でSalesforceを使い倒せ!
Yoshimasa Yaguma
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
Inside Quizar
Inside Quizar
Kokoro Sato
Apex Test Plusの紹介
Apex Test Plusの紹介
Yuichiro Ebihara
Trelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatu
Yoh Nakamura
Lightning Component × Lightning Design System
Lightning Component × Lightning Design System
Taiki Yoshikawa
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
Takashi Hatamoto
Kyoto sfdg meetup3_for_sharing
Kyoto sfdg meetup3_for_sharing
友嗣 小野
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみる
Junichi Okamura
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
ttakapi0327
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
Lt 110416
Lt 110416
Tomoyuki Obi
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
Takashi Hatamoto
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
Takashi Hatamoto
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
Takahiro Yonei
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
More Related Content
Similar to EC-CubeをHerokuでも
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
Toru Inoue
Herokuトレーニング
Herokuトレーニング
Yosuke Murata
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
Ikou Sanuki
Salesforce developer conference tokyo2013
Salesforce developer conference tokyo2013
Ikou Sanuki
Salesforceのほんとにあった怖い話(こわれた組織)
Salesforceのほんとにあった怖い話(こわれた組織)
Toru Inoue
「標準機能ファースト」でSalesforceを使い倒せ!
「標準機能ファースト」でSalesforceを使い倒せ!
Yoshimasa Yaguma
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
Inside Quizar
Inside Quizar
Kokoro Sato
Apex Test Plusの紹介
Apex Test Plusの紹介
Yuichiro Ebihara
Trelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatu
Yoh Nakamura
Lightning Component × Lightning Design System
Lightning Component × Lightning Design System
Taiki Yoshikawa
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
Takashi Hatamoto
Kyoto sfdg meetup3_for_sharing
Kyoto sfdg meetup3_for_sharing
友嗣 小野
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
Naoya Shiraishi
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみる
Junichi Okamura
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
ttakapi0327
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
Lt 110416
Lt 110416
Tomoyuki Obi
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
Takashi Hatamoto
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
Takashi Hatamoto
Similar to EC-CubeをHerokuでも
(20)
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
SFDG_画面フローとLightningWebComponentのハイブリッド開発について.pptx
Herokuトレーニング
Herokuトレーニング
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
Salesforce developer conference tokyo2013
Salesforce developer conference tokyo2013
Salesforceのほんとにあった怖い話(こわれた組織)
Salesforceのほんとにあった怖い話(こわれた組織)
「標準機能ファースト」でSalesforceを使い倒せ!
「標準機能ファースト」でSalesforceを使い倒せ!
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Inside Quizar
Inside Quizar
Apex Test Plusの紹介
Apex Test Plusの紹介
Trelloを使ってサクサク開発してみませんか?_yohhatu
Trelloを使ってサクサク開発してみませんか?_yohhatu
Lightning Component × Lightning Design System
Lightning Component × Lightning Design System
Adminとうまく共存するためのApex開発Tips
Adminとうまく共存するためのApex開発Tips
Kyoto sfdg meetup3_for_sharing
Kyoto sfdg meetup3_for_sharing
150704 イノベーションエッグ第4回 umekita_force活動報告
150704 イノベーションエッグ第4回 umekita_force活動報告
WebRTCでリアル店舗を作ってみる
WebRTCでリアル店舗を作ってみる
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
Svelte5でのevent受け渡し in Svelte Japan Offline Meetup #2
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
Lt 110416
Lt 110416
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿_訳あってLWCから添付ファイル上げようとした話
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
20240125_SFDG Meetup32寄稿資料_TDX2024に行こう!(TrailblazerDX)
More from Takahiro Yonei
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
Takahiro Yonei
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Takahiro Yonei
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Takahiro Yonei
Meetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / Apexまわり
Takahiro Yonei
カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話
Takahiro Yonei
Visualforceをあきらめない
Visualforceをあきらめない
Takahiro Yonei
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Takahiro Yonei
Salesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenote
Takahiro Yonei
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNote
Takahiro Yonei
DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②
Takahiro Yonei
Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5
Takahiro Yonei
Cloudforce2012 LT
Cloudforce2012 LT
Takahiro Yonei
Force.com Developer Group Japan Meetup#2
Force.com Developer Group Japan Meetup#2
Takahiro Yonei
Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1
Takahiro Yonei
More from Takahiro Yonei
(14)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
SalesforceとHerokuのより良い関係を目指して(たぶん序章)
ApexトリガのBest Practiceを目指して
ApexトリガのBest Practiceを目指して
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Meetup #15 : リリースノート輪読 / Apexまわり
Meetup #15 : リリースノート輪読 / Apexまわり
カスタムメタデータを受託の案件で使ってみた話
カスタムメタデータを受託の案件で使ってみた話
Visualforceをあきらめない
Visualforceをあきらめない
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce dug tokyo_meetup#8_about_releasenote
Salesforce dug tokyo_meetup#8_about_releasenote
SDUG Tokyo Meetup#7 About ReleaseNote
SDUG Tokyo Meetup#7 About ReleaseNote
DCMax CrowdHackathonチャレンジ②
DCMax CrowdHackathonチャレンジ②
Salesforce DUG Tokyo meetup#5
Salesforce DUG Tokyo meetup#5
Cloudforce2012 LT
Cloudforce2012 LT
Force.com Developer Group Japan Meetup#2
Force.com Developer Group Japan Meetup#2
Force.com Developer Group Japan Meetup#1
Force.com Developer Group Japan Meetup#1
Recently uploaded
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(7)
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
EC-CubeをHerokuでも
1.
EC-Cube を Heroku
でも Heroku Meetup #22 Takahiro Yonei (@yonet77) Herokuに「何か」を載っけるシリーズ 〜EC-Cube編〜 ※続くかどうかは未定
2.
米井 孝浩(よねい
たかひろ) TAOドライブ株式会社 エンジニア Salesforce向けの受託開発をメインにしてます 最近はHerokuにも力を入れ始めてます Salesforce DG (Tokyo) の運営メンバの1人 (いちおう)Salesforce MVP (Spring’ 15)
3.
PHP歴 ほぼゼロ
Heroku に本腰入れたのは今年から ※そんな初心者が(無謀?)にもEC-Cube案件に挑んだ時の記録です...
4.
1. EC-CubeをHerokuで試してみる EC-Cubeのインストール
EC-Cube on Heroku の動作確認 Heroku Pipeline に載せる etc 2. Heroku上で稼働させるポイント(分かってきたこと) 3. 今後の展望
5.
ECサイトを何かサクッと作れないか? とあるエンドユーザからの要求...
Salesforceは稼働中 ただ、Commerce Cloudはちょっと... ならばHerokuで構築するしかない! 専任のインフラ担当はいないので、AWSで稼働させるのはツラい ECサイト用のパッケージとしては...EC-Cubeが良いのでは? -> EC-CubeをHerokuに載っけてみよう コトの発端...
6.
EC-Cubeとは? オープンソースのEC向けコンテンツ管理システム •
PHP + PostgreSQL で構築されており、v2.13系とv3.0.x系があるが、 初めから使うならv3.0.x系が良さそう 有償ライセンスと無償ライセンス(GPLライセンス)のデュアルライセンス方式 様々なプラグインが用意されており、プラグインを組み合わせることで拡張可能 開発コミュニティの規模も大きく、非常に活発 https://www.ec-cube.net/ https://github.com/EC-CUBE/ec-cube
7.
EC-Cube を
Heroku にインストール Heroku DeployボタンよりHerokuにデプロイする 半年ほど前の場合だと、postgreのバージョン指定がなくインストールに失敗する ※ 最新の app.json だと、v9.6 が指定されており、インストールは成功する
8.
EC-Cube on
Heroku の動作確認 画像ファイルはHeroku内に格納できないので、別のストレージサービスを使う Herokuのaddonとして利用できるストレージサービス • Bucketeer https://elements.heroku.com/addons/bucketeer • Cloudinary https://elements.heroku.com/addons/cloudinary Cloudinary用のプラグインと、Heroku addonの組合せが良さそう (試せてないですが) 画像ファイルをCloudinaryに保存するプラグインもある https://www.ec-cube.net/products/detail.php?product_id=1058
9.
EC-Cube on
Heroku の動作確認 Dynoの数を増やしてみたら、正常にログインできなくなった ログインしたはずなのに、ログイン画面にリダイレクトされてしまう! セッション情報をローカルに保存する方式になっていた模様? -> Dynoが増えるとセッションの引き継ぎに失敗する -> セッション用のデータストアが必要 セッションを Heroku Redis で管理するよう変更 (設定ファイルのイメージ)
10.
EC-Cube を
Heroku Pipeline に載せる Pull Requestを作って、review appを作成する -> 新規に app を作るのは特段問題なし stagingへのデプロイで色々と問題が発生した 1. デプロイ時に流すスクリプトはどうするの? 2. 環境ごとにDBとか切り分けたいがどうするの? 3. 2回目以降のデプロイ後、管理画面にログインできない! 4. プラグインのインストールでエラー発生...
11.
EC-Cube を
Heroku Pipeline に載せる 1. デプロイ時に流すスクリプトについて PHPアプリをHerokuにデプロイする場合、Composer.json内の “scripts” -> “compile” にて指定したコマンドが実行 される ここに、EC-Cubeインストールコマンドを指定する -> https://devcenter.heroku.com/articles/php-support#custom-compile-step アプリを新規作成する場合(review appを作成するなど)には、以下の処理 既にインストールされているアプリに差分をデプロイする場合(stagingへのデプロイ)には、 以下の処理 環境ごとに、デプロイ時の処理を切り替える
12.
EC-Cube を
Heroku Pipeline に載せる 1. デプロイ時に流すスクリプトについて 環境ごとに切り替えるインストールスクリプトを用意する (スクリプトのイメージ)
13.
EC-Cube を
Heroku Pipeline に載せる 1. デプロイ時に流すスクリプトについて 作成したスクリプトを、composer.json から呼び出す インストール用のスクリプトを、 composer.json で指定する
14.
EC-Cube を
Heroku Pipeline に載せる 2. 環境ごとにDBとかを切り分けたい こんな感じに環境に応じて設定ファイルを分け られるようにしたい
15.
2. 環境ごとにDBとかを切り分けたい src/Eccube/Application.php に手を加える ->
環境変数によって読み込むconfigを切り替える ただ、src/Eccube/Application.php に手を加えるのが良い方法かどうか?? (詳しい人からのアドバイスを募集...) ※本体の方でも修正があった模様? https://github.com/EC-CUBE/ec-cube/pull/2550 EC-Cube を Heroku Pipeline に載せる
16.
3. 2回目以降のデプロイ後、管理画面にログインできない(stagingアプリ) Herokuの環境変数として AUTH_MAGIC
をもたせて、常に同じ値とする ① /eccube_install.php を実行 ② 変数 AUTH_MAGIC を新規生成 ③ ②の AUTH_MAGIC 値を使って、saltキーを生成 ⑤ 設定ファイルに AUTH_MAGIC を保存 ④ saltキーとともにadminユーザを登録 初回デプロイ 2回目以降デプロイ � ユーザ登録時のAUTH_MAGICの値と異 なる値を設定ファイルに保存 -> ログインできない! (stagingアプリのデプロイ処理 一部抜粋) EC-Cube を Heroku Pipeline に載せる
17.
4. プラグインのインストールでエラー発生(stagingアプリ) EC-Cube
を Heroku Pipeline に載せる (まず)プラグインのインストール方法について 1. プラグインのインストールはスクリプト化しておく 2. デプロイ時にアプリによって処理を切り分ける review app(appを新規作成) -> app.json の scripts にスクリプトを指定する staging(差分更新) -> デプロイ後に手動で実行($ heroku run bash xxx)
18.
4. プラグインのインストールでエラー発生(stagingアプリ) インストール処理で、使用するテーブルの存在をチェックしてないプラグインもある (テーブルの存在チェックは、プラグイン作成時の必須要件ではない) プラグインを都度修正(存在チェックを追加していく) EC-Cube
を Heroku Pipeline に載せる
19.
本体 プラグイン composer.json
app.json インストール - - - • addon指定 • postgres • redis • cloudinary(ベター?) Pipelineへの搭 載 環境ごとに 設定ファイルを 切り分ける インストール時に 重複エラーを回避する 環境ごとに デプロイ時の処理を 切り分ける • 環境変数 • AUTH_MAGIC を指定する (これまでの修正箇所)
20.
物理ファイルは格納できないので、ストレージサービスは必須 セッション管理には、redisなど別のデータストアサービスを利用する
アプリの設定ファイルは、環境ごとに切り分けできるようにする 本体の方でも検討されている模様なので要確認 デプロイ時の処理(インストールなど)の内容を把握して、 review app作成時と、stagingデプロイ時の両方にも対応できるようにする (これまでで分かってきたこと...)
21.
EC-Cube を
Heroku で稼働させる上でのノウハウを もっと溜め込みたい 他のソフトウェアもHerokuで稼働させることを試してみたい -> Heroku で「何か」を稼働させる上でのポイントを溜め込みたい
Download now