微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

perl – 用于CGI :: Application应用程序的nginx fastcgi配置

我试图让一个C :: A应用程序在Nginx fastcgi环境(debian 6.0)中运行并使用spawn-fcgi.

使用$self-> mode_param(path_info => 1,param =>’rm’)配置C :: A路由;

问题是,无论我要求的C :: A应用程序网址(example.com/cities,example.com/profile/99等),它总是显示example.com/index.pl所做的主页.

我的Nginx设置是

server {
    listen   80;
    server_name example.com;
    root /var/www/example.com/htdocs;
    index  index.pl index.html;

    location / {
        try_files $uri $uri/ /index.pl;
    }

    location ~ .*\.pl${
            include fastcgi_params;   # this is the stock fastcgi_params file supplied in debian 6.0
            fastcgi_index index.pl;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PERL5LIB "/var/www/example.com/lib";
            fastcgi_param CGIAPP_CONfig_FILE "/var/www/example.com/conf/my.conf";
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
    }

}

我已经以类似的方式成功设置了几个PHP应用程序.

但是,在这种情况下,我怀疑我没有将必要的fastcgi_param传递给C :: A,这是它所要求的.

你的想法是什么?

解决方法

我维护CGI :: Application并使用Nginx.我没有做同样的事情,但我会试试这个:

fastcgi_split_path_info ^(/index.pl)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

这应该捕获并转发您需要的PATH_INFO.

参考文献:

> Offical Nginx FastCGI docs
> Related blog post with example这不适用于CGI :: App,但我认为它足够接近有用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐