VHOST funktioniert nicht in Apache

VHOST funktioniert nicht in Apache

Ich habe einen LAMP-Server, der unter Ubuntu 11.04 läuft. Das Problem ist nun, dass die Websites vom Terminal aus aktiviert und deaktiviert werden müssen. Auf alle muss von dort aus zugegriffen werden, http://localhostwas nicht sehr effizient ist. Also habe ich mithilfe einiger Tutorials aus dem Internet einen VHOSTS erstellt. Hier ist der Code dafür

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    Servername site.com
    ServerAlias www.site.com
    DocumentRoot /home/starx/public_html/site/public
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/starx/public_html/site/public>
        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>
nGen
    ErrorLog ${APACHE_LOG_DIR}/site-error.log

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

    CustomLog ${APACHE_LOG_DIR}/site-access.log combined

    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>

Jetzt kann ich immer noch nicht auf die Seite zugreifen, http://site.comaber wenn ich über zugreife, http://localhsot/wird sie aufgerufen.

Ich habe alle anderen Seiten einschließlich der Standardseite deaktiviert und nur eine Seite aktiviert, d. h.site

Wie kann ich das beheben?

Antwort1

Ich habe nur versucht, dies zum Laufen zu bringen, und nachdem ich mich ein wenig umgesehen hatte, fand ich heraus, was bei mir schief lief.

Ich verwende xampp (lampp) 1.80 für Ubuntu 12.04.

offen/opt/lampp/etc/httpd.conf

Siehe Linie 488

# Virtual hosts  
# Include etc/extra/httpd-vhosts.conf

Entfernen Sie das „#“ aus include.
Bei einer Neuinstallation wird das httpd-vhosts.confPaket nicht sofort geladen.

Antwort2

/usr/share/doc/apache2/README.Debian.gzWenn Sie Definitionen für zusätzliche Sites erstellen möchten, müssen Sie laut individuelle Site-Konfigurationsausschnitte in einfügen (siehe Beispiel). Sie können dann Sites auf einem bestimmten Host mit den Befehlen a2ensite(8) und a2dissite(8) aktivieren und deaktivieren. Beachten Sie, dass /etc/apache2/sites-available/dies /etc/apache2/sites-available/defaultmöglicherweise nicht genau wie beschrieben funktioniert, wenn die verteilten Konfigurationen erheblich geändert wurden.

Wenn eine Site auf diese Weise aktiviert wurde und weiterhin nicht zu funktionieren scheint, sollten Sie sicherstellen, dass der Webserver den Namen der neuen Site so auflösen kann, dass er mit einer IP-Adresse übereinstimmt, von der der Webserver glaubt, dass sie ihr zugewiesen ist: Die einfachste Möglichkeit ist wahrscheinlich, dies mit vom Server aus zu überprüfen. Sie sollten auch überprüfen, ob der Client den Namen so auflöst, dass er den betreffenden Server erreicht (obwohl die aufgelöste IP nicht mit einer übereinstimmen muss, die der Server verwendet). Bei unsicheren Sites ist dies am einfachsten mit und geben Sie nach Abschluss der Verbindung (es erfolgt keine Eingabeaufforderung) die folgenden drei Zeilen ein (beachten Sie, dass die dritte Zeile leer ist, Sie aber ein drittes Mal die Eingabetaste drücken müssen):w3m https://my.new.secure.sitetelnet my.new.site 80

GET / HTTP/1.1
Host: my.new.site

Wenn diese funktionieren, ist alles andere ein Browserproblem. Wenn das erste erfolgreich ist und das zweite fehlschlägt, ist wahrscheinlich etwas in der Netzwerkschicht (NAT, Proxys usw.) nicht in Ordnung: Wie man das Problem genau behebt, hängt viel zu stark von der Netzwerktopologie und den vorhandenen Geräten ab: Bitte stellen Sie eine weitere Frage mit Einzelheiten, wenn dies auf Sie zutrifft.

Wenn der erste Test fehlschlägt, überprüfen Sie den auf dem Server verfügbaren Namendienst und die dem Server zugewiesenen IP-Adressen (ifconfig -a). Überprüfen Sie auch Ihre Site-Zugriffsprotokolle, um sicherzustellen, dass Sie ungefähr zum richtigen Zeitpunkt eine Verbindung sehen. Stellen Sie abschließend sicher, dass Ihr virtueller Host nach Namen und nicht nach IP lauscht und die Ergebnisse in Ihrer VirtualHost-Anweisung nicht nach / basierend auf IP filtert.

Antwort3

Ich bin nicht sicher, ob das das ist, was Sie wollen.

Ersetzen Sie Ihre Codes durch diese einfachen Kurzcodes.

<VirtualHost *:80>
   ServerAdmin admin@localhost
   DocumentRoot YourDocumentRoot
   ServerName site.com
   ServerAlias www.site.com
   ErrorLog localhost
   CustomLog localhost-access_log common
</VirtualHost>

Weitere Informationen zu vhost finden Sie hier.Hier

Antwort4

Haben Sie site.com und www.site.com zu Ihrer /etc/hosts-Datei hinzugefügt, um sicherzustellen, dass das DNS-Routing korrekt ist? Sie können versuchen, nslookup site.comdas DNS zu testen.

Wenn Sie sicherstellen möchten, dass dies http://localhostnicht funktioniert, löschen Sie die Dateien /etc/apache2/default und default-ssl und verwenden Sie einen einzelnen virtuellen Host.

verwandte Informationen