我刚刚在专用服务器上安装了lighttpd,mod_fastcgi已启用,因此我在lighttpd.conf
文件中添加了以下行:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi"
)
)
)
但它仍然没有帮助,因为当我尝试在web浏览器中输入PHP文件时,会收到403 - Forbidden
消息。。。当我从我的web根目录中删除index.php
文件并将index.html
放在那里时,一切都很好,没有错误,无论index.php
文件有100行还是只有一行——<?php echo 'test'; ?>
总是显示为403 - Forbidden
,我现在都没有主意了。
为什么会发生这种事?
我的web根目录的ls -la
:
#
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
您的php配置不正确。检查您的lighttpd错误.log它会声明类似于:
(mod_fastcgi.c.1397) [ERROR]: spawning fcgi failed.
我使用:
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"
)))
确保在modules.conf 中启用了fastcgi
server.modules = (
"mod_access",
"mod_fastcgi",
# "mod_alias",
# "mod_auth",
# "mod_evasive",
# "mod_redirect",
# "mod_rewrite",
# "mod_setenv",
# "mod_usertrack",
)
同样的问题,Mint的修复程序是安装php5-cgi包sudo apt-get install php5-cgi
启用fastcgi模块sudo lighttpd-enable-mod fastcgi fastcgi-php
并最终重新加载sudo service lighttpd force-reload
我遇到了同样的问题。修复方法很简单,只需移动配置文件即可启用。我所做的只是。。。
$ 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/
并重新加载。。。
$ service lighttpd force-reload
在ubuntu上,您可以执行以下操作:
sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod fastcgi-php
来源:https://wiki.ubuntu.com/Lighttpd%2BPHP
不太可能,但应该注意的是,这是"403禁止"响应的另一个可能原因。
检查配置文件(lighttpd.conf)中是否有任何访问模块(mod_access)语句
示例:
url.access-deny = ( "", ".php");
文档:模块mod_access
您需要配置ur-lighttpd:
只是:
sudo lighty-enable-mod fastcgi; sudo lighty-enable-mod fastcgi-php; sudo service lighttpd force-reload