AWS: 簡単なLAMPサーバーでWordPressを動かすまで（Intel Mac） 〜Apacheをインストール〜

# はじめに
AWSハンズオンの学習記録です。
2022年8月の情報をもとに投稿します。

ゴールは、EC2を使って簡易的な仮想サーバーを作り、ブログソフトであるWordPressをインストールします。
また、WordPressを外部公開できることを想定しています。

**今回はWebサーバーである「Apache」のインストール方法を投稿します。**

尚、ハンズオンがメインのため、各サービスの概要や用語の解説は極力省かせていただきます。

### ゴール
仮想サーバーでWordPressを使える状態にします

### ゴールまでの流れ

[1.VPCとサブネットを作成](https://qiita.com/holySh10/items/749b98e320fc71e6739e)
[2.EC2を作成／セキュリティグループの設定](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd)
[3.EC2へSSH接続](https://qiita.com/holySh10/items/689f4c83cd18db128983)

:::note info
4.Webサーバーである「Apache」をインストール（本記事ではここを解説します）
:::
[5.プログラミング言語である「PHP」をインストール](https://qiita.com/holySh10/items/90507e2b03ee6c681790)
[6.データベースである「MariaDB」をインストール](https://qiita.com/holySh10/items/0b8b9d5ea96582b39fca)
[7.WordPressをインストール](https://qiita.com/holySh10/items/cd3db43cf0e951705c31)

### 本記事の目的
・Apacheのインストール方法を理解します
・yum コマンドの操作方法を理解します
・systemctl コマンドの操作方法を理解します

### 動作環境
・MacBook Pro (Retina, 13-inch, Late 2013)
・macOS: Big Sur 11.6.1
・CPU: Intel
・メモリ: 8GB

# Apacheインストールの流れ

#### ①EC2インスタンスへSSH接続
前回記事に沿って、EC2へSSH接続します。
詳しくは[こちら](https://qiita.com/holySh10/items/689f4c83cd18db128983)
```
       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-xxx-xxx-x-xxx ~]$ 
```
この表示が出れば成功です。
#### ②root ユーザーに切り替える
>**root ユーザー**とは、いかなる操作もできる管理ユーザーのことです。後述するyum コマンドを用いてインストールを行うのですが、まずはroot ユーザーに切り替える必要があります。

入力例↓
```
[ec2-user@ip-xxx-xxx-x-xxx ~]$ sudo -i
```
記述方法は、$の後に `sudo`+`[space]`+`-i`を入力しreturnキーを押下
すると、以下の文章が表示されます。
```
[root@ip-xxx-xxx-x-xxx ~]# 
```
`#`のプロンプトが表示されれば、root ユーザーへの切り替えは成功です。
#### ③yum コマンドを使ってApacheをインストールする
>**yum コマンド**とは、LinuxのRedHat系ディストリビューション（CentOSやFedoraなど）で利用できる、ソフトウェアのパッケージを管理するときに使うコマンドです。
ソフトウェアをインストールする際は、
`#yum install [ソフトウェア名]`という形で入力します。


以下のように入力します↓
```
# yum install httpd
```

:::note
**httpd**とは、主にUNIX系OSのWebサーバソフトにおける実行ファイル名およびコマンド名で、常駐プログラム（デーモン）の一種です。かなりざっくりですが、Apacheのソフトウェア名と考えても良いです。
:::
すると、以下の情報が表示されます↓ *※途中省略します*
```
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd  
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.54-1.amzn2 を インストール
~~~~省略します~~~~
依存性を解決しました
=================================================================
 Package                アーキテクチャー
                                  バージョン                リポジトリー   容量
=================================================================
インストール中:
 httpd                  x86_64    2.4.54-1.amzn2            amzn2-core    1.4 M
依存性関連でのインストールをします:
 apr                    x86_64    1.7.0-9.amzn2             
~~~~省略します~~~~
トランザクションの要約
=================================================================
インストール  1 パッケージ (+8 個の依存関係のパッケージ)

総ダウンロード容量: 1.9 M
インストール容量: 5.2 M
Is this ok [y/d/N]: 
```
`:`の後に`y`を入力し、returnキーを押下すると、以下の情報が表示されます↓ *※途中省略します*
```
Downloading packages:
(1/9): apr-1.7.0-9.amzn2.x86_64.rpm                        | 122 kB   00:00     
~~~~省略します~~~~
(9/9): mod_http2-1.15.19-1.amzn2.0.1.x86_64.rpm            | 149 kB   00:00     
--------------------------------------------------------------------------------
合計                                                10 MB/s | 1.9 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : apr-1.7.0-9.amzn2.x86_64                        1/9 
 ~~~~省略します~~~~
  インストール中          : httpd-2.4.54-1.amzn2.x86_64                     9/9 
  検証中                  : apr-util-1.6.1-5.amzn2.0.2.x86_64               1/9 
 ~~~~省略します~~~~
  検証中                  : apr-1.7.0-9.amzn2.x86_64                        9/9 

インストール:
  httpd.x86_64 0:2.4.54-1.amzn2                                                 

依存性関連をインストールしました:
  apr.x86_64 0:1.7.0-9.amzn2                                                                             
~~~~省略します~~~~                                   
  mod_http2.x86_64 0:1.15.19-1.amzn2.0.1                                        

完了しました!
[root@ip-172-168-2-239 ~]# 
```
上記のように`完了しました!`、もしくは`Complete!`などと表示されればApacheのインストールは成功です。
#### ④Apacheを起動する

systemctl コマンドを用いて、以下のように入力します↓
```
# systemctl start httpd
```

:::note
**systemctl コマンド**とは、LinuxOSなどで使われる、サービスの起動・停止や自動起動、サービス状態の確認などができる、いわゆるサービスを管理するコマンドです。CentOSやRedhat7系から利用できます。
:::
#### ⑤Apacheが起動できたか確認する
systemctl コマンドに`status`を用いて、以下のように入力します↓
```
# systemctl status httpd
```
すると、以下の情報が表示されます *※省力します*
```
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 土 2022-08-06 16:09:18 UTC; 5min ago
~~~~以下省略します~~~~
```
`Active: active (running) `という表示があれば、Apacheが起動できていることになります。
#### ⑥WebブラウザでApacheが起動できているか確認する
方法は、Webブラウザに[パブリックIPアドレス(Elactic IPアドレス)](https://qiita.com/holySh10/items/689f4c83cd18db128983#elastic-ip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%B8%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B)を入力します。
![スクリーンショット 2022-08-07 1.20.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/b2eca244-aed5-5775-6794-32ebcf2fc66c.png)
上記のページが表示されれば成功です。
# あとがき
今回はWebサーバーである「Apache」のインストール方法を投稿しました。
Linuxへの理解をさらに深めると、様々な操作ができるようになります。（著者ももっとLinuxを掘り下げたいです・・・）
次回は[プログラミング言語である「PHP」のインストール方法](https://qiita.com/holySh10/items/90507e2b03ee6c681790)を投稿します。

ここまでご覧いただき、今回も誠にありがとうございます。