2012-07-18 15 views
18

ich nur lighttpd auf meinem dedizierten Server installiert haben, mod_fastcgi aktiviert ist, also habe ich die folgenden Zeilen in der lighttpd.conf Datei angehängt:Lighttpd für PHP Forbidden 403 Dateien

fastcgi.server = (".php" => 
("localhost" => 
        (
         "socket" => "/tmp/php-fastcgi.socket", 
         "bin-path" => "/usr/local/bin/php-cgi" 
        ) 
        ) 
) 

es gibt aber noch nicht Hilfe, da ich die 403 - Forbidden Nachricht erhalte, wenn ich versuche, eine PHP-Datei in meinem Webbrowser einzugeben ... Wenn ich die index.php Datei aus meinem Webstammverzeichnis lösche und die index.html dort ablege, dann ist alles in Ordnung, und es gibt keine Fehler, egal ob index.php Datei hat 100 Zeilen oder nur eine - <?php echo 'test'; ?> es zeigt immer eine 403 - Forbidden, ich habe jetzt keine Ideen mehr.

Warum ist es passiert?

ls -la meiner Web-Root-Verzeichnis:

# 
total 6 

    drwxr-xr-x 15 root wheel 1536 Jul 18 10:23 . 
    drwxr-xr-x 4 root wheel 512 Jul 18 08:45 .. 
    drwxr-xr-x 2 www www  512 Jul 1 02:36 cache 
    drwxr-xr-x 2 www www  512 Jul 1 02:36 config 
    drwxr-xr-x 6 www www  512 Jul 1 02:36 inc 
-rw-r--r-- 1 www www  9 Jul 18 11:02 index.php 
+0

Können Sie 'ls -la' Ihres Webstamms anzeigen? Es ist wahrscheinlich, dass deine Berechtigungen falsch sind. – Martin

+0

#edited meine Frage mit dem – Scott

+0

und welcher Benutzer läuft php-cgi als? Gibt es auch Fehler in Ihren Protokollen? – Martin

Antwort

14

Ihre PHP ist nicht richtig konfiguriert. überprüfen Sie Ihre lighttpd error.log es wird so etwas wie angeben:

(mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed. 

i verwenden:

fastcgi.server = (".php" => ((          
        "bin-path" => "/bin/php-cgi",    
        "socket" => "/tmp/php.socket",    
        "max-procs" => 1,          
        "bin-environment" => (       
         "PHP_FCGI_CHILDREN" => "16",      
         "PHP_FCGI_MAX_REQUESTS" => "10000"   
        ),   
        "broken-scriptfilename" => "enable" 
       ))) 

sicher, dass fastcgi in modules.conf aktiviert ist

server.modules = (
    "mod_access", 
    "mod_fastcgi", 
# "mod_alias", 
# "mod_auth", 
# "mod_evasive", 
# "mod_redirect", 
# "mod_rewrite", 
# "mod_setenv", 
# "mod_usertrack", 
) 
6

Ich hatte das gleiche Problem. Der Fix war so einfach wie das Verschieben der Konfigurationsdateien, so dass sie aktiviert waren. Ich war alles tat ...

$ ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/ 
$ ln -s /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled/ 

und laden ...

$ service lighttpd force-reload 
+2

Dies ist kein korrekter Weg, dies zu tun. Sie müssen die Lighty-Enable-Mod-Befehle nicht ausgeführt haben. –

10

gleiche Problem, das Update für Mint war php5-cgi-Paket installieren.
sudo apt-get install php5-cgi
ermöglichen fastcgi Module
sudo lighttpd-enable-mod fastcgi fastcgi-php
und schließlich
sudo service lighttpd force-reload

+0

das ist der einzige Code mit mir gearbeitet Ich benutze php5-cgi –

+0

danke, das funktionierte für mich –

+0

sollte 'sudo apt-get installieren php7.0-cgi' für moderne disto – Nimjox

1

Unwahrscheinlich neu zu laden, sollte aber für "403 Forbidden" -Antworten als ein weiterer möglicher Grund festgestellt werden.

prüfen für jeden Zugangsmodul (mod_access) Anweisungen in der Konfigurationsdatei (lighttpd.conf)

Beispiel:

 url.access-deny = ("", ".php"); 

Docs: Module mod_access