Amazon EC2 の t4.micro インスタンスは、リリース当初は2020年12月末まで無料試用期間と発表されていました。
しかし、その無料試用期間が終了する前に、2021年3月末まで延長されました。
ただ、マネジメントコンソールで Elastic Compute Cloud (EC2) の請求情報を見ると、2021年3月31日までと書いてあって、どっちなんだよ!ってことで、100%信じることができずにいました。※2021/4/9現在
$0.00 per On Demand Linux t4g.micro Instance hour under 750 free hours/month of t4g free trial ending Mar 31 2021 ←これ、英語よくわかんないけど2021/3/31のことだよね?
ただ、金額はちゃんと「$0.00」となっていることが確認できたので、ようやく安心してお試しできます。
そんなわけで、勢い余って Amazon Linux 2 の t4g.micro インスタンス1台に Apache2.4+PHP7.2+MariaDB10.2(MySQL互換のDB) を入れて、WordPressを立ち上げてみました。
前提条件として、ドメインとかSSL/TLSサーバ証明書は別途取得しているものとします。
また、今回は ec2-user でログイン後、
sudo su - してrootで作業しちゃいます。
<EC2インスタンスを起動>
■マネジメントコンソールからEC2インスタンスを起動
リージョン、VPC、サブネットは事前に作成したものを選択。
<事前準備>
■Amazon Linux 2 のタイムゾーンを日本にする
1 2 |
timedatectl set-timezone Asia/Tokyo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime |
■ホスト名を変更する(ドメインは自分のものと読み替えてください)
1 |
hostnamectl set-hostname blog.example.com |
<必要なパッケージをインストール>
■
amazon-linux-extras コマンドで lamp-mariadb10.2-php7.2 を有効にする
1 2 3 4 5 6 7 8 9 10 |
amazon-linux-extras enable lamp-mariadb10.2-php7.2 yum install \ httpd \ mod_ssl \ php \ php-mbstring \ php-opcache \ php-mysqlnd \ mariadb \ mariadb-server |
■httpd(Webサーバー)の設定変更
設定ファイルは
/etc/httpd/conf/httpd.conf と、
/etc/httpd.d/ssl.conf を変更。
サーバーの名前とか設定する。ググるとたくさん出てくるので詳細は割愛。
■PHPの設定変更
設定ファイルは
/etc/php.ini と、
/etc/php.d/ あたりを変更。
タイムゾーンを日本にしたり、OPchacheを有効にしたり、mbstringの日本語指定とかする。WorpPressやる場合、大きなファイルをアップロードするようなら、最大アップロードファイルサイズを大きくしておく。ググるとたくさん出てくるので詳細は割愛。
■MariaDB(データベースサーバー)の起動
1 2 3 |
systemctl start mariadb /usr/bin/mysql_secure_installation ※画面の指示に従って、rootのパスワードを設定する |
設定ファイルは
/etc/my.cnf.d/ にあるけど、そのままでも動いたので説明は省略。
個人的な好みになるけど、ファイルフォーマットを Barracuda にしたり、デフォルトの文字コードを
utf8mb4 にしたり、t4g.nano でも動くようにキャッシュや同時接続数は極力絞ります。同じインスタンスで PHP と MariaDB を使うなら、Socket 通信にする。
■MariaDBにWP用のユーザーとデータベースを作成する(ここも各自で置き換えてください)
ユーザー名:user_name
パスワード:db_password
DB名:database_name
文字セット:utf8mb4
以下のコマンドでMariaDBのコンソールを起動する
1 2 |
mysql -uroot -p ※先ほど作成したパスワードを入力 |
コンソールが立ち上がったら、次のコマンドを実行
1 2 3 4 5 6 7 |
CREATE USER user_name@localhost IDENTIFIED BY 'db_password'; GRANT ALL PRIVILEGES ON *.* TO user_name@localhost; FLUSH PRIVILEGES; ※確認方法 SELECT user, host FROM mysql.user; SHOW GRANTS FOR user_name@localhost; |
引き続き、MariaDBのコンソールで以下を実行
1 |
CREATE DATABASE database_name CHARACTER SET utf8mb4; |
ここまで終わったら、 exit コマンドでMariaDBのコンソールを終了する
<WordPressをインストールする>
■公式サイトから最新版をダウンロード
適当なディレクトリに最新のWordPressをダウンロード、展開、移動する
1 2 3 4 |
wget https://ja.wordpress.org/latest-ja.tar.gz tar xvfz latest-ja.tar.gz cd latest-ja mv * /var/www/html/ |
■WordPressの設定ファイルを変更
1 2 3 |
cd /var/www/html/ cp -p wp-config-sample.php wp-config.php vi wp-config.php |
※変更箇所
/** WordPress のためのデータベース名 */
define( ‘DB_NAME’, ‘database_name’ );
/** MySQL データベースのユーザー名 */
define( ‘DB_USER’, ‘user_name’ );
/** MySQL データベースのパスワード */
define( ‘DB_PASSWORD’, ‘db_password’ );
■httpd(Webサーバー)を起動する
※ここで、ドメインを取得済みならDNSにホスト名とIPアドレスを紐づけておく
※Let’s Encryptなどで無料でSSLサーバ証明書を取得できるので設定しておく
1 |
systemctl start httpd |
<WebブラウザからWordPressを設定する>
Webブラウザで設定画面を表示する
https://blog.example.com/
Webサーバ+PHP7+MariaDB(MySQL互換のDB)をインストールして、WordPressまで入れたら、ブラウザから設定します。
■全部動作確認できたら、httpdとmariadbの自動起動設定を行う。
1 2 |
systemctl enable httpd systemctl enable mariadb |
これで作業完了。