Contents
Overview
Apache を使用して Web サーバーを構築します。
前提条件
- こちらを参考に基本設定が完了していること。
インストール
apache2 をインストールします。
myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install apache2
/etc/apache2/apache2.conf
デフォルト値
デフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/apache2/apache2.conf | expand | tr -s [:space:] | sed 's/^ / /g'
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
設定値
設定値は下記の通りです。デフォルトでは Indexes が有効となっていますが、本稿ではセキュリティ観点で削除しています。Indexes があると便利な場合もあるので必要に応じて使い分けましょう。
myadmin@ubuntu:~$ sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/apache2/apache2.conf <<"EOF"
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
ServerName ubuntu.si1230.com
EOF
/etc/apache2/conf-available/security.conf
デフォルト値
デフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/apache2/conf-available/security.conf | expand | tr -s [:space:] | sed 's/^ / /g'
ServerTokens OS
ServerSignature On
TraceEnable Off
設定値
設定値は下記の通りです。一般的なセキュリティ設定に合わせています。
myadmin@ubuntu:~$ sudo cp /etc/apache2/conf-available/security.conf /etc/apache2/conf-available/security.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/apache2/conf-available/security.conf <<"EOF"
ServerTokens Prod
ServerSignature Off
TraceEnable Off
EOF
/etc/apache2/sites-available/000-default.conf
デフォルト値
デフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/apache2/sites-available/000-default.conf | expand | tr -s [:space:] | sed 's/^ / /g'
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
設定値
設定値は下記の通りです。ServerAdmin を使用可能なメールアドレスに変更します。
myadmin@ubuntu:~$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/apache2/sites-available/000-default.conf <<"EOF"
<VirtualHost *:80>
ServerAdmin webmaster@si1230.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF
/etc/apache2/ports.conf
/etc/apache2/ports.conf はポート番号を制御しています。これは必要に応じて変更します。
デフォルト値
デフォルト値は下記の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/apache2/ports.conf | expand | tr -s [:space:] | sed 's/^ / /g'
Listen 80
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
設定値
設定例は下記の通りです。
myadmin@ubuntu:~$ sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf.orig
myadmin@ubuntu:~$ sudo tee /etc/apache2/ports.conf <<"EOF"
Listen 8080
<IfModule ssl_module>
Listen 8443
</IfModule>
<IfModule mod_gnutls.c>
Listen 8443
</IfModule>
EOF
デフォルトページの削除
デフォルトページには OS や Apache のバージョン情報等が含まれますので、セキュリティ観点で削除します。
myadmin@ubuntu:~$ sudo rm /var/www/html/index.html
設定の有効化
設定を有効化します。
myadmin@ubuntu:~$ sudo systemctl restart apache2.service && systemctl status apache2.service
正常性確認
下記のテスト用 HTML を作成します。ブラウザから Web サーバーに接続して意図したレスポンスがあることを確認します。
myadmin@ubuntu:~$ sudo tee /var/www/html/index.html <<"EOF"
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ubuntu apache test</title>
</head>
<body>
<h1>ubuntu apache test</h1>
<p>ubuntu apache test</p>
</body>
</html>
EOF
テスト用 HTML を削除します。
myadmin@ubuntu:~$ sudo rm /var/www/html/index.html
Ubuntu 22.04 Apache Web サーバー構築 基本的な Web サーバー