手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache Web サーバー構築 基本的な Web サーバー

目次に戻る

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 サーバー

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る