Linux勉強３日目：ApacheでWEBサーバを構築して初期ページを開くまで

いよいよWEBサーバを構築する
使うソフトウェアはApache

最近はNginxも流行ってるみたい。へー

RedHat系でApacheをインストールするとき、httpdをインストールするんだって。
Ubuntuとかはapache2をインストールするみたい。
```bash
[root@localhost densichi]# dnf install httpd
```

無事インストールが完了したのでApacheを起動する。

```bash
[root@localhost ~]# systemctl start httpd
```
ついでに起動の確認もする。
```bash
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
     Active: active (running) since Tue 2024-04-02 00:33:25 JST; 1min 23s ago
       Docs: man:httpd.service(8)
   Main PID: 4541 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 213 (limit: 11116)
     Memory: 25.1M
        CPU: 130ms
     CGroup: /system.slice/httpd.service
             tq4541 /usr/sbin/httpd -DFOREGROUND
             tq4542 /usr/sbin/httpd -DFOREGROUND
             tq4543 /usr/sbin/httpd -DFOREGROUND
             tq4544 /usr/sbin/httpd -DFOREGROUND
             mq4545 /usr/sbin/httpd -DFOREGROUND

Apr 02 00:33:25 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Apr 02 00:33:25 localhost.localdomain httpd[4541]: AH00558: httpd: Could not reliably determine the server's fully qualified do>
Apr 02 00:33:25 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Apr 02 00:33:25 localhost.localdomain httpd[4541]: Server configured, listening on: port 80

[root@localhost ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
     Active: active (running) since Tue 2024-04-02 00:33:25 JST; 1min 23s ago
       Docs: man:httpd.service(8)
   Main PID: 4541 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 213 (limit: 11116)
     Memory: 25.1M
        CPU: 130ms
     CGroup: /system.slice/httpd.service
             tq4541 /usr/sbin/httpd -DFOREGROUND
             tq4542 /usr/sbin/httpd -DFOREGROUND
             tq4543 /usr/sbin/httpd -DFOREGROUND
             tq4544 /usr/sbin/httpd -DFOREGROUND
             mq4545 /usr/sbin/httpd -DFOREGROUND

Apr 02 00:33:25 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Apr 02 00:33:25 localhost.localdomain httpd[4541]: AH00558: httpd: Could not reliably determine the server's fully qualified do>
Apr 02 00:33:25 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Apr 02 00:33:25 localhost.localdomain httpd[4541]: Server configured, listening on: port 80
```

webブラウザからURLを入力する。
URL:http://127.0.0.1 でアクセスする。

無事アクセスできなかった。

原因はhttpポートが開いていないから。
Linuxのポート設定とVMソフトのポートフォワードを設定する。（ここは割愛）

firewall-cmdでhttpを許可する

まずはファイアウォールが設定されているネットワークを確認する
```bash
[root@localhost ~]# firewall-cmd --get-default-zone
public
```
ファイアウォールが設定されているネットワークはpublicだった。

publicネットワークのファイアウォールにhttpポートを許可する。
permanentオプションを付けると恒久的に許可できる。

```bash
[root@localhost ~]# firewall-cmd --zone=public --add-service=http --permanent
success
```

successなので成功。もう一回ファイアウォールの設定を見てみる

```bash
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
  ```

`  services: cockpit dhcpv6-client ssh`
http記述がない。まだhttp許可が反映されいないので、ファイアウォール設定を再読込する。

  ```bash
  [root@localhost ~]# firewall-cmd --reload
success
```

もう一回設定を確認する

```bash
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: cockpit dhcpv6-client http ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
  ```
  
`  services: cockpit dhcpv6-client http ssh`
http記述があるので成功
URL:http://127.0.0.1 でアクセスする。

無事アクセスできた。

次はApacheの設定を編集するぞ。