😄
EC2にLAMPサーバーを構築してWordPressをインストールする
EC2にLAMPサーバーを構築してWordPressをインストールする
LAMPサーバーを構築してWordPressをインストールする。
前提条件
- アカウントが作成済み
- EC2を起動済み
- OSはAmazon Linux 2023
firewallとfail2banの設定
学習が目的ではありますが、念のためにインストールして設定を行います。
下記記事にまとめました。
Apacheのインストール
下記コマンドだけでとりあえずWebサーバーが起動し、「# It works!」と表示される。
apacheをインストール
sudo dnf install httpd
apacheを自動的に起動するようにする
sudo systemctl enable httpd
apacheサービスを開始する
sudo systemctl start httpd
PHPのインストール
AWSのドキュメントを参考に必要なPHP関連のパッケージをインストールします。
インストール
sudo dnf install -y php-fpm php-mysqli php-json php php-devel
動作確認
phpの動作確認のために動作確認用のファイルを作成し、phpinfoのページが表示されればOKです。
サーバーを再起動させるとphpの設定を読み込んで実行できるようになります。
sudo echo "<?php phpinfo(); ?>" >> /var/www/html/index.php
sudo systemctl restart httpd
画面にはこんな感じのUIが表示されます。

MariaDBのインストール
インストール
バージョンは適宜変更してください
sudo dnf install mariadb105-server
設定ファイルの作成
幅広い文字を扱えるようにするため、下記設定ファイルを作成
sudo vim /etc/my.cnf.d/mariadb.cnf
# mariadb.cnf
[mysqld]
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
データベースの作成
まだデータベース管理ユーザーは作ってないのでrootユーザーで入る
sudo mysql -u root -h localhost
# ここからデータベース内
MariaDB [(none)]> CREATE DATABASE wp_database;
ユーザー作成
MariaDB [(none)]> CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'wp_password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wp_database `.* TO "wp_user"@"localhost";
MariaDB [(none)]> FLUSH PRIVILEGES;
WordPressのインストール
インストール
wgetが必要です
sudo dnf install -y wget
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
設定ファイルのコピー
cp wordpress/wp-config-sample.php wordpress/wp-config.php
データベースの設定を編集
define( 'DB_NAME', 'wp_database' );
/** Database username */
define( 'DB_USER', 'wp_user' );
/** Database password */
define( 'DB_PASSWORD', 'wp_password' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
AuthKeyはダメなことですが今回スルー
ドキュメントルートにコピー
sudo cp -r wordpress/* /var/www/html/
パーマリンク設定
sudo cp -pi /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_org
sudo vim /etc/httpd/conf/httpd.conf
# 下記のように変更
AllowOverride All
権限を変更する
SGID(Set Group ID)を設定することで今後作成されるファイルやディレクトリは親ディレクトリのグループを継承する。これによりグループ権限を統一することができる。
# /var/wwwとファイルの所有権をapacheユーザーに付与
sudo chown -R apache:apache /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0644 {} \;
完了
以下のページが表示されば完了です

パッケージインストールコピペ用
必要なパッケージを一発でインストールできるようまとめました
sudo dnf install -y wget && \
httpd && \
php-fpm php-mysqli php-json php php-devel && \
mariadb105-server
これをAnsibleで自動インストールに置き換えるのも面白そうなので今後やってみようと思います。
参考記事
最後に
間違っていることがあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。
Discussion