为什么运行Apache + FastCGI的催化剂应用程序不提供动态内容?

时间:2013-02-13 13:23:18

标签: perl apache2 catalyst

我正在尝试使用Apache和fastcgi运行我的第一个Perl Catalyst应用程序。

启动服务器很好,我可以看到应用程序的主页面。所有图像/ javascripts都正确加载(因此,我假设静态内容正确提供)。

由于原因,我不明白动态内容给了我404:例如当我试图访问www.webapp.org/search时,我得到“在此服务器上找不到请求的URL /搜索。”

好的,这是我为静态内容和

设置别名的方法
Alias /static /webapp/root/static/
Alias / /webapp/script/webapp_fastcgi.pl

我用

设置了文档
DocumentRoot /webapp/

此外,我有一个

 <Location />
     Options +ExecCGI 
     Order allow,deny
     Allow from all
     AddHandler fcgid-script .pl
 </Location>

和指令

<Files /webapp/script/webapp_fastcgi.pl> 
    PassEnv PERL5LIB 
    SetHandler fastcgi-script
</Files>

配置文件中没有其他内容。

如何添加指令以允许投放动态内容(www.webapp.com/search)?

提前多多感谢!

1 个答案:

答案 0 :(得分:2)

我在AddHandler部分看到一个空格。请检查您的配置文件是否有拼写错误。

AddHandler fcgid-script .pl

如果您还没有这样做,请阅读此内容:

http://wiki.catalystframework.org/wiki/deployment/apache_fastcgi

对于开发工作,您可以使用催化剂而不会出现麻烦:http://search.cpan.org/~mramberg/Catalyst-Runtime-5.80012/lib/Catalyst/Engine/FastCGI.pm#Standalone_FastCGI_Server

假设apxs将mod_fastcgi.so安装到/ usr / local / apache / libexec中,请将以下内容添加到Apache .conf文件中:

LoadModule fastcgi_module libexec/mod_fastcgi.so
<IfModule mod_fastcgi.c>
  FastCgiExternalServer /tmp/myapp.fcgi -host myhost:8081
  Alias /myapp/    /tmp/myapp.fcgi/
</IfModule>