業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

CentOS7.9 : WEBサーバー Apache

1.Apache2のインストールとバーチャルホスト設定

1.1 Apache2インストール

①httpdをインストール

# yum -y install httpd

バージョン確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: May 10 2022 18:05:14

1.2 Apache の設定

①httpd.conf ファイルを編集
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_bak
# vi /etc/httpd/conf/httpd.conf
●86行目 : 管理者アドレス指定
ServerAdmin [Email Address]
●95 行目あたりServerName の変更
「#ServerName www.example.com:80」の下に「ServerName ドメイン名」を追加
●144行目 : 変更 (Indexes は削除)
Options FollowSymLinks
●151行目 : 変更
AllowOverride All
●164行目 : ディレクトリ名のみでアクセスできるファイル名
「index.php index.cgi index.htm」を追加する
●最終行に追記
ServerTokens Prod
②Firewalld を有効にしている場合は HTTP サービスの許可が必要。HTTP は [80/TCP] 、HTTPS は [443/TCP]を使用します
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload
③Apache の自動起動設定
# systemctl start httpd
# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-02-17 12:21:28 JST; 33s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 2234 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           tq2234 /usr/sbin/httpd -DFOREGROUND
           tq2235 /usr/sbin/httpd -DFOREGROUND
           tq2236 /usr/sbin/httpd -DFOREGROUND
           tq2237 /usr/sbin/httpd -DFOREGROUND
           tq2238 /usr/sbin/httpd -DFOREGROUND
           tq2239 /usr/sbin/httpd -DFOREGROUND
           mq2240 /usr/sbin/httpd -DFOREGROUND

Feb 17 12:21:28 Lepard systemd[1]: Starting The Apache HTTP Se....
Feb 17 12:21:28 Lepard systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
④動作確認
http://[サーバーIPアドレス] にアクセスすると下記のようにTest Page が表示されればOK
⑤Welcomeページを非表示にし、Test Pageとして新規にindex.htmlファイルを作成し、apacheの動作確認

ウェルカムページをリネームする

# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
http://[サーバーIPアドレス] にアクセスすると下記のようにTest Page が表示されればOK

1.3 バーチャルホストの設定

バーチャルホストで運用するドメイン名 [cent.korodes.com] を、ドキュメントルート[/var/www/html/cent.korodes.com] ディレクトリに割り当てて設定します
/etc/httpd/conf.d/vhost.conf を新規作成

# vi /etc/httpd/conf.d/vhost.conf
記載内容

<VirtualHost *:80>
DocumentRoot /var/www/html/cent.korodes.com
ServerName cent.korodes.com
ServerAdmin<Email Address>  ←管理者メールアドレス
ErrorLog logs/cent.korodes.com-error_log
CustomLog logs/cent.korodes.com-access_log combined
</VirtualHost>
<Directory "/var/www/html/cent.korodes.com">
Options FollowSymLinks
AllowOverride All
</Directory>

ドキュメントディレクトリーの作成

# mkdir /var/www/html/cent.korodes.com

Apacheの再起動

# systemctl restart httpd

2. CGIスクリプトの利用確認

①CGIの利用可確認

②テストスクリプトを作成し、作動確認

# vi /var/www/cgi-bin/index.cgi

#!/usr/bin/python2
print("Content-type: text/html\n")
print("CGI Script Test Page")
# chmod 755 /var/www/cgi-bin/index.cgi
# curl localhost/cgi-bin/index.cgi
CGI Script Test Page

3. PHPのインストールと設定

1.PHPインストール

①PHP7.4をインストール(Remiリポジトリー)
# yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

②バージョン確認

# php -v
PHP 7.4.33 (cli) (built: Feb 14 2023 09:31:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

③Apache の再起動

# systemctl restart httpd
④PHP の動作確認
下記のファイルを作成
ブラウザでhttp://[ドメイン名]/test.phpにアクセスすると下記のような画面が表示されればOK

4. Apache2でDigest認証を行う

http の認証認定方式として有名なBasic 認証は認証情報を平文で送信するので、パケット盗聴されるとID とパスワードが漏洩する危険があります。
一方、Digest 認証は認証情報を暗号化して送信するので、情報漏えいの心配がほとんどありません。Digest 認証はBasic 認証を強化した認証認定方式と言えます。

4.1 Digest認証のパスワードファイルを作成

realmと呼ばれる認証領域を指定する。このrealmが同じディレクトリは認証済みとしてアクセスできるようにするためのものです。
今回は例として、realmは"DigestAuth"で、"secretuser"と言うユーザー及びパスワードファイル".digestauth"を作成する。下記のコマンドを実行すると"secretuser"のパスワードを求められるので入力する。

# /usr/bin/htdigest -c /etc/httpd/.digestauth "DigestAuth" secretuser
New password:
Re-type new password:

確認する

# cat /etc/httpd/.digestauth
secretuser:DigestAuth:64939177c7b7c6eac3687925b27e771d

上記の通り、secretuserと暗号化されたパスワードが作成されています

4.2 Apacheの設定ファイル編集

Digest認証をかけるディレクトリを指定する。(今回はsecretディレクトリーを指定する)

# vi /etc/httpd/conf/httpd.conf

最後尾に下記追加

<Directory "/var/www/html/[FQDN]/secret">
AuthType Digest
AuthName "DigestAuth"
AuthDigestDomain /secret/
AuthUserFile "/etc/httpd/.digestauth"
Require valid-user
</Directory>

Digest認証をかけるディレクトリを作成する

# mkdir  /var/www/html/[FQDN]/secret

Digest認証を有効にして再起動する

# systemctl restart httpd.service

ブラウザでhttp://[FQDN]/secretにアクセスすると「ユーザー名」「パスワード」求める画面が出る
画像に alt 属性が指定されていません。ファイル名: 66216a549073fbbc5c6ff8d87bb8e569.jpg

タイトルとURLをコピーしました