2014-10-21 10 views
30

Ich habe sauber Mac OSX Yosemite installiert, aber ich kann nicht die Apache 2.4 konfigurieren, wie ich es immer auf älteren OSX-Versionen getan habe.Ändern Localhost-Verzeichnis für Yosemite Apache 2.4

Folgendes möchte ich tun: Setzen Sie das Verzeichnis "localhost" auf "/ Users/username/Public /". Aber alles, was ich versucht habe, wird nicht funktionieren, ich bekomme immer ein "Forbiden, kann nicht auf/zugreifen" oder ich bekomme den Standard "Es funktioniert!" Seite ...

Wie kann ich meinen localhost einfach rroot?

Thx

EDIT (dank Krister Andersson für die Antwort)

Für Mac OSX 10.10 Yosemite

ich auch die Änderungen poste ich die Dinge tun musste, um Laufen.

In "/ etc/apache2/users /" habe ich eine Datei mit dem Benutzernamen myUsername.conf erstellt.

Sie können Ihren Benutzernamen erhalten, indem Sie "id" im Terminal eingeben. Sie sollten Ihren Benutzernamen am Anfang in "uid = 501 (myUsername)" finden.

In dieser neuen "myUsername.conf" Datei, kopieren Sie einfach diese Vergangenheit:

<Directory "/Users/myUsername/Sites/"> 
    AllowOverride All 
    Options Indexes MultiViews 
    Options +FollowSymLinks 
    Require all granted 
</Directory> 

nicht den myUsername Wert ändern vergeben.

Dann wird in der "/etc/apache2/httpd.conf" Datei Kommentar- alle diese zwei Linien:

167 #LoadModule userdir_module libexec/apache2/mod_userdir.so 
169 #LoadModule php5_module libexec/apache2/libphp5.so 

Linie 236, ändern Sie das Verzeichnis von "DocumentRoot", was auch immer Sie wollen. Zeile 250, "Optionen" auf "Optionen" einstellen Optionen Indizes FolgenSymLinks Multiviews ". Zeile 258," AllowOverride None "auf" AllowOverride All "setzen. Zeile 263," Require all denied "auf" Require all contricted "setzen

in Terminal neu starten apache von "sudo apachectl restart" eingeben.

Es ist für mich installieren auf Mac OS X 10.10 Yosemite sauber arbeiten.

+1

neu starten -k Ich mag, wie Sie benutzte das Wort "Und" dort ... ("Was hast du bisher probiert?" ist nicht erlaubt.) –

+0

mögliches Duplikat von [Apache localhost/~ username/funktioniert nicht] (http://stackoverflow.com/questions/ 24583859/apache-localhost-username-not-working) –

+0

Nein, es ist kein Duplikat. – Jordan

Antwort

41

ich habe Yosemite gerade installiert und ich es geschafft, die DocumentRoot zu ändern ohne irgendwelche Probleme Zuerst habe ich die folgenden Zeilen in /private/etc/apache2/httpd.conf:

geändert
DocumentRoot "/Library/WebServer/Documents" 
<Directory "/Library/WebServer/Documents"> 
Options FollowSymLinks Multiviews 

AllowOverride None 
</Directory> 

zu:

DocumentRoot "<CUSTOM_PATH>" 
<Directory "<CUSTOM_PATH>"> 
Options Indexes FollowSymLinks Multiviews 

AllowOverride All 
</Directory> 

Die oben eine benutzerdefinierte DocumentRoot gesetzt, aktivieren Verzeichnisinhalt und ermöglichen Konfigurationen von .htaccess Dateien überschrieben werden.

Dann startete ich Apache neu, indem ich sudo apachectl restart ausführte.

Ein anderer Ansatz wäre, einen virtuellen Host einzurichten.Vergewissern Sie sich zuerst, so dass die folgende Zeile in der /private/etc/apache2/httpd.conf Datei unkommentiert ist:

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

Dann können Sie die folgenden in der httpd-vhosts.conf Datei hinzufügen:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/Library/WebServer/Documents" 
    ServerName example.local 
    ErrorLog "/private/var/log/apache2/example.local-error_log" 
    CustomLog "/private/var/log/apache2/example.local-access_log" common 

    <Directory "/Library/WebServer/Documents"> 
    Options Indexes FollowSymLinks Multiviews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 
</VirtualHost> 

Das obige Setup ein Dokument Wurzel für ein neues virtueller Host mit dem Namen example.local und Aktivieren der Verzeichnisauflistung und Erlauben, dass Konfigurationen von .htaccess Dateien überschrieben werden. Natürlich Ihr müssen auch Apache neu starten, damit die Änderungen wirksam werden:

sudo apachectl restart 
+1

Das funktionierte für mich. Vielen Dank! – ksb86

+1

Schön! Es funktioniert auch für mich. Ich bin schlecht in der Serverkonfiguration. Vielen Dank, ich beantworte auch meine Frage, um meine Konfiguration zu posten (ich füge einige Änderungen aus anderen Quellen hinzu). Bonus: Wissen Sie, wie man localhost auf root "/" setzt, das nur für 127.0.0.1 verfügbar ist, und auf die von außen angeforderte 127.0.0.1, die in einen anderen Ordner umgeleitet wird? – Jordan

+0

@ Jordan - Ich könnte vielleicht helfen, aber da dies eine andere Frage zu sein scheint, denke ich, dass du zuerst eine neue erstellen solltest und du solltest auch versuchen, klarere Informationen darüber zu geben, was du zu tun versuchst. – Cyclonecode

10

Auf El Capitan sollten Sie Apache mit „k“ Flag neu starten: sudo apachectl

+1

Das löste mein Problem mit nicht aktualisierendem Wurzelverzeichnis :) – borislemke

Verwandte Themen