Contents
1.Apache2のインストールとバーチャルホスト設定
1.1 Apache2インストール
①httpdをインストール
1 2 3 4 5 6 |
# yum -y install httpd バージョン確認 # httpd -v Server version: Apache/2.4.6 (CentOS) Server built: May 10 2022 18:05:14 |
1.2 Apache の設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 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 |
1 2 3 |
# firewall-cmd --add-service=http --permanent # firewall-cmd --add-service=https --permanent # firewall-cmd --reload |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 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
ウェルカムページをリネームする
1 |
# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org |
1 2 3 4 5 6 7 8 9 |
HTML テストページを作成 # vi /var/www/html/index.html <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Apache Test Page </div> </body> </html> |
1.3 バーチャルホストの設定
バーチャルホストで運用するドメイン名 [cent.korodes.com] を、ドキュメントルート[/var/www/html/cent.korodes.com] ディレクトリに割り当てて設定します
/etc/httpd/conf.d/vhost.conf を新規作成
1 |
# 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>
ドキュメントディレクトリーの作成
1 |
# mkdir /var/www/html/cent.korodes.com |
Apacheの再起動
1 |
# systemctl restart httpd |
2. CGIスクリプトの利用確認
①CGIの利用可確認
1 2 3 |
# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf 250: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 上記が表示され、「/var/www/cgi-bin/」配下で利用可能 |
②テストスクリプトを作成し、作動確認
1 2 3 4 5 |
# vi /var/www/cgi-bin/index.cgi #!/usr/bin/python2 print("Content-type: text/html\n") print("CGI Script Test Page") |
1 2 3 |
# chmod 755 /var/www/cgi-bin/index.cgi # curl localhost/cgi-bin/index.cgi CGI Script Test Page |
3. PHPのインストールと設定
1.PHPインストール
1 |
# 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 |
②バージョン確認
1 2 3 4 |
# 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 の再起動
1 |
# systemctl restart httpd |
下記のファイルを作成
1 2 |
# vi /var/www/html/<ドメイン名>/test.php <?php phpinfo(); ?> |
4. Apache2でDigest認証を行う
http の認証認定方式として有名なBasic 認証は認証情報を平文で送信するので、パケット盗聴されるとID とパスワードが漏洩する危険があります。
一方、Digest 認証は認証情報を暗号化して送信するので、情報漏えいの心配がほとんどありません。Digest 認証はBasic 認証を強化した認証認定方式と言えます。
4.1 Digest認証のパスワードファイルを作成
realmと呼ばれる認証領域を指定する。このrealmが同じディレクトリは認証済みとしてアクセスできるようにするためのものです。
今回は例として、realmは"DigestAuth"で、"secretuser"と言うユーザー及びパスワードファイル".digestauth"を作成する。下記のコマンドを実行すると"secretuser"のパスワードを求められるので入力する。
1 2 3 |
# /usr/bin/htdigest -c /etc/httpd/.digestauth "DigestAuth" secretuser New password: Re-type new password: |
確認する
1 2 |
# cat /etc/httpd/.digestauth secretuser:DigestAuth:64939177c7b7c6eac3687925b27e771d |
上記の通り、secretuserと暗号化されたパスワードが作成されています
4.2 Apacheの設定ファイル編集
Digest認証をかけるディレクトリを指定する。(今回はsecretディレクトリーを指定する)
1 |
# vi /etc/httpd/conf/httpd.conf |
最後尾に下記追加
1 2 3 4 5 6 7 |
<Directory "/var/www/html/[FQDN]/secret"> AuthType Digest AuthName "DigestAuth" AuthDigestDomain /secret/ AuthUserFile "/etc/httpd/.digestauth" Require valid-user </Directory> |
Digest認証をかけるディレクトリを作成する
1 |
# mkdir /var/www/html/[FQDN]/secret |
Digest認証を有効にして再起動する
1 |
# systemctl restart httpd.service |
ブラウザでhttp://[FQDN]/secretにアクセスすると「ユーザー名」「パスワード」求める画面が出る