はじめに
- AWS EC2インスタンスにApacheをインストールしたときの諸々のメモです
- 誤りがあればご指摘ください
前提
- EC2インスタンスにSSH接続できている状態
EC2のライブラリをアップデートする
sudo yum update -y
- EC2を立ち上げたら最新の状態のライブラリにアップデートする
- yum = Linuxのパッケージ管理ツール。yumで管理しているパッケージを最新化できる
- yumコマンドはec2-userの権限では実行できないため、rootユーザーの権限(sudo)で実行する
- -y :yesオプション。付けないとライブラリを逐一インストールするか尋ねられて面倒
Apacheのインストール
sudo yum -y install httpd
- HTTPD はApacheを構成する実行ファイルのこと
Apacheの起動
sudo systemctl start httpd.service
- コマンド実行しただけだと起動しているかわからない
Apacheが起動しているか確認する
sudo systemctl status httpd.service
実行結果
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2023-01-29 05:18:53 UTC; 34s ago
     Docs: man:httpd.service(8)
 Main PID: 485 (httpd)
   Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─485 /usr/sbin/httpd -DFOREGROUND
           ├─486 /usr/sbin/httpd -DFOREGROUND
           ├─487 /usr/sbin/httpd -DFOREGROUND
           ├─488 /usr/sbin/httpd -DFOREGROUND
           ├─489 /usr/sbin/httpd -DFOREGROUND
           └─490 /usr/sbin/httpd -DFOREGROUND
- Active: active となっていたら起動できている
Apacheの起動確認 (プロセスを確認する)
ps -axu
- ps :Linux上で実行しているプロセスを表示する
- -ax :すべて表示する
- u :CPUやメモリ使用率をあわせて表示させる
実行結果(一部省略)
root       485  0.0  0.9 255484  9444 ?        Ss   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
apache     486  0.0  0.6 306872  6440 ?        Sl   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
apache     487  0.0  0.6 536312  6440 ?        Sl   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
apache     488  0.0  0.6 306872  6440 ?        Sl   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
apache     489  0.0  0.6 306872  6440 ?        Sl   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
apache     490  0.0  0.6 306872  6440 ?        Sl   05:18   0:00 /usr/sbin/httpd -DFOREGROUND
↑この表示があれば、Apacheが起動している
httpdに絞ってプロセスを確認する
ps -axu | grep httpd
- | パイプライン :左の実行結果を次の実行に使いたいときに使用
Apacheを自動で起動させる
sudo systemctl enable httpd.service
- 通常、毎回Apacheの起動コマンドを入力する必要がある
- これを行うことで自動起動をオンにできる
Apacheの自動機能ができているか?確認する
sudo systemctl is-enabled httpd.service
- enabled と表示されたら起動できている
どのポート番号にどのプログラムが待ち受けているか確認するコマンド
sudo lsof -i -n -P
- -i :ネットワークソケットファイルを表示するオプション。サーバーの待機ポートとプロセスを一覧表示する
- -n :IPアドレスをホスト名に変換しないオプション
- -P :ポート番号をサービス名に変換しないオプション
実行結果
COMMAND    PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind   2623      rpc    6u  IPv4  15828      0t0  UDP *:111
rpcbind   2623      rpc    7u  IPv4  15829      0t0  UDP *:669
rpcbind   2623      rpc    8u  IPv4  15830      0t0  TCP *:111 (LISTEN)
rpcbind   2623      rpc    9u  IPv6  15831      0t0  UDP *:111
rpcbind   2623      rpc   10u  IPv6  15832      0t0  UDP *:669
rpcbind   2623      rpc   11u  IPv6  15833      0t0  TCP *:111 (LISTEN)
chronyd   2659   chrony    5u  IPv4  16417      0t0  UDP 127.0.0.1:323
chronyd   2659   chrony    6u  IPv6  16418      0t0  UDP [::1]:323
dhclient  2876     root    6u  IPv4  16846      0t0  UDP *:68
dhclient  2925     root    5u  IPv6  17054      0t0  UDP [fe80::4bd:b9ff:feed:6e61]:546
master    3070     root   13u  IPv4  17978      0t0  TCP 127.0.0.1:25 (LISTEN)
sshd      3221     root    3u  IPv4  19769      0t0  TCP *:22 (LISTEN)
sshd      3221     root    4u  IPv6  19778      0t0  TCP *:22 (LISTEN)
sshd     32720     root    3u  IPv4  55233      0t0  TCP 10.0.10.13:22->122.134.104.0:5178 (ESTABLISHED)
sshd     32738 ec2-user    3u  IPv4  55233      0t0  TCP 10.0.10.13:22->122.134.104.0:5178 (ESTABLISHED)
- LISTEN :他のPCから待ち受けているポート
- ESTABLISHED : 相手と現在通信中のポート
sshd      3221     root    3u  IPv4  19769      0t0  TCP *:22 (LISTEN)
sshdというプログラムが、22番ポートで待ち受けているよ、という意味
* (アスタリスク):どの接続元のIPでも受け付けるよ、という意味
