Apache仮想ホストを使用すると、1つのサーバーで複数のウェブサイトをホストできます。しかし、設定ミスや競合が原因で、意図しないサイトが表示されたり、特定のサイトがアクセス不能になる問題が発生することがあります。
特に、複数の仮想ホスト設定が同じポートをリッスンしている場合や、デフォルトの仮想ホスト設定が正しく機能していない場合に、この問題が顕著になります。
本記事では、仮想ホスト設定の基本から競合が発生する原因、具体的な解消方法、さらには実際の設定例までを詳細に解説します。Apacheを活用して複数のサイトを安定的に運用するための知識を深めていきましょう。
仮想ホストの仕組みと基本構成
Apache仮想ホスト(VirtualHost)は、1つの物理サーバーで複数のドメインやサイトを運用するための仕組みです。これにより、サーバーのリソースを効率的に活用しながら、異なるコンテンツを提供できます。
仮想ホストには「名前ベース仮想ホスト」と「IPベース仮想ホスト」の2種類があります。
名前ベース仮想ホスト
1つのIPアドレスで複数のドメインを扱う方法です。ブラウザからのリクエストはホスト名(ドメイン)によって識別され、対応する仮想ホストの設定が適用されます。
例:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
この例では、example.com
とtest.com
のリクエストがそれぞれ異なるディレクトリにルーティングされます。
IPベース仮想ホスト
異なるIPアドレスを仮想ホストごとに割り当てて運用する方法です。IPアドレスごとに異なるウェブサイトを提供します。
例:
<VirtualHost 192.168.1.10:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost 192.168.1.11:80>
ServerName site2.com
DocumentRoot /var/www/site2
</VirtualHost>
IPアドレスが異なるため、サイトの分離が明確で競合が発生しにくいのが特徴です。
基本構成要素
- ServerName:ホスト名を指定するディレクティブ。リクエストされたドメインと一致する場合に、その仮想ホストが処理されます。
- DocumentRoot:ウェブサイトのファイルが格納されているディレクトリのパスです。
- Directory:特定のディレクトリに対して細かいアクセス制御を設定するブロックです。
仮想ホストの基本的な仕組みを理解することで、競合や設定ミスを防ぎやすくなります。次に、仮想ホストの競合がどのように発生するのかを見ていきましょう。
仮想ホスト競合の原因とは
Apacheで仮想ホストが競合する主な原因は、設定ミスや構成の不整合にあります。これにより、特定のドメインが意図しないサイトへ転送されたり、デフォルトサイトが優先的に表示されるケースが発生します。
競合が発生する主な原因
1. 複数の仮想ホストが同じポートでListenしている
仮想ホストが同一のポート(例:80)でリッスンしている場合、Apacheは最初に記述された仮想ホスト設定を優先します。
例:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
この設定ではexample.com
が優先され、test.com
がリクエストされてもexample.com
が表示される可能性があります。
2. デフォルト仮想ホストが意図しない形で設定されている
デフォルト仮想ホストが正しく指定されていないと、すべてのリクエストがデフォルト設定にルーティングされてしまいます。
<VirtualHost _default_:80>
ServerName default.com
DocumentRoot /var/www/default
</VirtualHost>
未設定のドメインがすべてdefault.com
に割り当てられることがあります。
3. ServerNameとServerAliasの不一致
ServerName
が一致しない場合、Apacheは該当する仮想ホストを見つけられず、デフォルトホストが表示されます。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
</VirtualHost>
ここでwww.example.com
は表示されますが、example.net
のリクエストは処理されません。
4. NameVirtualHostの設定ミス
Apache 2.2以前ではNameVirtualHost
の記述が必要ですが、設定が不足していると仮想ホストが競合します。
NameVirtualHost *:80
この記述がない場合、名前ベースの仮想ホストが正しく動作しません。
競合が与える影響
- 意図しないウェブサイトの表示:ユーザーがアクセスしたいサイトが表示されない。
- セキュリティリスク:本来公開されるべきでないサイトが誤って外部に表示される可能性があります。
- ユーザー体験の低下:複数のドメインを運用している場合に、不整合が生じると信頼性が損なわれます。
次に、デフォルトホストの具体的な挙動と設定ミスを掘り下げます。
デフォルトホストの挙動と設定ミスの例
Apacheでは、仮想ホストの設定で特定のドメインが一致しない場合、最初に定義された仮想ホストが「デフォルトホスト」として機能します。このデフォルトホストの設定が意図しない形で適用されると、誤ったサイトが表示される原因となります。
デフォルトホストの挙動
Apacheはリクエストされたホスト名が一致する仮想ホストが存在しない場合、最初に読み込まれた仮想ホストを使用します。これが「デフォルトホスト」となります。
<VirtualHost *:80>
ServerName default-site.com
DocumentRoot /var/www/default
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
この場合、example.com
以外のすべてのリクエストはdefault-site.com
に転送されます。
設定ミスの具体例
1. 不明なホストへのリクエストがすべてデフォルトサイトに転送される
意図しないドメインが表示されるケースの典型例です。
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
ここでServerName
が指定されていない仮想ホストが最初に記述されているため、example.com
以外のドメインはすべて/var/www/html
が表示されます。
2. 意図したサイトが表示されない
複数の仮想ホストが同一ポートで競合している場合、意図しない仮想ホストが優先されます。
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
この設定ではtest.com
が最初に記述されているため、example.com
へのリクエストがtest.com
として処理される可能性があります。
意図したデフォルトホストの設定方法
デフォルトホストを意図的に指定することで、競合を防ぐことができます。
<VirtualHost *:80>
ServerName _default_
DocumentRoot /var/www/default
</VirtualHost>
ServerName _default_
と記述することで、明示的にデフォルトホストを指定できます。これにより、不明なホストへのリクエストは/var/www/default
で処理されます。
設定順序を管理して競合を防ぐ
- 000-default.confなどのファイル名でデフォルトホストの設定を最初に読み込ませる。
- 明確に
ServerName
を記述し、意図しない仮想ホストがデフォルトにならないようにする。
これにより、仮想ホストの競合を防ぎ、安定したサイト運用が可能になります。次は、リッスンポートとListen
ディレクティブの重要性について解説します。
Listenディレクティブとポート設定の注意点
Apacheでは、Listen
ディレクティブを使用してサーバーが受け付けるポートを指定します。仮想ホストが競合する原因の一つに、Listen
設定の誤りや不足があります。正しく設定しないと、仮想ホストが意図したポートでリクエストを受け付けず、サイトが表示されないことがあります。
Listenディレクティブの役割
Listen
ディレクティブは、ApacheがどのIPアドレスとポートで接続を待ち受けるかを定義します。これが適切に設定されていないと、仮想ホストがリクエストを正しく処理できません。
例1:基本的なListen設定
Listen 80
Listen 443
ポート80
(HTTP)と443
(HTTPS)で待ち受けます。これは標準的なウェブサーバーの構成です。
例2:特定のIPアドレスでListen
Listen 192.168.1.10:80
Listen 192.168.1.10:443
特定のIPアドレス192.168.1.10
でのみリクエストを受け付けます。他のIPでは仮想ホストが動作しません。
Listen設定の誤りによる競合例
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot /var/www/site2
</VirtualHost>
上記のように仮想ホストが複数ある場合でも、Listen 80
が設定されていないと、Apacheはポート80
でリクエストを受け付けません。
解決例:Listen
の追加
Listen 80
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
ポート競合の具体例
同一ポートで複数のプロセスがListenしている場合、Apacheの起動時にエラーが発生します。
Listen 80
Listen 80
このような重複はエラーの原因となります。
エラー例
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
解決策
重複するListen
ディレクティブを削除し、Listen 80
は一度だけ記述します。
複数ポートで仮想ホストを運用する方法
複数のポートで異なるサイトを運用する場合は、仮想ホストごとにポートを指定します。
Listen 8080
Listen 8443
<VirtualHost *:8080>
ServerName dev.example.com
DocumentRoot /var/www/dev
</VirtualHost>
<VirtualHost *:8443>
ServerName secure.example.com
DocumentRoot /var/www/secure
</VirtualHost>
ポート8080
で開発用サイト、8443
でセキュアなサイトを運用できます。
Listen設定のポイント
- 不要なListenを記述しない – 使用しないポートはListenから外します。
- IPアドレスとポートを明確に指定する – 必要に応じて特定のIPでのみリッスンする設定を行います。
- 重複を避ける – 同じポートで複数のListenディレクティブを記述しないように注意します。
これにより、仮想ホストのポート競合を防ぎ、安定した環境を構築できます。次に、NameVirtualHost
の役割と設定ポイントについて解説します。
NameVirtualHostの役割と設定ポイント
NameVirtualHost
は、Apache 2.2以前のバージョンで名前ベースの仮想ホストを有効にするディレクティブです。これを正しく設定しないと、仮想ホストが意図通りに動作せず、すべてのリクエストがデフォルトの仮想ホストに転送されることがあります。
Apache 2.4以降ではNameVirtualHost
は不要になりましたが、古いバージョンでは依然として重要な役割を果たします。
NameVirtualHostの基本
NameVirtualHost
を設定することで、複数の仮想ホストが同じIPアドレスとポートを共有できるようになります。
NameVirtualHost *:80
この設定があることで、次のように複数の仮想ホストを1つのIPアドレスで運用できます。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
リクエストのHost
ヘッダーに基づいて、適切な仮想ホストが処理されます。
設定ミスによる問題例
NameVirtualHost
が未設定の場合、すべてのリクエストがデフォルトホストにルーティングされてしまいます。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
example.com
とtest.com
の仮想ホストがあっても、test.com
のリクエストはexample.com
で処理される可能性があります。
解決方法:NameVirtualHost
の追加
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
DocumentRoot /var/www/test
</VirtualHost>
複数ポートでのNameVirtualHost
複数のポートで仮想ホストを運用する場合も、ポートごとにNameVirtualHost
を指定する必要があります。
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
<VirtualHost *:443>
ServerName secure.example.com
DocumentRoot /var/www/secure
</VirtualHost>
ポート80
と443
でそれぞれ仮想ホストが処理されるようになります。
Apache 2.4以降での注意点
Apache 2.4以降では、NameVirtualHost
の記述は不要です。仮想ホストを記述するだけで、自動的に名前ベースの仮想ホストが有効になります。
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
ただし、Listen
ディレクティブやServerName
の記述は引き続き必要です。
設定時のポイント
NameVirtualHost
はポートごとに指定 – 必要なすべてのポートでNameVirtualHost
を記述します。- 重複を避ける – 複数の
NameVirtualHost
が重複していないか確認します。 - Apacheのバージョン確認 – Apache 2.4以降では
NameVirtualHost
を記述しないようにします。
これにより、仮想ホストの競合を防ぎ、正しく複数サイトを運用できます。次は、設定ファイルの順序と優先度の管理方法について解説します。
設定ファイルの順序と優先度の管理方法
Apacheでは、仮想ホストの設定ファイルが読み込まれる順序が競合の要因となることがあります。仮想ホストが同じポートで複数設定されている場合、Apacheは最初に読み込まれた設定を優先して適用します。そのため、設定ファイルの順序を適切に管理することが重要です。
設定ファイルの読み込み順序
Apacheは通常、sites-available
ディレクトリ内の設定ファイルをsites-enabled
ディレクトリにシンボリックリンクで有効化します。このディレクトリ内のファイルは、アルファベット順に読み込まれます。
例:sites-enabledディレクトリの構成
000-default.conf
001-example.com.conf
002-test.com.conf
この場合、000-default.conf
が最初に読み込まれ、デフォルトホストとして機能します。
優先度を制御する方法
1. ファイル名に番号を付けて順序を明確化
ファイル名の先頭に000-
や001-
のように番号を付けることで、読み込み順序を制御できます。
sudo mv example.com.conf 001-example.com.conf
sudo mv test.com.conf 002-test.com.conf
これにより、example.com
がtest.com
よりも先に適用されます。
2. Includeディレクティブを使用して順序を指定
apache2.conf
やhttpd.conf
にInclude
ディレクティブを追加し、仮想ホストの設定ファイルを順序通りに読み込ませます。
Include /etc/apache2/sites-enabled/000-default.conf
Include /etc/apache2/sites-enabled/001-example.com.conf
Include /etc/apache2/sites-enabled/002-test.com.conf
3. デフォルトホストを明示的に指定
特定の仮想ホストをデフォルトとして設定する場合は、_default_
を使用します。
<VirtualHost _default_:80>
ServerName default-site.com
DocumentRoot /var/www/default
</VirtualHost>
これにより、他の仮想ホストが一致しない場合、明示的にdefault-site.com
が適用されます。
設定順序が影響するケース
1. 仮想ホストの競合
同じポートで複数の仮想ホストが存在し、ServerName
が一致しない場合、最初に記述された仮想ホストが処理されます。
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
DocumentRoot /var/www/site2
</VirtualHost>
この例では、site1.com
が常に優先されます。
2. SSL仮想ホストの優先度
HTTPSの仮想ホストが複数ある場合も、ファイルの読み込み順が影響します。SSL仮想ホストが後に記述されていると、HTTPリクエストが意図しないサイトにリダイレクトされる可能性があります。
<VirtualHost *:443>
ServerName secure.example.com
DocumentRoot /var/www/secure
</VirtualHost>
これが先に記述されていないと、別の仮想ホストがSSLリクエストを処理する可能性があります。
優先度を適切に管理するポイント
- 番号付きファイル名を使用する –
000-
などを使用して、デフォルトホストを先頭に配置します。 - Includeディレクティブで順序を指定する – 読み込み順を明示的に管理します。
- デフォルトホストを明示的に設定する –
_default_
を使用してデフォルトホストを指定します。
次に、実際のトラブルシューティング手順を詳しく解説します。
実践的なトラブルシューティング手順
仮想ホストの競合が発生した場合、迅速に問題を特定し、解消することが重要です。Apacheでは設定のわずかなミスが大きな影響を与えるため、段階的に原因を特定して修正していきます。
1. Apacheの設定ファイルを検証する
Apacheには、設定ファイルの構文エラーをチェックするコマンドが用意されています。まずはこれを実行して、基本的なミスがないか確認します。
sudo apachectl configtest
出力例
Syntax OK
エラーがある場合はエラーメッセージが表示されます。たとえば、以下のようなエラーが出力されることがあります。
AH00526: Syntax error on line 15 of /etc/apache2/sites-enabled/example.com.conf:
Invalid command 'DocumentRoo', perhaps misspelled or defined by a module not included in the server configuration
この場合は、スペルミスが原因である可能性があります。
2. 有効な仮想ホストの一覧を確認する
次に、Apacheがどの仮想ホストを認識しているかを確認します。
sudo apachectl -S
出力例
VirtualHost configuration:
*:80 is a NameVirtualHost
default server example.com (/etc/apache2/sites-enabled/000-example.conf:1)
port 80 namevhost example.com (/etc/apache2/sites-enabled/000-example.conf:1)
port 80 namevhost test.com (/etc/apache2/sites-enabled/001-test.conf:1)
*:443 is a NameVirtualHost
port 443 namevhost secure.example.com (/etc/apache2/sites-enabled/002-secure.conf:1)
これにより、どの仮想ホストがどのポートで動作しているかを確認できます。デフォルトの仮想ホストや競合している仮想ホストが特定しやすくなります。
3. Listenディレクティブを確認する
Listen
ディレクティブが正しく設定されているかを確認します。
grep -r "Listen" /etc/apache2/
出力例
Listen 80
Listen 443
複数のListen 80
が記述されている場合、競合が発生することがあります。不要なListen
があれば削除します。
4. 優先順位を変更する
仮想ホストの優先順位を変更することで、意図したホストが適切に表示されるようにします。
sudo mv /etc/apache2/sites-enabled/example.com.conf /etc/apache2/sites-enabled/000-example.com.conf
sudo systemctl restart apache2
ファイル名の先頭に000-
を追加することで、優先的に読み込まれるようになります。
5. デフォルト仮想ホストを設定する
明示的にデフォルトホストを指定することで、競合を防ぎます。
<VirtualHost _default_:80>
ServerName default.example.com
DocumentRoot /var/www/default
</VirtualHost>
6. ホストファイルを確認する
ローカル環境で仮想ホストが正しく動作しない場合は、/etc/hosts
ファイルを確認します。
cat /etc/hosts
出力例
127.0.0.1 example.com
127.0.0.1 test.com
必要なドメインが正しく記述されているか確認し、不足している場合は追記します。
7. Apacheのログを確認する
問題の特定にはログファイルが役立ちます。error.log
やaccess.log
を確認して、仮想ホストに関連するエラーが出力されていないか確認します。
sudo tail -f /var/log/apache2/error.log
8. HTTPSの仮想ホストを確認する
SSL/TLSを使用する場合、ポート443
の仮想ホストが正しく設定されているかを確認します。証明書のミスがあるとhttps
でサイトが表示されません。
<VirtualHost *:443>
ServerName secure.example.com
DocumentRoot /var/www/secure
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.crt
SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>
9. 設定変更後の再起動
設定ファイルを修正したら、Apacheを再起動して変更を反映させます。
sudo systemctl restart apache2
ポイント
- 構文エラーがないか確認する –
configtest
でエラーチェック - 優先順位を管理する – ファイル名を
000-
などに変更 - ログを活用する – エラーが出ていないか確認
次は、具体的な仮想ホスト設定の例を紹介します。
具体例:複数ドメインの仮想ホスト設定サンプル
複数のドメインを1つのApacheサーバーで運用する際の具体的な仮想ホスト設定例を紹介します。これにより、異なるドメインがそれぞれのコンテンツを適切に配信できるようになります。
前提条件
example.com
とtest.com
の2つのドメインを1台のサーバーで運用- HTTPとHTTPSの両方をサポート
- ドキュメントルートは
/var/www/example
と/var/www/test
に設定
設定例
1. HTTP仮想ホスト設定
ポート80
で各ドメインのリクエストを受け付けます。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example-error.log
CustomLog ${APACHE_LOG_DIR}/example-access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test
<Directory /var/www/test>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/test-error.log
CustomLog ${APACHE_LOG_DIR}/test-access.log combined
</VirtualHost>
この設定により、example.com
とtest.com
のHTTPリクエストがそれぞれのディレクトリにルーティングされます。
2. HTTPS仮想ホスト設定
SSL/TLSを使用してポート443
でセキュアな接続を提供します。
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.crt
SSLCertificateKeyFile /etc/ssl/private/example.key
ErrorLog ${APACHE_LOG_DIR}/example-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/example-ssl-access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test
<Directory /var/www/test>
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/test.crt
SSLCertificateKeyFile /etc/ssl/private/test.key
ErrorLog ${APACHE_LOG_DIR}/test-ssl-error.log
CustomLog ${APACHE_LOG_DIR}/test-ssl-access.log combined
</VirtualHost>
この設定により、各ドメインがHTTPSでセキュアに接続されます。証明書ファイルは適切に配置し、ドメインごとに異なるものを使用します。
リダイレクト設定(HTTPからHTTPSへのリダイレクト)
HTTPでアクセスされた場合に自動的にHTTPSへリダイレクトする設定を追加します。
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName test.com
Redirect permanent / https://test.com/
</VirtualHost>
これにより、HTTPアクセスはHTTPSへ転送され、セキュリティが向上します。
ホストファイルの確認と設定
ローカルでテストする場合は、/etc/hosts
に以下を追加します。
127.0.0.1 example.com
127.0.0.1 test.com
Apacheの再起動と動作確認
設定ファイルを有効にし、Apacheを再起動します。
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl restart apache2
確認方法
ブラウザでhttp://example.com
やhttps://test.com
にアクセスし、正しいサイトが表示されることを確認します。
curl -I http://example.com
curl -I https://test.com
設定時の注意点
- 証明書の有効期限を確認し、期限切れを防ぎます。
- ファイル名の順序を
000-
などで制御し、デフォルト仮想ホストを明確にします。 - エラーログを定期的に確認し、設定の不備や問題を早期に発見します。
これで複数ドメインを1台のApacheサーバーで効率的に運用できます。次は、本記事のまとめに進みます。
まとめ
本記事では、Apache仮想ホストの競合を解消する方法について詳しく解説しました。仮想ホストの基本構成から、競合が発生する原因、デフォルトホストの設定ミス、Listen
ディレクティブの重要性、NameVirtualHost
の役割、設定ファイルの順序管理まで幅広く取り上げました。
また、実践的なトラブルシューティング方法や、複数ドメインを運用する際の具体的な仮想ホスト設定例を紹介し、HTTPからHTTPSへのリダイレクト設定まで網羅しました。
仮想ホストの競合を防ぐためのポイント
- 設定ファイルの順序を明確にし、優先順位を管理する
Listen
ディレクティブを正しく設定し、ポートの競合を防ぐ- デフォルト仮想ホストを明示的に指定して意図しないサイトが表示されるのを防ぐ
- トラブルシューティングでは
apachectl configtest
やapachectl -S
を活用し、設定ミスを早期に特定する
これらの知識を活用することで、Apacheを使用した複数サイトの運用が安定し、意図しない仮想ホストの競合を防げます。
コメント