20

I've just installed lighttpd on my dedicated server, mod_fastcgi is enabled, so I've appended the following lines to the lighttpd.conf file:

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

But it still doesn't help, since I'm getting the 403 - Forbidden message when I try to enter a PHP file in my web browser... When I delete the index.php file from my web root directory and place the index.html there, then everything is fine, and there are no errors, no matter if index.php file has 100 lines or just one - <?php echo 'test'; ?> it always is showing up an 403 - Forbidden, I'm out of ideas now.

Why does it happend?

ls -la of my web root directory:

#
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
5
  • Can you show ls -la of your web root? It's likely your permissions are wrong.
    – Martin
    Commented Jul 18, 2012 at 9:09
  • #edited my quesition with that
    – Scott
    Commented Jul 18, 2012 at 9:14
  • and what user is php-cgi running as? Also is there any errors in your logs?
    – Martin
    Commented Jul 18, 2012 at 9:18
  • Does this can helps? It solved many error from user getting a 403 with php & lighty.
    – j0k
    Commented Jul 18, 2012 at 9:21
  • I ran into this same issue. Tried everything in this post then found the solution on another forum, so here it is: service lighttpd stop; ps -e | grep "lighttpd" If you get a result, you likely have a perfectly working config but lighttpd is still running a config from before the php install. Just run kill on the process, then service lighttpd start again! Note that this stops lighttpd so remember to start it again if that wasn't the issue Commented Jun 24, 2017 at 18:31

6 Answers 6

14

Your php is not configured correctly. check your lighttpd error.log it will state something like:

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

i use:

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

make sure that fastcgi is enabled in modules.conf

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

Same issue, the fix for Mint was install php5-cgi package.
sudo apt-get install php5-cgi
enable fastcgi modules
sudo lighttpd-enable-mod fastcgi fastcgi-php
and finally reload
sudo service lighttpd force-reload

4
  • this is the only code worked with me I'm using php5-cgi
    – Salem
    Commented Nov 28, 2014 at 16:25
  • 1
    Should use 'sudo apt-get install php7.0-cgi' for modern disto's
    – Nimjox
    Commented Dec 17, 2017 at 4:04
  • sudo apt-get install php5.6-cgi
    – HM Tanbir
    Commented Feb 7, 2018 at 13:04
  • Since php5-cgi is not supported at moment.
    – HM Tanbir
    Commented Feb 7, 2018 at 13:04
6

I had the same issue. The fix was as simple as moving the config files so there were enabled. All I did was...

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

and reload...

$ service lighttpd force-reload
1
  • 2
    This is not a correct way to do this. You must have not ran the lighty-enable-mod commands. Commented Feb 14, 2014 at 18:27
4

On ubuntu you can do this:

sudo lighty-enable-mod fastcgi 
sudo lighty-enable-mod fastcgi-php

Source: https://wiki.ubuntu.com/Lighttpd%2BPHP

1

Unlikely, but should be noted as another possible reason for "403 Forbidden" responses.

Check for any access module (mod_access) statements in the config file (lighttpd.conf)

Example:

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

Docs: Module mod_access

1

you need to config ur lighttpd :

just :

sudo lighty-enable-mod fastcgi; sudo lighty-enable-mod fastcgi-php; sudo service lighttpd force-reload
2

Not the answer you're looking for? Browse other questions tagged or ask your own question.