我有一台运行 nginx + php-fpm + fastcgi 的 Debian Squeeze 服务器。我在此服务器上安装了 typo3,运行良好。
不,我安装了 OTRS,但出现了一个我无法理解的错误:
2012/06/25 15:35:38 [错误] 16510#0:*34 FastCGI 在 stderr 中发送:“访问脚本‘/opt/otrs/bin/fcgi-bin/index.pl’已被拒绝(参见 security.limit_extensions)”在从上游读取响应标头时,客户端:...,服务器:support.....com,请求:“GET /otrs/index.pl HTTP/1.1”,上游:“fastcgi://127.0.0.1:9000”,主机:“support.....com”,引用者:“http://support.....com/“
为什么我会收到此错误? otrs 目录对于 Web 服务器来说是可写的,所以这不是问题。 有什么想法吗?
答案1
我在 index.html 文件中也遇到了类似的问题,这就是我从 Google 上找到的答案。除了其他问题之外,从 spawn 切换到 php-fpm 导致我的大多数域出现“拒绝访问”错误。我的 error.log 中也出现了同样的“请参阅 security.limit_extensions”。受影响的 index.html 文件也没有任何 PHP 代码,但我认为 NginX 仍尝试通过 php-fpm 执行它们,因此抛出了错误。我使用的是 CentOS:
编辑
/etc/php-fpm.d/www.conf
取消注释此行,默认情况下.htm 和.html 被阻止:
security.limit_extensions = .php .php3 .php4 .php5 .html .htm
service php-fpm restart
答案2
OTRS 是用 Perl 编写的,因此您无法通过 PHP-FPM 运行它。这就是您收到此错误的原因。我建议阅读本文有关使用 nginx 运行 OTRS 的更多信息。
答案3
您可以尝试在您网站的 nginx conf 文件的 location / 中添加以下句子:index index.php index.html;