Versuch, Apache-Server auf Mavericks auszuführen

Ich versuche, einen Apache-Vhost auf Mavericks einzurichten, was ich unter 10.6.8 problemlos tun konnte. Ich verwende den Standard-Apache, der bei einer Neuinstallation von OS X 10.9.2 vorinstalliert ist

$ sudo apachectl start
org.apache.httpd: Already loaded

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.053 ms

Aber wenn ich zu einem http://localhostoder http://127.0.0.1in einem meiner 3 Browser navigiere, wird mir gesagt, dass ich keine Verbindung herstellen kann, anstatt Apaches "It Works!" Nachricht. (In Chrome sehe ich "Ups! Google Chrome konnte keine Verbindung zu localhost herstellen")

Ich habe auch versucht, einen vhost hinzuzufügen:

  1. Unkommentiert Include /etc/apache2/extra/httpd-vhosts.confin /private/var/appache2/httpd.conf
  2. 127.0.0.1 test.localZu /etc/hosts hinzugefügt
  3. Folgendes zu /etc/apache2/extra/http2-vhosts.conf hinzugefügt

    <VirtualHost *:80>
     ServerName test.local
     DocumentRoot /Users/me/test
     <Directory /Users/me/test>
       AllowOverride all
       Options -MultiViews
     </Directory>
    </VirtualHost>
    
  4. Apache neu gestartet

    $ apachectl -t
    Syntax OK
    $ sudo apachectl graceful
    $ ping test.local
    PING test.local (127.0.0.1): 56 data bytes
    64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
    

... aber wieder nichts, wenn ich zu http://test.local navigiere

Irgendwelche Gedanken? Hat das etwas mit der neuen "Web Sharing"-Einstellung von Mavericks zu tun, die Sie separat herunterladen müssen, oder so?


Bearbeiten:

Herausgefunden! Ich musste die Hauptoptionen des httpd.conf-Verzeichnisses gemäß diesemAllowOverride All Tutorial in und ändern . In der mit Mavericks gelieferten conf-Datei ist dies deaktiviert. Wenn ich mir meine ursprüngliche conf-Datei auf meinem alten Rechner angesehen hätte, wäre mir der Unterschied aufgefallen.Allow from All

Die andere Sache, die mich durcheinander gebracht hat, ist, dass ich es getan habe

ErrorLog "/Users/me/error.log"

In meiner VirtualHost-Definition erhalte ich "Chrome kann keine Verbindung herstellen", obwohl Apache mir mitteilt, dass die Syntax in Ordnung ist. Das Entfernen behebt das Problem.

Danke an alle!

Sie müssen für Web-Sharing bezahlen?
Soweit ich verstanden habe, gibt es ein neues Front-End für die Servereinstellungen, für das Apple Sie bezahlen möchte, das Sie jedoch vermeiden können, indem Sie die Pref-Dateien direkt ändern. Darin kann ich mich irren, und ich weiß nicht, ob es mit meiner Frage zusammenhängt. In meinem "Sharing"-Ordner sehe ich "Web Sharing" überhaupt nicht, während es in meinem 10.6.8 dort war
Nein, es gibt nichts, wofür Sie bezahlen müssen, außer dass Sie OS X Server möchten. Aber auch OS X Server nutzt den vorinstallierten Apache nicht. Sie können hier kostenlos ein benutzerdefiniertes Einstellungsfenster aus dem Internet herunterladen: clickontyler.com/web-sharing

Antworten (3)

Prüfen /var/log/apache2/error_logoder /var/log/system.log. Sie können auch versuchen, den DNS-Cache zu leeren, indem Sie ausführen sudo killall -HUP mDNSResponder. Siehe http://support.apple.com/kb/ht5343 .

Einfach laufen sudo apachectl startmacht http://localhostdie Show "Es funktioniert!" Seite für mich in einer 10.9 VM.

Speichern

<Directory "/Users/username/Sites/">
  Options Indexes Multiviews
  AllowOverride AuthConfig Limit
  Order allow,deny
  Allow from all
</Directory>

as /etc/apache2/users/username.confand running sudo apachectl restartweist http://localhost/~username/darauf hin ~/Sites/.

Auskommentieren Include /private/etc/apache2/extra/httpd-vhosts.confin /etc/apache2/httpd.conf, Hinzufügen 127.0.0.1 test.devzu /etc/hosts, Hinzufügen

<VirtualHost *:80>
  DocumentRoot "/Users/username/Sites/test"
  ServerName test.dev
</VirtualHost>

zu /etc/apache2/extra/httpd-vhosts.conf, und das Laufen sudo apachectl restartmacht http://test.devauf ~/Sites/test/.

Der erste Textblock ist das, was ich der Hauptdatei httpd.conf hinzugefügt habe, und das hat funktioniert. Ich werde diese Antwort akzeptieren, da sie am nächsten ist. Danke!

Haben Sie zuallererst Ihren DNS-Cache geleert , nachdem Sie die Hosts-Datei geändert haben? dscacheutil -flushcacheIm Terminal ausführen .

Zweitens können Sie ausführen, apachectl -Sum Ihre Apache2-Konfiguration zu überprüfen. Korrigieren Sie alle Fehler und starten Sie Apache erneut.

Drittens überprüfen Sie die Berechtigungen für Ihr /Users/me/testVerzeichnis. Chmod die Berechtigungen für dieses Verzeichnis 775oder sogar 777um zu sehen, ob das hilft.

1. Lief es jetzt. Der Cache wurde geleert (Chrome hat einige Sekunden länger gebraucht, um die Seite aufzulösen), sagt aber immer noch, dass keine Verbindung hergestellt werden kann. 2. Ich bekomme VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 is a NameVirtualHost, default server test.local (/private/etc/apache2/extra/httpd-vhosts.conf:29), port 80 namevhost test.local (/private/etc/apache2/extra/httpd-vhosts.conf:29). 3. chmod auf 777 und es hat nicht geholfen. Außerdem würde ich immer noch erwarten, das "It Works!" Nachricht bei localhost auch ohne vhost, richtig?
Wenn Sie ein funktionierendes Setup unter 10.6.8 hatten, wird Ihre alte httpd.conf-Datei unter /etc/apache2/httpd.conf.pre-update gespeichert. Sie können dies mit der aktuellen conf-Datei vergleichen, um zu sehen, ob andere Einstellungen anders sind.
Ja du würdest. Indem Sie einfach Folgendes tun: sudo apachectl start und "localhost" in Firefox eingeben, sehe ich "It works" im Browser. Vielleicht können Sie versuchen, Macports zu verwenden und Apache2 erneut zu installieren. Kopieren Sie bei Bedarf die "saubere" Konfiguration.
Ok, wenn ich die Zeile in httpd.conf erneut auskommentiere Include /etc/apache2/extra/httpd-vhosts.confund Apache neu starte, sehe ich jetzt die Meldung "It Works!" Nachricht. Vermutlich hat sich dies nach dem DNS-Cache-Flush geändert. Jetzt muss ich nur noch herausfinden, was mit meiner vhosts-Datei nicht stimmt. Aber es sollte jetzt eine einfachere Aufgabe sein, danke.
Nachdem ich Ihren ursprünglichen Beitrag in Ihrem obigen vhost-Abschnitt erneut gelesen habe, denke ich, dass DocumentRoot in Anführungszeichen eingeschlossen werden muss.
@JMS: In meiner letzten Einrichtung war dies nicht der Fall, und das Hinzufügen von Anführungszeichen scheint jetzt nicht zu helfen.
Herausgefunden! Siehe Bearbeiten oben.

Ich habe von Snow Leopard auf Mavericks aktualisiert und mein Apache hat mir sofort das Leben schwer gemacht. Nachdem ich mir zwei Nächte hintereinander den Kopf zerbrochen, alles über die Konfiguration von Apache unter Mavericks gelesen und keinerlei Fortschritt darin gesehen habe – habe ich für jeden virtuellen Host, der zuvor mit SL konfiguriert war, die Meldung „Es funktioniert“ und irgendwann sogar das funktioniert nicht mehr – Ich habe festgestellt, dass Sie, wenn Sie Ihre alte httpd.conf-vorherige mit der neu generierten httpd.conf austauschen, LoadModule bonjour_module libexec/apache2/mod_bonjour.soauch auskommentieren sollten. apachectl start(oder restart) wirft keine Fehler, aber es mag dieses Modul überhaupt nicht. Also kommentiere diese eine Zeile aus.

Ich denke, die Lektion besteht darin, jede Anweisung in der Konfiguration dreifach zu überprüfen. Und schlagen Sie sich auch weniger den Kopf. ;/