目次
はじめに
この記事ではEC-CUBE4をAWSのUbuntu18.04上で独自ドメインで動かす方法を紹介します。なお、動作検証を行った環境は以下の組み合わせでです。他の環境では試しておりませんのでご了承ください。
- EC-CUBE 4.0.2
- PHP 7.2.24
- Apache 2.4.29
- Ubuntu 18.04
作業自体は10分くらいで終わるので、あまり難しく考えずサクッと独自ドメイン運用をはじめちゃいましょう。
01. 独自ドメインの取得/設定
EC-CUBE4を独自ドメインで運用するにはドメインを「お名前.com」などで取得している必要があります。
ここで好きなドメインを取得してください。この記事では、example.com
というドメインを取得したという想定で話を進めます。記事中の example.com
の部分はご自身のドメインで読み替えていただければと思います。
ドメインを作成したら、まずはルーティングをAWSのネームサーバに変更します。
そのため、まずはAWSのコンソールを開き、Route 53のページを開いてください。
https://console.aws.amazon.com/route53/home
独自ドメインのホストゾーンを作成すると、4つのネームサーバーを画面上に現れます。
この4つのサーバ名を後で使います。この画面は、このまま置いておいてください。
次にお名前.comのネームサーバの設定を行います。
https://www.onamae.com/domain/navi/menu/domain
以下の画面で「他のネームサーバーを利用」を選択し、ネームサーバー情報を入力するボックスに先程のRoute 53のネームサーバ4つを記入し、保存してください。
これで、example.com
にAWSのネームサーバが登録されました。
変更が適用されたかどうかを確認するには以下のコマンドを実行してください。上述の4つのネームサーバ名が返ってくれば、反映が完了したということになります。最大で72時間ほどかかるので、反映されない場合は3日間待ちましょう…
nslookup -type=ns example.com
上記の設定が完了したら、再びAWS Route53の画面に戻りましょう。次は http://example.com
でアクセスした際に、そのHTTPリクエストがEC-CUBEをインストールするEC2に飛ばされるようにAレコードの設定を行います。
https://console.aws.amazon.com/route53/home
下図のように、「レコードセットの作成」ボタンを押し、右側にHTTPリクエストの送信先を記述します。
ここでは、やり方は2つあって、
- ロードバランサを経由してEC2に転送するパターン
- EC2に直接転送するパターン
があります。ロードバランサを使うほうが、HTTPS化なども簡単に行うことができるのでおすすめです。
ロードバランサを使う場合は以下の記事を参考にロードバランサの設定を行った上で、上図の右側の赤丸の中にある「エイリアス」を「はい」にし、選択ボックスの中から該当のロードバランサをクリックしてください。
【参考記事】
EC2に直接転送する場合は、「エイリアス」は「いいえ」にし、EC2のIPアドレスを値に入力してください。
これで独自ドメインの設定は終了です。
02. ECCUBE4側の設定
EC-CUBE側では、実はやることはほとんどありません。
まず、以下の記事を参考にして、AWS上でEC-CUBEの開発環境が立ち上がるところまで確認してください。
EC-CUBEが立ち上がりブラウザからアクセスできることを確認したら、「開発モード」から「本番モード」に変更して、本番用として起動できるようにしましょう。
EC-CUBE4では .env
を2行だけ書き換えるだけでOKです。
.env
を開き、ファイル上部の2行を以下のように書き変えてください。
APP_ENV=prod APP_DEBUG=0
これでEC-CUBE側の設定は終了です。
03. Apache側の設定
最後に、Apacheの設定を行います。
やるべきことは大きく2つあります。
1つは、http://example.com
に対するHTTPリクエストをEC-CUBE4に受け渡せるようにすること。
もう一つは、PHPを実行できるようにすること。
以上の2点です。 順番にやっていきましょう。
まず、Apacheの設定ファイルを作成します。
UbuntuのApache2.4では、etc/apache2/sites-available/
配下に複数のコンフィグファイルを持つことが出来ます。そして、どのコンフィグを有効/無効にするかをetc/apache2/sites-enabled/
で制御します。
有効にしたいetc/apache2/sites-available/
配下のコンフィグファイルに対して、etc/apache2/sites-enabled/
の中にシンボリックリンクを張ることで有効化されます。
ここでは、001-example-com.conf
というコンフィルファイルを作って、そのシンボリックリンクをetc/apache2/sites-enabled/
内に生成します。
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-example-com.conf sudo ln -snf /etc/apache2/sites-available/001-example-com.conf /etc/apache2/sites-enabled/001-example-com.conf
ファイルが作成できたら、この 001-example-com.conf
を編集していきましょう。(シンボリックリンクを貼っているのでどっちを編集しても同じです)
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName example.com ServerName www.example.com DocumentRoot /home/ubuntu/work/hogehoge/ec ServerAdmin info@example.com AddType application/x-httpd-php .php <Directory /home/ubuntu/work/hogehoge/ec> AllowOverride All Require all granted Options +FollowSymLinks +SymLinksIfOwnerMatch </Directory> # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". # Include conf-available/serve-cgi-bin.conf </VirtualHost>
注意点はここです↓。
ServerName example.com ServerName www.example.com DocumentRoot /home/ubuntu/work/hogehoge/ec ServerAdmin info@example.com
ServerName example.com
には独自ドメインを設定してください。
ServerAdmin
は連絡先となるメールアドレス。
DocumentRoot
はEC-CUBEをインストールしたフォルダパスを設定してください。
AddType application/x-httpd-php .php
はPHPが動作するようにするオマジナイです。
また、次のブロックについても少し解説します。
<Directory /home/ubuntu/work/hogehoge/ec> AllowOverride All Require all granted Options +FollowSymLinks +SymLinksIfOwnerMatch </Directory>
/home/ubuntu/work/hogehoge/ec
の部分は、ご自身のEC-CUBEのインストール先のパスにしてくだい。
AllowOverride All Require all granted Options +FollowSymLinks +SymLinksIfOwnerMatch
の部分はそのまま。オマジナイと思ってください。
以上で設定は終了です。
もしエラーが出た場合、mod-php
というパッケージが足りていない可能性があります。以下のコマンドでインストールすることで解決します。
sudo apt install libapache2-mod-php7.2
再起動に成功したら、ブラウザを開いてhttp://example.com にアクセスしてみましょう。あなたのEC-CUBEサイトが表示されれば成功です!!
表示されない場合、EC-CUBEのルートディレクトリ配下の .htaccessをチェックしてみましょう。
以下の記載がもしなかったら追記してみてください。問題が解決できるかもしれません。
RewriteEngine On RewriteBase /
以上です。お疲れさまでした!!
以上、EC-CUBE4をAWSのUbuntu18.04上で独自ドメインで動かす方法に関する記事でした!
良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリック、Twitterのフォローをお願いします!