Contents
1.Apache2のインストールとバーチャルホスト設定
1.1 Apache2インストール
①httpdをインストール
# dnf -y install httpd バージョン確認 # httpd -v Server version: Apache/2.4.53 (AlmaLinux) Server built: Jul 20 2022 00:00:00
1.2 Apache の設定
①httpd.conf ファイルを編集
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_bak # vi /etc/httpd/conf/httpd.conf ●91行目 : 管理者アドレス指定 ServerAdmin [Email Address] ●100行目あたりServerName の変更 「#ServerName www.example.com:80」の下に「ServerName ドメイン名」を追加 ●149行目 : 変更 (Indexes は削除) Options FollowSymLinks ●156行目 : 変更 AllowOverride All ●169行目 : ディレクトリ名のみでアクセスできるファイル名 「index.php index.cgi index.htm」を追加する ●最終行に追記 ServerTokens Prod
# firewall-cmd --add-service=http --permanent # firewall-cmd --add-service=https --permanent # firewall-cmd --reload
# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor pre>
Active: active (running) since Thu 2023-01-05 09:39:17 JST; 18s ago
Docs: man:httpd.service(8)
Main PID: 7397 (httpd)
Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes>
Tasks: 213 (limit: 10883)
Memory: 47.5M
CPU: 142ms
CGroup: /system.slice/httpd.service
tq7397 /usr/sbin/httpd -DFOREGROUND
tq7398 /usr/sbin/httpd -DFOREGROUND
tq7399 /usr/sbin/httpd -DFOREGROUND
tq7400 /usr/sbin/httpd -DFOREGROUND
mq7401 /usr/sbin/httpd -DFOREGROUND
Jan 05 09:39:17 Alma systemd[1]: Starting The Apache HTTP Server...
Jan 05 09:39:17 Alma httpd[7397]: Server configured, listening on: port 80
Jan 05 09:39:17 Alma systemd[1]: Started The Apache HTTP Server.
http://[サーバーIPアドレス] にアクセスすると下記のようにAlamLinux Test Page が表示されればOK

ウェルカムページをリネームする
# 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> |
http://[サーバーIPアドレス] にアクセスすると下記のようにTest Page が表示されればOK

1.3 バーチャルホストの設定
バーチャルホストで運用するドメイン名 [alma.korodes.com] を、ドキュメントルート[/var/www/html/alam.korodes.com] ディレクトリに割り当てて設定します
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /etc/httpd/conf.d/vhost.conf バーチャルホストのドメインの設定 <VirtualHost *:80> DocumentRoot /var/www/html/alma.korodes.com ServerName alma.korodes.com ServerAdmin<Email Address> ←管理者メールアドレス ErrorLog logs/alma.korodes.com-error_log CustomLog logs/alma.korodes.com-access_log combined </VirtualHost> <Directory "/var/www/html/alma.korodes.com"> Options FollowSymLinks AllowOverride All </Directory> |
ドキュメントディレクトリーの作成
# mkdir /var/www/html/alma.korodes.com
Apacheの再起動
# systemctl restart httpd
2. CGIスクリプトの利用確認
①CGIの利用可確認
# grep -n "^ *ScriptAlias" /etc/httpd/conf/httpd.conf 252: ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 上記が表示され、「/var/www/cgi-bin/」配下で利用可能
②テストスクリプトを作成し、作動確認
# vi /var/www/cgi-bin/index.cgi
#!/usr/libexec/platform-python
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.PHP8インストール
①インストール
# dnf -y install php
②バージョン確認
# php -v
PHP 8.0.20 (cli) (built: Jun 8 2022 00:33:06) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies
Php8.1をインストールする場合はRemi リポジトリが必要になるので、導入していない方はインストールします。
# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
PHP をいったん停止します。
# dnf module disable php
PHP 8.1 のインストール
# dnf module install php:remi-8.1
php-fpm の設定
# systemctl enable php-fpm Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.
# systemctl start php-fpm # php -v バージョンが 8.1 (以降)に更新されていたら、OK です。
③Apache の再起動
PHP インストール後は、Apache を再起動すればデフォルトで PHP-FPM (FPM : FastCGI Process Manager) が呼び出され、httpd の起動と連動して php-fpm サービスも起動されます
# systemctl restart httpd
# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-01-05 09:48:53 JST; 10s ago
Main PID: 9032 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 10883)
Memory: 12.2M
CPU: 83ms
CGroup: /system.slice/php-fpm.service
tq9032 "php-fpm: master process (/etc/php-fpm.conf)"
tq9033 "php-fpm: pool www"
tq9034 "php-fpm: pool www"
tq9035 "php-fpm: pool www"
tq9036 "php-fpm: pool www"
mq9037 "php-fpm: pool www"
Jan 05 09:48:53 Alma systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 05 09:48:53 Alma systemd[1]: Started The PHP FastCGI Process Manager.
④PHP の動作確認
下記のファイルを作成
|
1 2 |
# vi /var/www/html/<ドメイン名>/test.php <?php phpinfo(); ?> |
ブラウザで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
確認する
# cat /etc/httpd/.digestauth secretuser:DigestAuth:64939177c7b7c6eac3687925b27e771d
上記の通り、secretuserと暗号化されたパスワードが作成されています
4.2 Apacheの設定ファイル編集
Digest認証をかけるディレクトリを指定する。(今回はsecretディレクトリーを指定する)
# vi /etc/httpd/conf/httpd.conf
最後尾に下記追加
|
1 2 3 4 5 6 7 |
<Directory "/var/www/html/[FQDN]/secret"> AuthType Digest AuthName "DigestAuth" AuthDigestDomain /[FQDN]/secret/ AuthUserFile "/etc/httpd/.digestauth" Require valid-user </Directory> |
Digest認証をかけるディレクトリを作成する
# mkdir /var/www/html/[FQDN]/secret
Digest認証を有効にして再起動する
|
1 |
# systemctl restart httpd.service |
ブラウザでhttp://[FQDN]/secretにアクセスすると「ユーザー名」「パスワード」求める画面が出る

