17 12
发新话题
打印

发布Extmail 1.0.4/Extman 0.2.4 或以前版本支持Nginx+FCGI配置说明

本主题由 raykingecs 于 2008-4-15 23:29 加入精华

发布Extmail 1.0.4/Extman 0.2.4 或以前版本支持Nginx+FCGI配置说明

Hi all:

  应几位论坛朋友的强烈要求,我们研究出了extmail/extman+nginx+fcgi的正确配置,在这里和大家分享:

注意:4月25日晚更新了1下配置方法,增加了extman支持,测试过完全没问题!

1) 确认webmail或后台版本

extmail 1.0.4 或以前版本,extman 0.2.4 或以前版本 均适用于本文的内容。

2)修改extmail/libs/Ext/App.pm

大概716行左右的redirect函数定义,需要增加一行内容(见红字)
引用:
sub redirect {
    my $self = shift;
    my ($url, $mode) = @_;
    print "Status: 301 Moved Permanantly\n";
    print "Location: $url\n\n";
}
类似的extman里libs/Ext/MgrApp.pm也需要这样的修改

3)配置nginx的nginx.conf

在server section里:加上
引用:
        location /extmail/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include conf/fcgi.conf;
        }
        location /extmail/ {
             alias  /var/www/extsuite/extmail/html/;
        }
       location /extman/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include conf/fcgi.conf;
        }
        location /extman/ {
                alias /var/www/extsuite/extman/html/;
        }
编辑conf/fcgi.conf内容:
引用:
#fastcgi.conf
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
重启动nginx,然后启动dispatch-init ,一切应该ok。请大家帮忙测试。下一版本的extmail及extman将不需要做2)的修改。其他配置暂时一致

修订

最近接到1,2个用户反映,本文的配置方法在某些情况下出问题,已经有朋友提供了解决办法,请参考:
http://www.extmail.org/forum/viewthread.php?tid=8699

如果大家对nginx的fcgi配置有兴趣,也不妨参考coolerfeng的blog这个帖子:
http://coolerfeng.blog.51cto.com/133059/97723
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

关于nginx详见:
http://nginx.net/
这是最好的年代,这是最坏的年代

TOP

extman怎么办呢,照上面配好后,登录不了后台

TOP

extman也需要修改MgrApp.pm里的redirect函数,还得在nginx里配置下
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

回复 #4 hzqbbc 的帖子

我在extman中配好了,但是登录不了,我在apache中是可以的,nginx.conf中extman的配置如下:
location  /extman/cgi  {
               fastcgi_pass          127.0.0.1:8888;
               include         fcgi.conf;
         }

location  /extman/  {
               alias  /opt/mail/htdocs/extman/html/;
        }

也在MrgApp.pm中改了 print "Status: 301 Moved Permanantly\n";

TOP

怎么发了两次呢,晕了,好像网络有些慢。
麻烦版主看到这个回复后删掉,谢谢!!

[ 本帖最后由 joies_zhong 于 2008-4-25 16:10 编辑 ]

TOP

还有一个问题就是我从日志中看,不知为何总是去读 /usr/html 这个目录并在/usr/目录下生成一个on的文件,此文件为空
还有一个问题,就是我用http:/www.domain.com/extmail/cgi/index.cgi 登录后,再将index.cgi后面的部分删掉后回车,显示“进入webmail邮箱”与“退出”这两个按钮,但是这两个按钮都不起作用。看了一下日志,好像也路经的不对,不管怎么改好像都不太行。不知HZQBBC有没有测试过。

谢谢您的回复!!!

TOP

6,7楼,重新看本贴的首帖,已经更新了配置方法,加了支持extman的配置。测试过都没问题啊。
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

引用:
原帖由 hzqbbc 于 2008-4-25 22:11 发表
6,7楼,重新看本贴的首帖,已经更新了配置方法,加了支持extman的配置。测试过都没问题啊。
难道真的是人品问题 ,我测试还是出现上面的情况,登录不进去。

TOP

呵呵,你实验下单独配置看看,可能你混了其他配置不行吧。反正1楼的配置我只是随便按照官方doc摸索出来的,实际测试过确实没问题,反复登陆退出都ok的
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

nginx到底是个什么东东啊,简单说两句介绍一下嘛,那个网站进不去。

TOP

引用:
原帖由 ryuhi 于 2008-6-11 02:16 发表
nginx到底是个什么东东啊,简单说两句介绍一下嘛,那个网站进不去。
apache lighttpd nginx 都是web软件

TOP

发现天气信息输入城市后就打不开extmail了!提示”连接被重置“。要删除cookie才能再打开!

TOP

extmail可以运行,可是extman一直都有问题。

我配置文件是这样:

server
      {
              listen       80;
              server_name  mail.test.com;
              index index.html index.htm index.php index.cgi;
              root /var/www/extsuite/extmail/html/;
              location /gmail/cgi/ {
                fastcgi_pass         127.0.0.1:8888;
                include conf/fcgi.conf;
              }

              location /extmail/{
                alias  /var/www/extsuite/extmail/html/;
              }

             location /extman/cgi/ {
              alias  /var/www/extsuite/extman/cgi/;
              fastcgi_pass         127.0.0.1:8888;
              include conf/fcgi.conf;
            }

           location /extman/{
               alias  /var/www/extsuite/extman/html/;
               fastcgi_pass         127.0.0.1:8888;
            }

出现的错误是打开的时候显示:
Can't locate object method "new" via package "Ext::MgrApp:: Login" at (eval 338) line 21.

多刷新几次后出现页面显示正常,尝试登陆,还是出现:
Can't locate object method "new" via package "Ext::MgrApp:: Login" at (eval 338) line 21.

不知道我提供的资料够不够全,如果有人知道的,可否指教我一下。多谢了。

TOP

 17 12
发新话题