はじめに
私自身、AWSとかLAMP環境とか全く分からない状況から始めた。
EC2にはAmazon Linux2があるが、中身を理解するなら、個人的な意見になるがCentOSで始めたほうが良いと思う。
このページでは、WordPressが使える環境を構築する。OSはCentOS7を使用(Amazonマーケットプレイスにあるやつ)。SSH接続はMacのターミナルから実施。
無料で実施できるので金が無い人でも安心。
(クレカ登録必要なのと、AWSの仕様上使いすぎると金取られるので、サーバーを24時間5台ぐらいつけっぱなしだけは辞めておいたほうが良い。)
セットアップは全体的に以下のサイトを参考。
AWSのアカウントを作成する
以下のページからAWSのアカウントを作成しコンソールにログインする。
https://portal.aws.amazon.com/billing/signup#/start
仮想マシンを起動する
AMI(Amazonマシンイメージ)を選択
インスタンスタイプを選択
キーペアを作成
名前は自由。作成するとpemファイルがダウンロードされるので保管する。
鍵の権限設定
これを実行しないと、SSH接続のタイミングでエラーが発生する。pemファイルはSSHKeyフォルダを作成し配置。
chmod 600 /SSHkey/CentOS7Key.pem
SSH接続
ブラウザからも接続できるが、ターミナルから実行した方が楽。
ssh -i /SSHkey/CentOS7Key.pem centos@ec2-18-218-155-69.us-east-2.compute.amazonaws.com
ユーザーはrootではなくcentosでログインする必要がある。
CentOS環境整備
- OSバージョン確認
cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
- OSアップデート
sudo yum update
- パスワード設定
sudo passwd centos
これでパスワードを設定していなくても、パスワードを設定できる。
Apache httpdセットアップ
Apache2もあるが、今回はhttpdを使用する。
- httpdインストール
sudo yum install httpd
- httpd起動
起動時、centosユーザのパスワードが求められる。
systemctl start httpd
- ファイアウォールの設定
http通信を許可するためにポート解放する必要がある。
また、設定前に「firewalld」をインストールする必要がある。
設定後は「firewalld」を再起動する。
sudo yum install firewalld
sudo firewall-cmd --add-service=http --zone=public --permanent
systemctl restart firewalld
- AmazonEC2のセキュリティグループの設定
本来ならこれだけで接続できるが、AmazonEC2の場合はセキュリティグループの設定もしなければならない。以下のリンクの「セキュリティーグループの設定」を参照。
- ブラウザから接続
AmazonEC2のインスタンスの説明にある、パブリックDNSかIPv4パブリックIPをコピペしてhttp接続をする。
以下、パブリックDNSの例。
http://ec2-18-218-155-69.us-east-2.compute.amazonaws.com/
- サーバー起動時設定
サーバー起動タイミングでhttpdが起動する設定。
systemctl enable httpd
設定されたかの確認は以下のコマンド。以下のコマンドを実行するとviエディタで開かれる。閉じるときは「:q」。
systemctl list-unit-files -t service
PHPセットアップ
インストールするときのバージョンに注意する。
以下のやり方を参考。
CentOS7でphp7.4をインストールしようとして躓いた話
- Remiリポジトリの情報
以下が公式リンク。
CentOS7を使用する場合は「remi-release-7.rpm」でいいと思われる。
- epel-release インストール
sudo yum install epel-release
- Remiリポジトリインストール
sudo rpm -ivh http://ftp.riken.jp/Linux/remi/enterprise/remi-release-7.rpm
- php確認
yum list php*
- httpd+php7.4+mariadb インストール
sudo yum install httpd mariadb-server php74
- phpファイル作成
/var/www/html/の下にindex.phpを作成。
<html>
<body>
<?php echo "Hello World! php" ?>
</body>
</html>
ファイル作成コマンドは以下の通り。
sudo touch index.php
ファイル編集コマンドは以下の通り。
sudo vi index.php
ファイルアップ後再起動は以下の通り。
systemctl restart httpd
現在の状態だとphpが見えないので、以下を実施する。
- /etc/yum.repos.d/remi-safe.repo修正(無効にする)
enabled=1
↓
enable=0
- /etc/yum.repos.d/remi-php74.repo修正(有効にする)
enabled=0
↓
enabled=1
- /etc/yum.repos.d/CentOS-Base.repo修正(php除外)
baseとupdatesに以下を追加。(おそらく16行目付近と24行目付近)
exclude=php*
- 以前のphpをアンインストール
suでrootユーザに変更してから実行する。
for i in`rpm -qa |grep php`;do yum -y remove $i;done
- phpを再度インストール
yum install php
- サーバー再起動
systemctl restart httpd.service
- ページ確認
以下のURLのように/index.phpを後ろにつける。
http://ec2-18-218-155-69.us-east-2.compute.amazonaws.com/index.php
MariaDBセットアップ
既に上のPHP手順でインストールはしている。
一応確認。
- MariaDBのインストール
yum install mariadb-server
- MariaDBの有効化とスタート
systemctl enable mariadb
systemctl start mariadb
- 初期設定
mysql_secure_installation
具体的な手順は以下参照。
ネコでもわかる!さくらのVPS講座 ~第四回「phpとMariaDBをインストールしよう」
- ログイン
mysql -u root -p
PHPMyAdminのセットアップ
DBを操作しやすくするツールである。
- phpMyAdminのインストール
yum-config-manager --enable remi
yum install phpMyAdmin
- /etc/httpd/conf.d/phpMyAdmin.conf修正
と
のRequire local
をRequire all grantedに修正
- phpMyAdminの確認
以下のURLのように後ろに/phpmyadmin/をつける
http://ec2-18-218-155-69.us-east-2.compute.amazonaws.com/phpmyadmin/
WordPressのセットアップ
- wordpress用のDB作成
以下のリンクを実施。
ネコでもわかる!さくらのVPS講座 ~第八回「WordPressサイトを公開しよう」
- wordPress取得
yum install wget
cd /var/www/html
wget https://ja.wordpress.org/wordpress-5.4.2-ja.tar.gz
rm index.php5
tar xvzf wordpress-5.4.2-ja.tar.gz
- wordPressセットアップ
rm wordpress-5.4.2-ja.tar.gz
mv wordpress/*.rmdir wordpress
chown-R apache:apache *
systemctl restart httpd
- 動作確認
いつも通りURLにアクセス。
おわりに
これで画面にWordPressの設定画面が見えます。よって構築は終わりです。お疲れ様でした。
結構細かく書いて、GUI操作だけリンクに書くようにしてるので、この手順を完全に真似すれば構築できると思います。もし分からない、もっといいやり方ある等意見ありましたらコメントお願いします。