2012-07-18 19 views
18

Acabo de instalar lighttpd en mi servidor dedicado, mod_fastcgi está habilitado, así que he adjunta las siguientes líneas al archivo lighttpd.conf:Lighttpd 403 Prohibido para PHP archivos

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

Pero todavía no lo hace ayuda, ya que estoy recibiendo el mensaje 403 - Forbidden cuando trato de ingresar un archivo PHP en mi navegador web ... Cuando elimino el archivo index.php de mi directorio raíz web y coloco el index.html allí, todo está bien, y hay no hay errores, no importa si el archivo index.php tiene 100 líneas o solo una - <?php echo 'test'; ?> siempre muestra un 403 - Forbidden, ya no tengo ideas.

¿Por qué sucede?

ls -la de mi directorio raíz web:

# 
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

¿Puedes mostrar 'ls -la' de tu raíz web? Es probable que tus permisos sean incorrectos. – Martin

+0

#edité mi pregunta con ese – Scott

+0

y con qué usuario está ejecutando php-cgi como? ¿También hay algún error en tus registros? – Martin

Respuesta

14

su PHP no está configurado correctamente. comprobar su error.log lighttpd se indicará algo como:

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

yo uso:

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" 
       ))) 

asegúrese de que está habilitada en fastcgi modules.conf

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

que tenía el mismo problema La solución era tan simple como mover los archivos de configuración para que estuvieran habilitados. Todo lo que hice fue ...

$ 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/ 

y volver a cargar ...

$ service lighttpd force-reload 
+2

Esta no es una forma correcta de hacerlo. No debe haber ejecutado los comandos light-enable-mod. –

10

mismo problema, la solución de menta era instalar el paquete php5-cgi.
sudo apt-get install php5-cgi
activar módulos fastcgi
sudo lighttpd-enable-mod fastcgi fastcgi-php
y finalmente recarga
sudo service lighttpd force-reload

+0

este es el único código que trabajé conmigo estoy usando php5-cgi –

+0

gracias, esto funcionó para mí –

+0

Debería usar 'sudo apt-get install php7.0-cgi' para el disto moderno – Nimjox

1

Es poco probable, pero hay que señalar como otra posible razón para "403 Forbidden" respuestas.

Comprobar para cualquier módulo de acceso (mod_access) declaraciones en el archivo de configuración (lighttpd.conf)

Ejemplo:

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

Docs: Module mod_access

Cuestiones relacionadas