Ich weiß, dass dies anderen Fragen ähnlich sieht, aber Yosemite scheint mit dem Upgrade etwas an der Apache-Konfiguration geändert zu haben. In meinem Fehlerprotokoll steht "Client von Serverkonfiguration abgelehnt: /Users/douglas/Sites/testpatient.php"
Apache-Version: MacBook-Pro: apache2 douglas $ apachectl -v Serverversion: Apache / 2.4.9 (Unix) Server erstellt: 9. September 2014 14:48:20 Meine Datei douglas.conf ist 644 root / radius und die folgenden:
<Directory "/Users/douglas/Sites">
Options Indexes Multiviews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Meine http.conf hat folgendes:
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www
</IfModule>
...
DocumentRoot "/Library/WebServer/Documents"
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy All
</Directory>
...
<Directory "/Library/WebServer/Documents">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
Satisfy All
</Directory>
Alles wäre dankbar. Ich habe versucht, auf die vorherige http.conf-Datei zurückzugreifen, aber es gibt eine Reihe von Unterschieden hinsichtlich der Module, die geladen werden müssen. Es ist durchaus möglich, dass ich ein Modul verpasst habe, aber es gibt keine Beschwerde im Protokoll.
quelle
Antworten:
In Ihrem Benutzer .conf (douglas.conf) ersetzen Sie:
Mit:
Der Unterschied besteht darin, wie Apache 2.4 mit Berechtigungen umgeht
http://httpd.apache.org/docs/2.4/upgrading.html
quelle
access_compat
Modul eingeschaltet haben. Ich denke, es wäre besser für mich gewesen, Fehler zu bekommen und meine Setups zu reparieren, als es mit den alten Konfigurationen länger laufen zu lassen.Ich hatte auch das gleiche Problem und habe es dadurch behoben:
Laden Sie das userdir-Modul, indem Sie die folgenden Zeilen in httpd.conf suchen und auskommentieren :
LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
Bearbeiten Sie extra / httpd-userdir.conf , suchen und kommentieren Sie die folgende Zeile:
Include /private/etc/apache2/users/*.conf
Bearbeiten Sie Benutzer / *. Conf , fügen Sie vor allen Optionen in der Optionszeile Zeichen hinzu
Require local
oder fügen Sie+
(oder-
) hinzu, wie folgt:<Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>
quelle
Ich habe das Gleiche erlebt, aber bei Mavericks, nachdem ich das Sicherheitsupdate von vor ein paar Tagen angewendet hatte. Mavericks verwendet immer noch Apache 2.2, daher wurde das Konfigurationsproblem von chrisMc nicht erwähnt, obwohl es so aussieht, als ob er Recht hat, und Sie müssen dies ebenfalls ändern.
In meinem Fall habe ich zuerst das Kernproblem gelöst, indem ich die zuvor hinzugefügte Homebrew PHP 5.4-Modulzeile auskommentiert habe. In der
httpd.conf
:Und stattdessen entscheiden Sie sich für das Standard-PHP-Modul, das ich zuvor auskommentiert hatte:
Das hat es behoben, aber was den Grund betrifft , warum die Homebrew- Version kaputt gegangen ist , denke ich, dass möglicherweise eine Systembibliothek, gegen die sie kompiliert wurde, im Sicherheitsupdate aktualisiert wurde. Als ich lief,
php -v
bekam ich eine Warnung über eineicu4c
Bibliothek, die nicht geladen war.Also habe ich gerade PHP neu kompiliert und es hat wieder funktioniert. In meinem Fall habe ich es einfach getan
Dann könnte das Homebrew-Modul wieder aktiviert werden.
quelle
Da ich noch nie Homebrew verwendet habe, bin ich dieser Anleitung gefolgt. Setup für die persönliche Entwicklung .
Ich habe gesehen, dass die Berechtigungen, über die im ersten Poster gesprochen wurde, Teil des Problems sind, aber ich habe immer noch ein Berechtigungsproblem bei der persönlichen Einrichtung mithilfe einer user.conf-Datei. Dieses Setup verwendete virtuelle Hosts. Ich habe keine Ahnung, was Homebrew getan hat, um das Problem zu lösen. Ich denke, ich würde dies eine Problemumgehung nennen, da mein ursprüngliches Problem dadurch nicht behoben wurde. Ich kann mit einer user.conf-Datei auf nichts auf dem Webserver zugreifen.
quelle
# AllowOverride none
und# Require all denied
), die anscheinend in Yosemite neu hinzugefügt wurden.In
httpd.conf
Kommentar:Und
/etc/apache2/extra/httpd-userdir.conf
unkommentiert:Starten Sie dann Apache neu.
quelle
Die obigen Antworten funktionieren bei einer Standardinstallation. Wenn nicht, ein paar Dinge, die helfen könnten:
In Ihrem Dateisystem muss der Ordner genau Sites mit einem Großbuchstaben S sein (der Ordnername ist im userdir-Modul fest codiert, er kann nicht anders sein). Seine Berechtigungen müssen sein:
Die
<Directory…>
Konfiguration wird darüber hinaus angewendet, daher muss sie genau mit dem Ordnernamen übereinstimmen, einschließlich des Falls (wir kommen von Linux…).Berechtigungen der
/etc/apache2/users/username.conf
Datei:Stellen Sie daher sicher, dass die Zeile
<Directory "/Users/user/Sites/">
genau auf den richtigen Ordner mit dem richtigen Benutzernamen verweist (wobei der Benutzer mit dem Namen der Konfigurationsdatei übereinstimmt), einschließlich Groß- und Kleinschreibung, und dass derSites
Ordner genau so vorhanden ist, wie er ist, einschließlich Groß- und Kleinschreibung.quelle
In meinem Fall Apache Version 2.4.27.
Problem behoben, nachdem meine Datei httpd-vhosts.conf aus dem Verzeichnis " /etc/apache2/extra/httpd-vhosts.conf " geändert wurde .
Von
Zu,
quelle