テスト環境のEC-CUBEサイトを複製して、同じEC-CUBEサイトをもう一つ構築する必要が生じた。サイト構築の方法としては、サーバ (仮想マシン) のイメージを丸ごと複製する方法をまず思いつくし、新サーバにEC-CUBEを新規導入した後、EC-CUBEのデータベースを複製する方法もありえるはず。今回は初めての機会として後者の方法でやってみた。扱う環境は次の通り。
項目 | 複製元 | 複製先 |
---|---|---|
OS | Ubuntu 22.04 | Ubuntu 22.04 |
EC-CUBE | 4.2.1 | 4.2.1 (※) |
データベース | PostgreSQL 14.10 | PostgreSQL 14.10 |
特記事項 | 商品登録を多少行っただけの状態。プラグインは導入無し。Web APIでGraphQLを利用している。 |
$ pg_dumpall -h localhost -U <DB_USERNAME> --no-role-passwords -f <DUMPFILE.sql>
作業で楽をするために、拙作のansible-playbook「EC-CUBE4の公式パッケージをUbuntu環境に導入する時短ansible-playbook 〜PostgreSQL/Nginx/Let’s EncryptのSSL証明書とともに〜」 (以下、ec-cube4_installerと表記) を用いている。
$ psql -h localhost -U <DB_USERNAME> -d <DB_NAME> -f <DUMPFILE.sql>
Unable to generate a URL for the named route \"admin_api_oauth\"
<EC-CUBEディレクトリ>/html/upload/save_image/
以下のファイルを複製先の同じディレクトリに保存する$ <EC-CUBEディレクトリ>/bin/console cache:clear --no-warmup
## 必要に応じて管理者権限で
$ sudo <EC-CUBEディレクトリ>/bin/console cache:clear --no-warmup
EC-CUBEのログファイルは <EC-CUBEディレクトリ>/var/log/
以下に保存されるので、状況を詳細調査する場合にはここを参照すること。