Warum funktionieren virtuelle Apache-Hosts unter Ubuntu 14.04 nicht?


23

Ich habe Apache 2.4 auf Ubuntu 14.04 installiert und es funktionierte adressenmäßig http://localhost/einwandfrei. Aber als ich zum Beispiel versuchte, einen neuen virtuellen Host hinzuzufügen http://bow.locund Apache neu zu starten, war die neue Adresse am http://bow.locund am nicht verfügbar http://localhost.

Meine Konfiguration ist:

<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>

Wie kann ich meine Seite erreichen http://bow.loc?



Schau dir meine Antwort hier an . Habe ein ähnliches Problem und es stellt sich heraus, dass es ein Problem mit der DNS-Konfiguration des Systems ist.
Jmarceli

Antworten:


29

Seit Apache 2.4 sollte jede virtuelle Hostdatei die Erweiterung .conf haben.

Sie können jede virtuelle Hostdatei so umbenennen, dass sie die Erweiterung .conf enthält:

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

Verwenden Sie den Befehl a2ensite, um den virtuellen Host hinzuzufügen:

a2ensite example.com.conf

Und lade Apache neu:

service apache2 reload

Vielen Dank! Und nach diesen Aktionen muss ich die /etc/hostsDatei nicht manuell ändern und Hosts hinzufügen? Schreibt Apache automatisch neue Hosts?
Victor Bocharsky

Apache schreibt neue Hosts nicht automatisch, Sie sollten es manuell schreiben. CMIIW
Ari Pratomo

Also, meine Konfiguration ist richtig und das Problem, dass ich vergessen habe, den Host hinzuzufügen/etc/hosts
Victor Bocharsky

Eine andere Möglichkeit besteht darin, die Datei apache2.conf zu ändern und die Erweiterung ".conf" aus der Anweisung "IncludeOptional sites-enabled / *" zu entfernen. Ich verwende Website-Domains als Dateinamen, daher mag ich die zusätzliche ".conf" -Anforderung nicht.
Lepre

17

Ich habe vergessen, Host hinzuzufügen in /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

Ich dachte, Apache macht das automatisch.


Ich musste das noch nie auf einem Server machen. Ich mache es aber die ganze Zeit vom Client zu Testzwecken. Können Sie klarstellen, was Sie hier sagen?
Flickerfly

@flickerfly Was meinst du? Ich habe meine virtualhosts-Punkte auf meinen lokalen Computer übertragen, um sie mit dem installierten ApacheServer zu verarbeiten
Victor Bocharsky,

Ich habe auch vergessen, dies hinzuzufügen! : P
Rishi Kulshreshtha

Verdammt, ich habe eine davon auf einer Debian 8-VM verschwendet! Vielen Dank!!!
Lucaferrario

@ Lucaferrario haha, ich auch nicht. Einfache Bugs sind schwer aufzudecken;) Gern geschehen!
Victor Bocharsky

3

Nun, ich habe all diese angebotenen Lösungen ausprobiert ... aber leider hat nichts funktioniert! Leider habe ich bearbeitet

    /etc/hosts

eintrag machen

    127.0.1.1 example.com test.com

und es hat funktioniert!!

(Sorry, wenn ich technisch nicht viel rede!)


1

Ich habe ein Python-Skript geschrieben, das die Schritte zur Erstellung des virtuellen Apache-Hosts automatisiert. In diesem Video wird erklärt, wie Sie auf GitHub Code herunterladen und herunterladen können


-3
Options FollowSymLinks MultiViews

Need char '+': + FollowSymLinks + Multiviews

Order allow,deny
Allow from all

Jetzt = Alles Gewährt erfordern


Bitte erläutern Sie, wo und was Sie damit anfangen sollen. Veröffentlichen Sie keine Befehle oder Konfigurationsartefakte. Siehe Wie schreibe ich eine gute Antwort?
David Foerster

1
Sie müssen nur ein + oder - vor die verschiedenen Optionen stellen, wenn Sie ein - verwenden, um eine auszuschließen. Ansonsten sind sie gut zu gehen. Erforderlich Alle Angaben gelten für Apache 2.4. Die Zeilen Order, Allow haben eine 2.2-Syntax.
Flickerfly
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.