AWS

ステップバイステップ: Amazon Linux 2023にLAMPとWordPressをセットアップ

amazonlinux-wordpress
o_wani

現在、Webサイトやブログを構築する際に、WordPressを使用するケースが多いですよね。この記事では、Amazon Linux2023上でのLAMP環境の構築から、Wordpressのインストールまでのプロセスを、わかりやすくステップバイステップで解説します。初心者から上級者まで、誰でも容易に手順を追える内容としていますので、最後までお付き合いください。

※今回は、EC2のみのサービスを利用想定で、データベースとして別途RDSを使用する構成ではありません。

※今後、この記事で構築したWordPressで作成した記事を出力して、S3に保存し、CloudFront経由でアクセスする構成を想定しています。

EC2インスタンスの起動

デフォルトのままで、Amazon Linuxを使用していきます。

  • インスタンスタイプ:t2.micro
  • ストレージ:8GB

インスタンスタイプやストレージもデフォルトのままで進めます。必要になれば、あとから変更できますし、最小構成で進めます。

キーペアは新規で作成します。慣れ親しんだものがすでにあればそちらをご利用でも良いと思います。

ネットワーク設定もそのままデフォルトで進めます。

このあと、このEC2にWordPressをインストールして、管理画面にアクセスし使用していきますが、セキュリティグループも新しく設定していきます。

あとは[インスタンスを起動]ボタンを押して、EC2を作成します。

ElasticIPの設定

EC2に固定IPを割り当てる

EC2は常時稼働させる必要はありません。そのため、使用しない時はEC2を停止するという運用を考えています。

しかし、EC2を起動するたびにIPアドレスが変わるのは不便ですよね。

その場合、Elastic IPを利用して固定のIPアドレスをEC2に割り当てることで、常に同じIPアドレスを保持することができ、運用がスムーズになります。

a.Elastic IP アドレスを割り当てる
Elastic IP アドレスを割り当てる]ボタンを押して、EC2を作成します。

b.Elastic IP アドレスの関連付け
EC2のインスタンスを選択して関連付けます。

作成済のEC2(インスタンス)を選択しましょう。

WordPressのセットアップ

EC2でAmazon Linuxを起動した状態では、WordPressを動かすために必要なミドルウェアが入っていないです。そのため、PHPやWebサーバ、データベースのインストールが必要になります。

ここからは、EC2にターミナルでログインし、コマンドベースでの作業をします。割り当てたIPアドレスと、ダウンロードしたキーペアでSSHログインを行います。

% ssh -i "~/.ssh/WordPress-ec2.pem" ec2-user@XXX.XXX.XXX.XXX

ここからの手順は、Amazon Linux 2023のLAMP環境の公式情報を参照で進めましょう。
SSHログイン後は、システムを最新の状態にしておきましょう。

$ sudo dnf update -y
Last metadata expiration check: 5:38:04 ago on Thu Aug 10 23:47:34 2023.
Dependencies resolved.
Nothing to do.
Complete!

私の場合は、とくにアップデートが無かったようです。

WEBサーバー

Apacheのインストール

a.Webサーバーとして今回はApacheをインストールしておきます。

$ sudo yum install httpd -y

b.Apacheを起動をします。

$ sudo systemctl start httpd

c.自動起動を有効にします。
自動起動は、EC2のインスタンスを停止させ、再度起動させたときに、Apacheが自動で起動するようにします。

$ sudo systemctl enable httpd
PHP8

PHPのインストール

PHPのインストールを行います。いまインストールするとPHP8がインストールされます。

$ sudo yum install php-fpm php-mysqli php-json php php-devel -y

インストールされたかどうかの確認です。

$ php -v
PHP 8.2.7 (cli) (built: Jun  6 2023 21:28:56) (NTS gcc x86_64)
Copyright (c) The PHP Group
データベース

MySQLのインストール

データベースとして今回はMySQLをインストールしておきます。

a.MySQLをインストールします。

$ sudo dnf install mariadb105-server

b.MySQLを起動します。

$ sudo systemctl start mariadb

c.初期化とアカウント作成を行います。

$ sudo mysql_secure_installation

Switch to unix_socket authentication [Y/n] Y
Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

d.自動起動を有効にします。

$ sudo systemctl enable mariadb

e.MySQLにログインしましょう。

$ mysql -u root -p

f.ログインが出来たら、WordPress用のテーブルの生成を行います。

> CREATE DATABASE wordpress_table CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

g.WordPress用のユーザーとPWの生成を行います。

> CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'PasswordXXXXX';
> GRANT ALL PRIVILEGES ON wordpress_table.* TO 'wordpress_user'@'localhost';

これでOKです。

権限の設定

/var/www/の権限設定まわり

/var/www/をドキュメントルートにしてWordPressの設置を行っていきます。

Apache httpd は、Apache ドキュメントルートと呼ばれるディレクトリに維持されるファイルを提供します。Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root によって所有されます。

ec2-user アカウントがこのディレクトリで複数のファイルを操作することを許可するには、ディレクトリの所有権とアクセス許可を変更する必要があります。このタスクを行うには、複数の方法があります。このチュートリアルでは、ec2-user を apache グループに追加し、/var/www ディレクトリの所有権を apache グループに付与し、グループへの書き込み権限を割り当てます。

引用:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2023.html#prepare-lamp-server-2023

ファイルの書き込み権限などの問題を解決しておくために、参考サイトの手順に沿って進めます。

$ sudo usermod -a -G apache ec2-user
$ sudo chown -R ec2-user:apache /var/www
$ find /var/www -type f -exec sudo chmod 0664 {} \;
WordPress

WordPressのダウンロードとインストール

a.wgetコマンドでWordPressをダウンロードします。

$ wget https://ja.wordpress.org/latest-ja.tar.gz
$ tar -zxvf latest-ja.tar.gz

b.ドキュメントルートにWordPressを設置します。

$ mv wordpress/* /var/www/html/

c.WordPressの設定ファイルを設置します。

$ cp wp-config-sample.php wp-config.php

d.各種設定を行います。

  • DB_NAME:データベース名
  • DB_USER:データベースユーザー名
  • DB_PASSWORD:データベース接続パスワード
  • DB_HOST:データベース接続ホスト名

上記項目は、データベース設定時の情報で記載します。

「Authentication unique keys and salts」の項目は、URLにアクセスしてその内容をコピーして設定すると良いでしょう。

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

WordPressの設定は以上で、ブラウザでアクセスすれば、初期設定画面が表示されますが、その前にEC2のセキュリティグループの見直しを行います。

ec2セキュリティグループ

セキュリティグループの変更

デフォルトでEC2に割り当てたセキュリティグループでは、SSHの接続のみ許可されています。

ブラウザでWordPressの設定画面にアクセスするためには、HTTP接続を許可する必要があり、「192.0.0.0/32」と記載している部分を自宅のIPアドレスにすれば、自宅からのみのアクセス許可となりますし、「0.0.0.0/0」にすれば、どこからでもアクセス可能となります。

WordPressのセットアップ

ブラウザでWordPressの初期設定画面にアクセス

ここで、ようやくブラウザでアクセスします。

今回は例えば、仮のアドレスですが、http://55.161.41.221のようなEC2に割り当てた、Elastic IPアドレスにアクセスすると、初期設定画面が表示されます。

各自、必要な項目を設定してインストールを完了させます。無事完了で、WordPressのセットアップ終了です!

STAFF
o_wani
o_wani
スタッフ
大学卒業後、15年間WEB業界で働く。現在はマネジメントに従事していますが、ChatGPTの登場に触発され、このブログを再開。AIをパートナーに、自分で手を動かして実装する楽しさと喜びを再発見中。時代が変わりつつある中でも、陳腐化しない情報発信も目指しています。
記事URLをコピーしました