Ubuntu 14.04上のApache仮想ホストが機能しないのはなぜですか?


23

Ubuntu 14.04にApache 2.4をインストールしましたが、http://localhost/アドレスごとに正常に機能していました。しかし、たとえば、新しい仮想ホストを追加してhttp://bow.locapacheを再起動しようとすると、新しいアドレスはで利用できず、利用できませんhttp://bow.locでしたhttp://localhost

私の構成は次のとおりです。

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

どうすればサイトを取得できhttp://bow.locますか?



ここで私の答えをチェックしてください。同様の問題が発生し、システムのDNS構成に問題があることが判明しました。
jmarceli

回答:


29

Apache 2.4以降、各仮想ホストファイルには.conf拡張子が必要です。

各仮想ホストファイルの名前を変更して、.conf拡張子を含めることができます。

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

a2ensiteコマンドを使用して、仮想ホストを追加します。

a2ensite example.com.conf

Apacheをリロードします。

service apache2 reload

ありがとう!そして、このアクションの後、/etc/hostsファイルを手動で変更してホストを追加する必要はありませんか?Apacheは新しいホストを自動的に書き込みますか?
ビクターボチャースキー14

Apacheは新しいホストを自動的に書き込みません。手動で書き込む必要があります。CMIIW
アリPratomo

だから、私の設定は正しいです、そして、私はホストを追加するのを忘れたために問題があります/etc/hosts
ビクターボチャースキー14

他の方法は、apache2.confを変更して、「IncludeOptional sites-enabled / *」ディレクティブから「.conf」拡張子を削除することです。ウェブサイトのドメインをファイル名として使用しているため、余分な「.conf」要件は嫌いです。
レペ

17

ホストを追加するのを忘れました/etc/hosts

127.0.0.1   localhost
127.0.0.1   bow.loc

私はApacheがそれを自動的に行うと思った。


サーバー上でこれを行う必要はありませんでした。しかし、私は常にテスト目的でクライアントからそれを行います。ここで言っていることを明確にできますか?
フリッカーフライ

@flickerflyどういう意味ですか?Apache
仮想

これも追加するのを忘れました!:P
Rishi Kulshreshtha

くそー、Debian 8 VMでこれを無駄にしました!ありがとう!!!
-lucaferrario

@lucaferrarioハハ、私も。明らかにするのが難しい単純なバグ;)どういたしまして!
ビクターボチャルスキー

3

さて、私はこれらすべてのソリューションを提供しようとしました。しかし、残念ながら何も機能しませんでした!悲しいかな編集

    /etc/hosts

エントリーする

    127.0.1.1 example.com test.com

そしてそれは働いた!!

(技術的にあまり話していないのでごめんなさい!)



-3
Options FollowSymLinks MultiViews

char '+'が必要:+ FollowSymLinks + Multiviews

Order allow,deny
Allow from all

今=すべての許可が必要


これをどこに置き、何をするのか説明してください。コマンドや構成アーティファクトを投稿するだけではありません。良い答えを書くにはどうすればいいですか?を
デビッドフォースター

1
-を使用して除外する場合は、さまざまなオプションの前に+または-を追加するだけです。そうでなければ、彼らは行ってもいいです。すべての必須要件はApache 2.4用です。Order、Allow行は2.2構文です。
フリッカーフライ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.