Exmentをさくらインターネット上に構築していたんですが、動作がどうも重かったのでAWSに移行することにしました。
その移行手順をメモしておきたいと思います。
全体の流れ
- AWSでLightsailコンソールにログイン
- 新たにLAMPインスタンスを作成する
- StaticIPを設定する
- SSHでログインしてphpmyadminのアクセス設定
- 旧サーバからDBとファイルを移動
- httpd.confを設定
- php.iniを設定
- DNS設定変更及びSSL証明書の発行
AWSでLightsailコンソールにログイン
新たにAWSにルートアカウントを登録してLightsailコンソールにログインします。
新たにLAMPインスタンスを作成する
新たにLinuxインスタンスを作成するとともにLAMP環境を構築します。
全てLightsailがインスタンス作成と同時に構築してくれます。
StaticIPを設定する
インスタンスを再起動するとIPアドレスが変わってしまうので、固定IPアドレスを取得して設定します。
SSHでログインしてphpmyadminのアクセス設定
自動でインストールされているphpmyadminは、Web経由では基本的にアクセスできません。
Bitnamiのドキュメントによると、sshトンネルをパソコン側に設定しないといけないとのことです。
都度トンネル設定するのは結構面倒なので、Basic認証を設定した上でどこからでもアクセスできるように設定することにします。
いくつか参考になるサイトはあったのですが、どうも最新版のBitnamiではphpmyadmin.confの場所が変わっているようです(インストールされたBitnamiは7.4.25-6)。
Alias /phpmyadmin "/opt/bitnami/phpmyadmin"
<Directory "/opt/bitnami/phpmyadmin">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
AuthType Basic
AuthName phpmyadmin
AuthUserFile "/opt/bitnami/apache/users"
Require valid-user
</Directory>
Require all granted以下が編集した部分です。
usersファイルを作成して、Basic認証用のIDとパスワードを設定します。
設定が終わったらapacheを再起動します。
$ sudo /opt/bitnami/ctlscript.sh restart apache
旧サーバからDBとファイルを移動
phpmyadminとFTPを利用して旧サーバのデータベースとファイル群を移動させます。
httpd.confを設定
httpd.confに新しいファイル群にアクセスできるように設定を追加します。
今回はphpmyadmin.confを参考にexment.confを作成し、httpd.conf内でincludeしました。
Alias /phpmyadmin "/opt/bitnami/exment"
<Directory "/opt/bitnami/exment">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
設定が終わったらapacheを再起動します。
$ sudo /opt/bitnami/ctlscript.sh restart apache
php.iniを設定
exmentを利用するのにメモリやアップロードファイルサイズなどを設定する必要があるので、php.iniを編集しました。
php.iniは/opt/bitnami/php/etc/にあります。
php.iniの修正を反映させるためにはapacheだけでなく、php-fpmの再起動も必要になります。
$ sudo /opt/bitnami/ctlscript.sh restart apache
$ sudo /opt/bitnami/ctlscript.sh restart php-fpm
DNS設定とSSL証明書発行
既にさくらインターネットでドメインは取っていたので、DNSサーバに設定を追加してドメイン経由でアクセスできるようにAレコードを設定しました。
SSL証明書はLet's Encryptを使用して生成。
まとめ
ここまでできれば基本的にドメイン&https経由でサーバにアクセス可能になります。
試行錯誤しながらなので結局1日かかりました。