ExtMail服务器社区's Archiver

hzqbbc 发表于 2008-4-15 23:28

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

Hi all:

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

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

1) 确认webmail或后台版本

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

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

大概716行左右的redirect函数定义,需要增加一行内容(见红字)

[quote]
sub redirect {
    my $self = shift;
    my ($url, $mode) = @_;
    [color=Red][b]print "Status: 301 Moved Permanantly\n";[/b][/color]
    print "Location: $url\n\n";
}
[/quote]

类似的extman里libs/Ext/MgrApp.pm也需要这样的修改

3)配置nginx的nginx.conf

在server section里:加上

[quote]

        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/;
        }
[/quote]

编辑conf/fcgi.conf内容:
[quote]
#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;
[/quote]

重启动nginx,然后启动dispatch-init ,一切应该ok。请大家帮忙测试。下一版本的extmail及extman将不需要做2)的修改。其他配置暂时一致

[b][size=4]修订[/size][/b]

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

如果大家对nginx的fcgi配置有兴趣,也不妨参考coolerfeng的blog这个帖子:
[url]http://coolerfeng.blog.51cto.com/133059/97723[/url]

raykingecs 发表于 2008-4-15 23:41

关于nginx详见:
[url]http://nginx.net/[/url]

wnhot 发表于 2008-4-23 01:39

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

hzqbbc 发表于 2008-4-24 17:31

extman也需要修改MgrApp.pm里的redirect函数,还得在nginx里配置下

joies_zhong 发表于 2008-4-25 15:04

回复 #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";

joies_zhong 发表于 2008-4-25 16:04

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

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

joies_zhong 发表于 2008-4-25 16:06

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

谢谢您的回复!!!

hzqbbc 发表于 2008-4-25 22:11

6,7楼,重新看本贴的首帖,已经更新了配置方法,加了支持extman的配置。测试过都没问题啊。

joies_zhong 发表于 2008-4-29 09:27

[quote]原帖由 [i]hzqbbc[/i] 于 2008-4-25 22:11 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=42468&ptid=7488][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
6,7楼,重新看本贴的首帖,已经更新了配置方法,加了支持extman的配置。测试过都没问题啊。 [/quote]

难道真的是人品问题:lol ,我测试还是出现上面的情况,登录不进去。:) :)

hzqbbc 发表于 2008-4-30 17:27

呵呵,你实验下单独配置看看,可能你混了其他配置不行吧。反正1楼的配置我只是随便按照官方doc摸索出来的,实际测试过确实没问题,反复登陆退出都ok的

ryuhi 发表于 2008-6-11 02:16

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

tecer 发表于 2008-6-24 17:31

[quote]原帖由 [i]ryuhi[/i] 于 2008-6-11 02:16 发表 [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=45005&ptid=7488][img]http://www.extmail.org/forum/images/common/back.gif[/img][/url]
nginx到底是个什么东东啊,简单说两句介绍一下嘛,那个网站进不去。 [/quote]

apache lighttpd nginx 都是web软件

genko 发表于 2008-7-22 11:35

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

kenfor 发表于 2008-7-31 08:54

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.

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

hzqbbc 发表于 2008-7-31 20:14

14楼的配置没有完全按1楼的做啊~ 先改成完全一模一样看看

kenfor 发表于 2008-8-1 22:58

我改成一样的配置了

location /extmail/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include fcgi.conf;
                }
              location /extmail/ {
                alias  /var/www/extsuite/extmail/html/;
                }
              location /extman/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include fcgi.conf;
                }
              location /extman/ {
                alias /var/www/extsuite/extman/html/;
                }
我改成一样的配置了,还是出现一样的错误,用的extman是0.2.4版本的

IE 显示Can't locate object method "new" via package "Ext::Mgr::MySQL" at /var/www/extsuite/extman/libs/Ext/Mgr.pm line 38.  
[ Go Back ] >> Re-Login

hzqbbc 发表于 2008-8-2 08:55

建议用最新0.2.5b1测试看看。

yyjun2008 发表于 2008-12-22 22:37

nginx+extmail+postfix

用nginx+fastcgi 搭建extmail邮件服务,nginx.conf里面如何配置。

mry39 发表于 2009-9-11 22:46

现在用最新版的extmail配了,可是还是不行哟。以下我的配置:

server
  {
    listen       80;
    server_name  mail.woigx.cn;
    index index.html index.htm index.php index.cgi;
    root  /home/wwwroot/mail/extmail/html/;

       location /extmail/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include               fcgi.conf;
        }
        location /extmail/ {
             alias  /home/wwwroot/mail/extmail/html/;
        }
       location /extman/cgi/ {
                fastcgi_pass          127.0.0.1:8888;
                include               fcgi.conf;
        }
        location /extman/ {
                alias /home/wwwroot/mail/extman/html/;
        }
    log_format  extmail  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
    access_log  /var/log/nginx/extmail.log  extmail;
      }

mry39 发表于 2009-9-11 22:50

真不知道错在哪儿?BBC楼主,烦请将您配时nginx.conf的所有给贴出来,让我们套用看行不行。在此谢过了。过几天服务器就要拿到电信了。我想用nginx+extmail呀。

hzqbbc 发表于 2009-9-11 23:48

楼上兄弟,我已回帖,见:
[url]http://www.extmail.org/forum/thread-11634-1-1.html[/url]

你配置好后记得启动dispatch.fcgi(调用dispatch-init)

seoyouhua 发表于 2011-2-9 21:34

[b] [url=http://www.extmail.org/forum/redirect.php?goto=findpost&pid=41742&ptid=7488]1#[/url] [i]hzqbbc[/i] [/b]


大哥看了你写的文章很经典,但是我是LINUX初学者,但是迫于无奈不的不硬着头皮边学边做。

公司架设了一台LNMP服务器,为了资源充分利用所以要在上面在做一个EXTMAIL服务器,所以想请大哥给我指点下具体部分,论坛里的那写帖子对我来说都太高级了,请哥哥把QQ给我下,帮我指点下,下地万分感激 我QQ469069678

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.