Ich versuche, php und mod_spdy auf Apache 2.4, Debian Jessie, x64 zu konfigurieren. Ich habedieser Leitfadenund Apache wie folgt konfiguriertdieser andere Leitfadenund diese Pakete installiert:
libapache2-mod-fcgid
php-cgi
php5-fpm
Ich habe jetzt Probleme mit PHP-Anwendungen: Wenn ich versuche, sie zu öffnen, erhalte ich eine 403 Forbidden-Meldung. Hier ist meine /etc/apache2/conf-enabled/fcgid.conf
<Location />
AddHandler fcgid-script .php
Options +ExecCGI
FcgidWrapper /usr/bin/php-cgi .php
</Location>
Und der Fehler, den ich bekomme, ist /var/log/apache2/error.log
AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5
Ich habe versucht hinzuzufügen
Order allow,deny
Allow from all
zur PHP-Anwendung VirtualHost, aber das Ergebnis ist dasselbe. Warum erhalte ich die 403?
Antwort1
Die Fehlermeldung 403 ist irreführend, aber korrekt. Wenn ich mir /etc/apache2/conf-enabled/serve-cgi-bin.conf anschaue, habe ich:
<IfModule mod_alias.c>
<IfModule mod_cgi.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>
<IfModule mod_cgid.c>
Define ENABLE_USR_LIB_CGI_BIN
</IfModule>
<IfDefine ENABLE_USR_LIB_CGI_BIN>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
</IfDefine>
</IfModule>
Dem Codefluss folgend wird „Require all granted“ auf /usr/lib/cgi-bin nur ausgeführt, wenn mod_cgi und/oder mod_cgid aktiviert sind. In meinem Fall waren sie beide deaktiviert (weil sie in Debian standardmäßig deaktiviert sind).
# a2enmod cgi ; a2enmod cgid ; service apache2 restart
Problem gelöst.
Antwort2
Der 403-Fehler liegt häufig an einer fehlenden ScriptAlias-Zeile. Wenn beispielsweise der Speicherort "/" ist und das Stammverzeichnis des Servers /var/my-www/ ist, fügen Sie es direkt vor die Anweisung ein:
ScriptAlias / /var/my-www/
<Location />
...
...