【Linux】CentOS9にApacheを入れてみた

# ■はじめに
　他の方もやっているように、まずはApacheをインストールして、Webブラウザを立ち上げるところまでやってみたいと思います。
　yumで依存関係を解決していくので、インターネットにつながっていることが前提。

# ■環境
CentOS 9
```
[root@localhost etc]# cat ecentos-release 
CentOS Stream release 9
```
# ■Apacheのインストール

##### 1．まずは、httpdのバージョン確認
```
[root@localhost /]# yum info httpd

利用可能なパッケージ
名前         : httpd
バージョン   : 2.4.62
リリース     : 1.el9
Arch         : x86_64
サイズ       : 47 k
ソース       : httpd-2.4.62-1.el9.src.rpm
リポジトリー : appstream
概要         : Apache HTTP Server
URL          : https://httpd.apache.org/
ライセンス   : ASL 2.0
説明         : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.
```
##### 2．Apacheのインストール
```
[root@localhost /]# yum -y install httpd
```
⇒エラーとならないこと

##### 3．Webサーバの稼働確認
```
[root@localhost /]# systemctl status httpd
○ httpd.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: d>
     Active: inactive (dead)
       Docs: man:httpd.service(8)
```
インストール後は起動していないので、httpdを起動します。


##### 4．Webサーバの起動
以下のコマンドを入力し、httpdを起動する。
```
[root@localhost /]# systemctl start httpd
```
⇒エラーとならないこと


##### 5．Webサーバの稼働確認
```
[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 Sun 2024-11-17 13:58:36 JST; 13s ago
       Docs: man:httpd.service(8)
   Main PID: 11286 (httpd)
     Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
      Tasks: 177 (limit: 11071)
     Memory: 33.7M
        CPU: 74ms
     CGroup: /system.slice/httpd.service
             ├─11286 /usr/sbin/httpd -DFOREGROUND
             ├─11287 /usr/sbin/httpd -DFOREGROUND
             ├─11288 /usr/sbin/httpd -DFOREGROUND
             ├─11289 /usr/sbin/httpd -DFOREGROUND
             └─11290 /usr/sbin/httpd -DFOREGROUND

11月 17 13:58:36 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
11月 17 13:58:36 localhost.localdomain httpd[11286]: AH00558: httpd: Could not reliably determine the >
11月 17 13:58:36 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
11月 17 13:58:36 localhost.localdomain httpd[11286]: Server configured, listening on: port 80
lines 1-20/20 (END)
```
⇒「<font color="rgb(107, 142, 35)">Active: active (running)</font>」と緑文字で表示されたこと

##### 6．Webサーバの自動起動設定
```
[root@localhost /]# systemctl enable httpd.services
```
⇒エラーとならないこと
```
[root@localhost /]# systemctl is-enabled httpd
enabled
```
⇒「enabled」となっていること


# ■設定値編集

Apacheの設定ファイルは、「/etc/httpd/conf/httpd.conf」にあるらしいので、編集していきます。

まずは、以下のコマンドを入力し、設定ファイルを覗いてみます。
```
[root@localhost /]# less /etc/httpd/conf/httpd.conf
```
↓の行がコメントアウトされていたので、
```
#ServerName www.example.com:80
```
viでコメントアウトを外して、サーバ名を変更しました。
```
ServerName www.testfuziiiiaki.com:80
```

# ■ファイアウォールの設定
参考URLによれば、デフォルトではWebサーバのhttpポート、つまり80番ポートが開放されていないので、
　(1)以下のコマンドで80番ポートを開放する。
```
[root@localhost /]# firewall-cmd --permanent --add-service=http
success
```
　(2)以下のコマンドを入力して、再起動を実施する。
```
[root@localhost /]# firewall-cmd --reload
success
```
　(3)以下のコマンドを入力して、設定が反映されたかを確認する。
```
# 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:欄に「http」が反映されていること
 

# ■テストページの表示

ブラウザ開いて、「http://【IPアドレス】」で以下の画面が開けば成功。

ブラウザに入れる【IPアドレス】は以下のコマンドを入力して調べる。
```
[root@localhost /]# ip a
```

![スクリーンショット 2024-11-17 144742.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761139/6a5bf901-52e9-bb80-cc68-e098c8ff5691.png)

# ■HTMLファイルの作成と編集

htmlのディレクトがvar配下にあるらしいので、見に行ってみました。


```
[root@localhost /]# cd /var/www/
[root@localhost www]# ll
合計 0
drwxr-xr-x. 2 root root 6  8月 12 22:20 cgi-bin
drwxr-xr-x. 2 root root 6  8月 12 22:20 html
[root@localhost www]# cd html/
[root@localhost html]# ll
合計 0
[root@localhost html]#

```
たしかにありました。

ここのhtml配下にhtmlファイルを作成して、そのhtmlファイルを編集していけばよいみたいです。

以下のコマンドを入力して、html配下htmlファイルを作成する。
```
[root@localhost html]# touch index.html
[root@localhost html]# ll
合計 0
-rw-r--r--. 1 root root 0 11月 17 15:09 index.html
```
⇒ファイルが作成されたこと

以下のコマンドを入力して、「index.html」を編集する。
```
[root@localhost html]# vi index.html
```
ファイルの中身は以下のようにしてみました。
```
[root@localhost html]# cat index.html
<html>
<head>
    <title>qiita</title>
</head>
<body>
    <h1>Hello Apache</h1>
</body>
</html>
```
もう一度、「http://【IPアドレス】」でブラウザを開いてみると↓のようになっていれば成功です。

![スクリーンショット 2024-11-17 151955.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761139/5dfe444f-cc54-abd5-3430-dd8ba19b422a.png)

# ■名前解決

　せっかくなので、内部向けに名前解決をしてみようと思います。

　編集するのは以下二つのファイル。

　　・/etc/hosts
　　・C:\WINDOWS\System32\drivers\etc\hosts

　Windowsのhostsファイルの編集はググってください。

　それでは、CentOSのhostsファイルを編集していきます。

　以下のコマンドを入力する

　# vi /etc/hosts

　あとは、# iでコマンドモードからインサートモードに移行して、以下のように
　編集する。
```
192.xxx.x.x www.testfuziiiiaki.com
```

![スクリーンショット 2024-11-24 100900.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3761139/2a30764e-89a8-12d8-956b-c8b6f20a48a4.png)

# ■ログの場所
　/var/log配下にapacheのログがあるのかなと目星を付けて、以下のコマンドを入力しました。

```
# ll /var/log | grep a
```
　それらしい名称はヒットしなかったので、どうやら/var/log配下にはないみたいです。
　ググってみると、「ログの場所は <font color="#1e90ff">/etc/httpd/logs/配下</font>」みたいなので、見に行ってみます。
```
# cd /etc/httpd/logs/
# ll
-rw-r--r--. 1 root root 3131 11月 24 10:09 access_log
-rw-r--r--. 1 root root 3000 11月 30 07:58 error_log
```
　「access_log」と「error_log」がありました。
　開いてみます。
```
# cat access_log
# cat error_log
```






# ■参考URL
https://qiita.com/S-Masakatsu/items/63b9e0e7a869d2aafc4b

↑の記事を見て自分でもやってみました。

https://qiita.com/nakamurashun0621/items/64d5c9d76b7284f19883

https://eng-entrance.com/linux-centos-port