Apacheでのサブドメイン対応

apacheのサブドメインの対応を行なった際のメモ。

Apache version

Apache/2.4系

Apache サブドメイン対応

Apacheの基本

基本の設定ファイル

/etc/apache2/apache2.conf

外部設定ファイル(confファイル)の読み込み

IncludeOptional subdomain/*.conf

サブドメイン対応

上記の外部設定ファイルに以下を記載。

基本(Wordpressなどの通常配置)

<VirtualHost *:80>
  ServerAdmin hoge@fuga.foo
  ServerName sub.domain.com
  DocumentRoot /var/www/html/directory  

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/html/directory">
    #権限、例えば下記
    Require all granted
    AllowOverride All
  </Directory>

  RewriteEngine on
  RewriteCond %{SERVER_NAME} =sub.domain.com
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

SSL対応(Certbot対応)

<VirtualHost *:443>
  ServerAdmin hoge@fuga.foo
  ServerName sub.domain.com
  DocumentRoot /var/www/html/directory

  <Directory "/var/www/html/directory">
    #権限、例えば下記
    Require all granted
    AllowOverride All
  </Directory>

  SSLEngine on
  Include /etc/letsencrypt/options-ssl-apache.conf
  SSLCertificateFile /etc/letsencrypt/live/certbot/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/certbot/privkey.pem
</VirtualHost>

特定ポート指定(Proxy Pass)

<VirtualHost *:80>
  ServerName sub.domain.com
  DocumentRoot /var/www/html/directory
  <Directory /var/www/html/child/directory>
    #権限
  </Directory>

  <Location />
    ProxyPass http://localhost:XXXX/
    ProxyPassReverse http://localhost:XXXX/
  </Location>

  RewriteEngine on
  RewriteCond %{SERVER_NAME} =sub.domain.com
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>