Apacheの設定テンプレ

Apacheのサイト設定のテンプレです。このファイルを/etc/apache2/sites-available/test.confとします。

 <IfModule mod_ssl.c>
   <VirtualHost _default_:443>
     Timeout 600
     ProxyTimeout 600
     ServerName <HostName>
     ServerAdmin <AdminMailAddress>
     DocumentRoot  <ServerRootDirectory>
     ErrorLog <PlaceOfErrorLog>
     CustomLog <PlaceOfAccessLog>
     SSLEngine on
     SSLCertificateFile  <PlaceOf cert.pem>
     SSLCertificateKeyFile  <PlaceOf privkey.pem>
     SSLCertificateChainFile <PlaceOf chain.pem>
     #Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
     <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
     </FilesMatch>
     <FilesMatch \.php$>
       SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
     </FilesMatch>
     <Directory <ServerRootDirectory>>
       Options Indexes FollowSymLinks ExecCGI
       AddHandler cgi-script .cgi
       AllowOverride All
       Require all granted
     </Directory>
  </VirtualHost>
</IfModule>

非SSLでアクセスがあった場合は自動でSSL対応ページへ飛ばす設定をします。このファイルを/etc/apache2/sites-available/testhttp.confとします。

  <VirtualHost *:80>
    ServerAdmin <AdminMailAddress>
    DocumentRoot <ServerRootDirectory>
    ServerName <HostName>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  </VirtualHost>

これらのファイルを有効にするためには以下のようにする。

# cd /etc/apache2/sites-available
# a2ensite test.conf testhttp.conf
# systemctl reload apache2