web-dev-qa-db-ja.com

Apache仮想ホスト構成をデバッグする方法は?

繰り返しますが、Apache仮想ホストの構成に問題があります。 (私の特定の設定の代わりにデフォルトの設定が使用されます)。

問題は実際には設定ミスではなく、その解決方法です。

この種の問題を迅速に解決するためのアドバイスはありますか?

さらなる情報。

デフォルトの設定ファイルは次のとおりです。

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/Apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/Apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

そして、適用されない仮想ホスト設定はこれです:

<VirtualHost *:*>

ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com

</VirtualHost>
128
GaetanZ

構文チェック

構成ファイルの構文エラーを確認するには:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -t

# Debian-based (Ubuntu)
Apache2ctl -t

# MacOS
apachectl -t

仮想ホストを一覧表示する

すべての仮想ホストとその場所をリストするには:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -S

# Debian-based (Ubuntu)
Apache2ctl -S

# MacOS
apachectl -S
179
sqren

ここにいくつかの助けになると思うコマンドがあります:

apachectl -t -D DUMP_VHOSTS

すべてのvhostのリストを取得し、どれがデフォルトであるかがわかり、構文が正しいことを確認します(yojimbo87が推奨するapachectl configtestと同じ)。

各vhostが宣言されている場所もわかります。設定ファイルが混乱している場合に便利です。 ;)

27
Arnaud Massé

仮想ホスト構成をデバッグしようとしている場合は、Apache -Sコマンドラインスイッチが便利です。つまり、次のコマンドを入力します。

httpd -S

このコマンドは、Apacheが構成ファイルをどのように解析したかの説明をダンプします。 IPアドレスとサーバー名を注意深く調べると、構成の間違いを発見できる場合があります。 (他のコマンドラインオプションについては、 httpd プログラムのドキュメントを参照してください)。

23
Michael Spector

apachectl -Sコマンドを使用したときに表示されない新しいVirtualHost構成ファイルがありました。頭をひっくり返した後、ファイルに接尾辞「.conf」がないことに気付きました。ファイルの名前をその接尾辞に変更すると、Vhostが表示され動作し始めました!

10
GreensterRox

最初に config ファイルでapachectl configtestの構文エラーをチェックしてから、Apacheエラー logs を調べます。

10
yojimbo87

最近、VirtualHostで問題が発生しました。 a2ensiteを使用してホストを有効にしましたが、再起動を実行する前に(失敗するとサーバーを強制終了します)実行しました

Apache2ctl -S

これにより、仮想ホストで何が行われているかについての情報が得られます。完全ではありませんが、役立ちます。

6
Jacksonkr

私は自分の間違いを見つけました、ログファイル名を追加しませんでした:ErrorLog/var/log/Apache2
そしてこのパス:ディレクトリ "/ usr/share/doc /"ウェブサイトのソースは含まれていませんでした。

これら2つを変更した後、すべてが機能しました。興味深いことに、Apacheはエラーを出さず、Mac OS Sierraで静かにWebサイトを開かなかっただけです。