会社という「体」は色々な要素で構成されています。  「顔」であるホームページ作成、「手足」となるスタッフを効率良く動かすための「神経信号」となる「共有ツール」、「エネルギー」である資金を管理するための「会計ツール」etc...  そんな「体をメンテナンス」についてお手伝いをするのが、私たちの務めです。
WEBサーバー(EC2)にWordPressをインストール

WEBサーバー(EC2)にWordPressをインストール

 インフラエンジニア志望の私は、勉強の一環としてAWSを使い、WordPressを構築しました。
 前の記事でEC2インスタンスの作成からSSH接続までの手順をまとめましたが、この記事ではSSH接続後のApacheをインストールからWordPressをインストールするまでを手順でまとめました。
 同じようにWordPress構築やAWSの学習している方の参考になれば幸いです。

 

構築手順

 1. Apacheをインストール
 2. PHPをインストール
 3. MariaDBをインストール
 4. phpMyAdminをインストール
 5. root権限を持った管理者ユーザー作成
 6. WordPressをインストール
 7. WordPressをブラウザ表示

 

1. Apacheをインストール

 Apacheとは世界で最も有名で広く使われているWebサーバーソフトのひとつです。
 ブラウザからのリクエスト(URLアクセス)を受け取り、WordPress(PHP)に処理を渡して、結果を返します。

 

①WordPress を動かすための Web サーバーである Apache をインストールします

sudo yum install httpd -y

 

②Apacheを起動します。

sudo systemctl start httpd

 

③サーバー開始時に自動的に起動するように設定します。

sudo systemctl enable httpd.service

 

④現在使っているec2-userをApacheグループに追加し、/var/www/配下にファイルを書き込めるようにします。

sudo usermod -a -G apache ec2-user

 

⑤/var/www とその中身の所有者:グループを ec2-user:apache に変更します。

sudo chown -R ec2-user:apache /var/www

 

⑥/var/wwwとその中のディレクトリ・ファイルのアクセス権を設定します。

sudo chmod 2775 /var/www

find /var/www -type d -exec sudo chmod 2775 {} \;

find /var/www -type f -exec sudo chmod 0664 {} \;

 

2. PHPをインストール

 PHPとはWebサイトやWebアプリケーションを作るためのプログラミング言語です。
 WordPressはPHPで書かれたWebアプリケーションのため、PHPをサーバーに入れないとただの文字ファイルとして扱われてしまい、動作しません。

 

①利用可能なPHPバージョンを確認します。

amazon-linux-extras list

 

②PHP8.4が参照されるように事前にコマンドを実行します。

sudo amazon-linux-extras enable php8.2

 

③WordPressで必要なPHPモジュールをインストールします。

sudo yum install php php-cli php-mysqli php-gd php-xml php-mbstring php-curl php-zip php-json php-fpm -y

※インストールされるモジュール

  • php→PHP本体
  • php-cli→コマンドライン用のPHP
  • php-mysqli→WordPressがデータベース接続するときに必要
  • php-gd→画像処理
  • php-xml→XML関連処理
  • php-mbstring→マルチバイト文字列処理
  • php-curl→外部API通信やWordPressアップデート時に必要
  • php-zip→プラグインやテーマのアップロード・解凍で必要
  • php-json→JSON処理
  • php-fpm→FastCGIプロセスマネージャ

 

④インストール後、Apacheを再起動してPHPを読み込ませます。

sudo systemctl restart httpd

 

3. MariaDBをインストール

 MariaDBとはデータベース管理システム(RDBMS) です。
 WordPressの記事・ユーザー情報・設定などのデータを保存・管理するために利用します。

 

①WordPress のデータベースとして使用する MariaDB をインストールします。

sudo yum install mariadb mariadb-server

 

②MariaDBの起動と自動起動設定します

sudo systemctl start mariadb

sudo systemctl enable mariadb

 

③初期のセキュリティ設定をします。

sudo mysql_secure_installation

Enter current password for root (enter for none): ← そのままEnter(最初は空が多い)
Set root password? [Y/n] Y ← Y を推奨(強いパスワードを設定)
New password: ********
Re-enter new password: ********
Remove anonymous users? [Y/n] Y ← Y(匿名ユーザは不要・危険)
Disallow root login remotely? [Y/n] Y ← Y(通常はY。リモート管理が必要なら別途ユーザ作成)
Remove test database and access to it? [Y/n] Y ← Y(不要)
Reload privilege tables now? [Y/n] Y ← Y(変更を即反映)

 

4. phpMyAdminをインストール

 phpMyAdminとはデータベース(MySQLやMariaDB)をブラウザから簡単に操作できるツールです。

 

phpMyAdmin関連パッケージをインストールします。

sudo yum install php-mbstring -y

 

Apacheを再起動します。

sudo systemctl restart httpd

 

cdコマンドでApacheドキュメントルートに移動します。

cd /var/www/html

 

wgetコマンドを使ってphpMyAdminをダウンロードします。

wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

 

phpMyAdmin フォルダを作成して、phpMyAdmin パッケージを展開(解凍)します。

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

 

元の tar.gz ファイルをrmコマンドで消します。

rm phpMyAdmin-latest-all-languages.tar.gz

 

Webブラウザからhttp://[パブリックDNS]/phpMyAdmin にアクセスし、ブラウザ表示します。

 

5.root権限を持った管理者ユーザーを作成

 

①設定とユーザー一覧のバックアップを取ります。

sudo mysqldump mysql --tables user global_priv > mysql_users_backup.sql

 

MariaDBにログインします。

sudo mysql -u root -p

 

管理者ユーザーを作成します。
※パスワードは任意のパスワードを設定します。

CREATE USER '任意の管理者名'@'localhost' IDENTIFIED BY 'password';

 

rootと同じ権限を付与します。

GRANT ALL PRIVILEGES ON *.* TO '任意の管理者名'@'localhost' WITH GRANT OPTION;

 

⑤権限を反映させます。

FLUSH PRIVILEGES;

 

⑥EXITでMariaDBを抜けて、管理者ユーザーでログインできるか確認します。

mysql -u 任意の管理者名 -p

 

⑦権限が付与されているか確認します。

※ALL PRIVILEGES ON *.*が表示されればOK です。

SHOW GRANTS FOR '任意の管理者名'@'localhost';

 

rootユーザー使用を無効化します。

※ MariaDB 10.4 以前では ACCOUNT LOCKが使えないため、代わりにRENAME USER ‘root@localhost’ TO ‘root_disabled’@’localhost’;を使用してください。

ALTER USER 'root'@'localhost' ACCOUNT LOCK;

 

⑨無効化されたか確認します。

※出力にACCOUNT LOCKが含まれていればOKです。

SHOW CREATE USER 'root'@'localhost';

 

6. WordPressをインストール

 WordPressとは無料でWebサイトを作成できるソフトウェアで、ブログやホームページなどのWebサイトの構築・運用を行うCMSの一つです。
 CMSとは、Content Management Systemの略語で、コンテンツ管理システムと呼ばれるWebサイトを作成・更新・運営するシステムです。

 

最新の WordPress を EC2 インスタンス上にダウンロードして展開(解凍)します。

wget https://wordpress.org/latest.tar.gz 

tar -xzvf latest.tar.gz

 

mysql クライアントを使って MariaDB に 管理者ユーザーでログインし、WordPressの為のデータベースをセットアップします。

mysql -u 任意の管理者名 -p

 

CREATE USERでデータベースのユーザーとパスワードを作成します。

※パスワード部分は独自のパスワードを設定します。

CREATE USER '任意のユーザー名'@'localhost' IDENTIFIED BY 'password';

 

CREATE DATABASEでデータベースを作成します。

※データベース名はお好みに設定してください。

CREATE DATABASE `任意のデータベース名`;

 

GRANTによって、データベースに対してさきほど作成したユーザーの権限を追加します。

GRANT ALL PRIVILEGES ON `任意のデーターベース名`.* TO '任意のユーザー名'@'localhost';

 

すべての変更を有効にするため、データ権限をフラッシュします。

FLUSH PRIVILEGES;

 

mysqlクライアントを終了します。

exit

 

wp-config-sample.php ファイルを wp-config.php という名前でコピーします。

cp wordpress/wp-config-sample.php wordpress/wp-config.php

 

vimでwp-config.php ファイルを編集します。

vim wordpress/wp-config.php

 

DB_NAME、DB_USER、DB_PASSWORDをmysqlクライアントでセットアップした内容に変更します。

define( 'DB_NAME', '任意のデータベース名');

define( 'DB_USER', '任意のユーザー名');

define( 'DB_PASSWORD', 'password');

※ここは自分で設定したパスワードに変更します。

 

WordPress をドキュメントルートではなく、その下の子ディレクトリで実行するために/html/配下に/blog/ディレクトリを作成しコピーします。

mkdir /var/www/html/blog 

cp -r wordpress/* /var/www/html/blog/

 

vimでhttpd.conf ファイルを開きます。

sudo vim /etc/httpd/conf/httpd.conf

 

AllowOverrideをNoneからAllに変更します。

 ※Allに変更することで .htaccess が有効になります。

<Directory "/var/www/html">
  #
  # Possible values for the Options directive are "None", "All", 
  # or any combination of: 
  # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
  # 
  # Note that "MultiViews" must be named *explicitly* --- "Options All" 
  # doesn't give it to you. 
  # 
  # The Options directive is both complicated and important. Please see 
  # http://httpd.apache.org/docs/2.4/mod/core.html
  #options 
  # for more information. 
  # Options Indexes FollowSymLinks 
  # 
  # AllowOverride controls what directives may be placed in .htaccess files. 
  # It can be "All", "None", or any combination of the keywords: 
  # Options FileInfo AuthConfig Limit 
  # AllowOverride All 
  # 
  # Controls who can get stuff from this server. 
  # Require all granted </Directory>

 

⑭Apache (httpd) が /var/www/ 配下に書き込みできるように権限を設定します。これにより、WordPress の操作が可能になります。

sudo chown -R apache /var/www

sudo chgrp -R apache /var/www

sudo chmod 2775 /var/www

find /var/www -type d -exec sudo chmod 2775 {} \;

 

Apacheを再起動します。

sudo systemctl restart httpd

 

7. WordPressをブラウザ表示

①Webブラウザーでhttp://[パブリックDNS]/blog/wp-admin/install.phpを入力し、WordPressのインストール画面にアクセスします。

  • 言語設定で日本語を選び、Continueをクリックします。

 

②必要情報を入力します。

  • サイトのタイトルに任意のタイトル名を入力します。
  • ユーザー名に任意のユーザー名を入力します。
  • パスワードに任意のパスワードを入力します。
  • メールアドレスを入力します。
  • WordPressをインストールをクリックします。

 

③インストールが成功しました。

  • ログインをクリックします。

 

ユーザー名またはメールアドレスパスワードを入力し、ログインをクリックします。

 

⑤管理画面にアクセスでき、セットアップが完了しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください