Heute wurde ich Ubuntu Server 13.04 (Raring Ringtail) → 13.10 (Saucy Salamander) aktualisiert .
Und meine Apache 2-Installation ist kaputt.
Hier meine Konfiguration:
Datei error.log
[Fri Oct 18 10:48:07.237170 2013] [:notice] [pid 8292:tid 139804677900160] FastCGI: process manager initialized (pid 8292)
[Fri Oct 18 10:48:07.241185 2013] [mpm_event:notice] [pid 8289:tid 139804677900160] AH00489: Apache/2.4.6 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 configured -- resuming normal operations
[Fri Oct 18 10:48:07.241652 2013] [core:notice] [pid 8289:tid 139804677900160] AH00094: Command line: '/usr/sbin/apache2'
[Fri Oct 18 10:48:28.313923 2013] [authz_core:error] [pid 8294:tid 139804573181696] [client 81.219.59.75:3536] AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5-fcgi
Datei default.conf
#EU
<VirtualHost *:80>
#ServerName
DocumentRoot /var/www/dev_stable
DirectoryIndex index.php index.html index.htm
<Directory /var/www/dev_stable>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Datei mods-enabled/fastcgi.conf
#<IfModule mod_fastcgi.c>
# AddHandler fastcgi-script .fcgi
# FastCgiWrapper /usr/lib/apache2/suexec
# FastCgiIpcDir /var/lib/apache2/fastcgi
#</IfModule>
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</Ifmodule>
Beim Versuch, die Datei über den Browser zu laden, wurde Folgendes angezeigt:
site_name/TEST/
Forbidden
You don't have permission to access /php5-fcgi/TEST/index.php on this server.
Was soll ich tun, um das Problem zu beheben?
Allow from all
? stackoverflow.com/questions/10351167/…Allow from all
undOrder
zuRequire
site_name/TEST/
zu/php5-fcgi/TEST
.Antworten:
Ich habe genau das gleiche Problem. Ich habe auf meinem lokalen Computer einige virtuelle Hosts für die Entwicklung ausgeführt.
Zuerst habe ich mich verändert
/etc/apache2/conf-available/php5-fpm.conf
. Ich habe jeden ersetztOrder Deny,Allow Deny from all
zu
Require all granted
Die Konfiguration muss von aktiviert werden
a2enconf php5-fpm
. Ich habe dasselbe mit meinen Konfigurationen für virtuelle Hosts gemacht und die Ersetzungen vorgenommen.Ich denke, dies wird aus Sicherheitsgründen nicht empfohlen, aber solange ich meinen Server nur für lokale Zwecke verwende, kann ich damit leben.
quelle
<Directory /> AllowOverride none Require all denied </Directory>
Genau dieses Problem trat bei einer Neuinstallation von Apache 2.4 auf. Nach ein paar Stunden googeln und testen stellte ich schließlich fest, dass ich auch den Zugriff auf das Verzeichnis zulassen musste, das das (nicht vorhandene) Ziel der Alias-Direktive enthält. Das heißt, das hat bei mir funktioniert:
# File: /etc/apache2/conf-available/php5-fpm.conf <IfModule mod_fastcgi.c> AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization # NOTE: using '/usr/lib/cgi-bin/php5-cgi' here does not work, # it doesn't exist in the filesystem! <Directory /usr/lib/cgi-bin> Require all granted </Directory> </Ifmodule>
quelle
<Directory>
Tags für cgi-bin hat mein Problem gelöst!Ich bin heute auf ein ähnliches Problem gestoßen (aber mit
mod_wsgi
). Möglicherweise handelt es sich um ein Apache 2.2-zu-2.4-Problem. Eine umfassende Liste der Änderungen finden Sie hier .Für mich war es hilfreich,
<Directory>
für jeden Pfad, über den sich das Fehlerprotokoll beschwerte , einen zusätzlichen Eintrag hinzuzufügen und den Abschnitt mit zu füllenRequire all granted
.In Ihrem Fall könnten Sie es also versuchen
<Directory /usr/lib/cgi-bin/php5-fcgi> Require all granted Options FollowSymLinks </Directory>
und ich musste meine Konfigurationsdatei von Ordner
conf.d
zu Ordner verschiebensites-enabled
.Alles in allem hat das den Trick für mich getan, aber ich kann nicht garantieren, dass es auch in Ihrem Fall funktioniert.
quelle
/etc/apache2/apache2.conf
? Eine Datei in/etc/apache2/mods-enabled/
? Irgendwo anders?Ich bin kürzlich auf das gleiche Problem gestoßen. Ich musste meine virtuellen Hosts ändern von:
<VirtualHost *:80> ServerName local.example.com DocumentRoot /home/example/public <Directory /> Order allow,deny Allow from all </Directory> </VirtualHost>
Zu:
<VirtualHost *:80> ServerName local.example.com DocumentRoot /home/example/public <Directory /> Options All AllowOverride All Require all granted </Directory> </VirtualHost>
quelle
In
apache2.conf
, ersetzen oder löschen <Directory /> AllowOverride None alle verweigern erforderlich </ Directory>, wie vorgeschlagen Jan Czarny.Zum Beispiel:
<Directory /> Options FollowSymLinks AllowOverride None #Require all denied Require all granted </Directory>
Dies funktionierte in Ubuntu 14.04 (Trusty Tahr).
quelle
Ihr virtualhost-Dateiname sollte mysite.com.conf sein und diese Informationen enthalten
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerName mysite.com ServerAlias www.mysite.com ServerAdmin [email protected] DocumentRoot /var/www/mysite # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/mysite"> Options All AllowOverride All Require all granted </Directory> # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
quelle
Ich glaube nicht, dass das Ersetzen von "Alle verweigert" durch "Alle gewährt erfordern" in dieser Richtlinie ersetzt wird:
<Directory> Options FollowSymLinks AllowOverride None #Require all denied Require all granted </Directory>
Wie von Jan Czarny vorgeschlagen und von user3801675 getrennt, ist dies der sicherste Weg, um dieses Problem zu lösen.
Gemäß den Apache-Konfigurationsdateien verweigert diese Zeile den Zugriff auf das gesamte Dateisystem Ihres Servers. Das Ersetzen kann zwar den Zugriff auf Ihre virtuellen Hostordner ermöglichen, jedoch zum Preis des Zugriffs auf Ihren gesamten Computer!
Der Ansatz von Gev Balyan scheint hier der sicherste zu sein. Es war die Antwort auf die Probleme, denen der Zugriff verweigert wurde, nachdem ich heute Morgen meinen neuen Apache-Server eingerichtet hatte.
quelle
Und ich habe diesen Fehler einfach bekommen, weil ich ein völlig anderes DocumentRoot-Verzeichnis verwendet habe.
Mein HauptdokumentRoot war der Standard
/var/www/html
und auf dem VirtualHost, den ich verwendet habe/sites/example.com
Ich habe einen Link auf
/var/www/html/example.com
(zu/sites/example.com
) erstellt. DocumentRoot wurde auf gesetzt/var/www/html/example.com
Es funktionierte wie ein Zauber.
quelle
Ich hatte das gleiche Problem nach dem Upgrade meines Systems. In meinem Fall wurde das Problem durch die Reihenfolge des Ladens der Konfigurationsdateien verursacht. In der
/etc/httpd/httpd.conf
Anfangszeit wurde es wie folgt definiert:IncludeOptional conf.d/*.conf IncludeOptional sites-enabled/*.conf
Nach einigen Stunden von Versuchen versuchte ich die folgende Reihenfolge:
IncludeOptional sites-enabled/*.conf IncludeOptional conf.d/*.conf
Und jetzt funktioniert es gut.
quelle
Ich hatte die folgende Konfiguration in meiner httpd.conf, die die Ausführung der Datei wpadmin / setup-config.php von WordPress verweigerte. Das Entfernen des Teils | -config löste das Problem. Ich denke, diese httpd.conf ist von plesk, aber es könnte eine Standardkonfiguration von WordPress sein, ich weiß es nicht. Wie auch immer, ich könnte es sicher wieder hinzufügen, nachdem das Setup abgeschlossen ist.
<LocationMatch "(?i:(?:wp-config\\.bak|\\.wp-config\\.php\\.swp|(?:readme|license|changelog|-config|-sample)\\.(?:php|md|txt|htm|html)))"> Require all denied </LocationMatch>
quelle
Denken Sie für diejenigen unter Ihnen, die AWS (Amazon Web Services) nutzen, daran, Ihren Sicherheitsgruppen eine Regel für Ihren SSL-Port (in meinem Fall 443) hinzuzufügen. Ich habe diesen Fehler erhalten, weil ich vergessen habe, den Port zu öffnen.
3 Stunden später meine Haare ausreißen ...
quelle