zoukankan      html  css  js  c++  java
  • 把bugzilla 2.18rc2服务器迁移了

    由于公司扩大,机器不够用了,原来的bugzilla服务器腾出来供新同事开发,于是只好把bugzilla迁移到项目的服务器上。迁移中间遇到了一些不大不小的问题折腾了半天,都记在这里。

    1 原来的服务器是windows2000server,默认带了IIS,新服务器是windows2003enterprise。在装IIS的时候与2000下面有一点小小的不同:

      在2000下面是在“控制面板--添加或删除程序--添加/删除windows组件”里面直接在IIS的选择框中打钩,在2003下IIS组件的位置转为“控制面板--添加或删除程序--添加/删除windows组件--应用程序服务器--详细信息”。放安装盘,打上钩,顺利过关。如果没有可用的smtp服务器的话还可用同时安装smtp服务。

    2 安装mysql。一开始是在2003下面安装4.1.7正式版,结果有时是服务发起失败,有时是应用安全策略失败,装成功后perl checksetup.pl也一直连不上数据库,这一步浪费的时间最多,回想起来可能因为安装了服务器实例造成的吧,这个版本的mysql运行在一太计算机上安装多个mysql服务的实例,那么连接数据库的时候应该是要指定服务器地址和实例名的,没有心情再回头去尝试了。最后卸载了4.1,并从注册表中清理掉所有的mysql项目后重新安装了4.0.22版才配置成功(4.0没有提示安装实例,大概不支持吧?)。装好后配了bugs用户名和密码已经bugs数据库。

    3 安装activeperl。没有去网上找最新版,因为之前用5.8版一直很稳定,多一事不如少一事。

    4 把原来的bugzilla目录拷贝到新服务器下。因为原来自己做了一些汉化和本地化的工作,所以没有重新去解下载包而是拷贝原来旧的发布目录。

    5 perl checksetup.pl,安装各种ppm。从前折腾的最厉害的一步,现在已经简单多了。根据运行后的提示去找到 http://landfill.bugzilla.org/ppm,把所有的ppd文件都下载到本地,再把x86目录下面的gz包全部下载到本地的x86目录下(保持ppd和gz文件的相对位置不变就对了),然后逐个 ppm install ***.ppd。不过当时GDGraph.ppd下载后没有安装成功,是用了 ppm install http://landfill.bugzilla.org/ppm/GDGraph.ppd 才安上的。

      下载到本地在安装主要是快,用flashget或者netants来下和用ppm来慢慢下的速度当然是天上地下了。如果下到候光敏搜集的perlmodules包也可以用,但是其中的DBI版本太旧了还是要去下新的,GD等图表用到的包如果要用也要自己下。

    6 配localconfig和checksetup.pl,老红宝书上说的$mysql_binaries = "D://mysql//bin//mysql"; 和

    $mysqlpath = "D://mysql//bin" 项已经过时很久了,新DBI自己能连到mysql,不用去调mysql命令。所以其实只要配localconfig中的数据库地址、用户名和密码就行了。我用了localhost/bugs/bugs。然后改了

    $index_html = 1。$webservergroup好像忘了改,可是也跑的挺欢,可能有默认值吧?配成功后perl

    checksetup.pl会自动创建表。等它创建完了我把mysql服务停掉,把data目录下的bugs目录删调,拷贝原

    来的mysql上的data目录下的bugs目录过来,再开mysql服务,于是新服务就用上了老数据了。

    7 修改perl文件这一步在老服务器上做了,只是确认了一下直接拷贝过来的cgi文件都是改好了的。

    8 配置IIS,参见红宝书。配完后发现无法访问bugzilla虚拟目录。进一步研究发现其实bugzilla目录下

    的两个图片都可以发布,js文件也能下载,因此问题出在perl命令没有被执行。重新检查IIS后发现

    windows2003下的IIS有个“服务器扩展”项目,默认所有的CGI功能包括perl和asp都是禁止的。启用了与

    perl相关的两项后bugzilla正常运行。

    9 配置邮件。其实http://www.bugzilla.org/docs/2.18/html/os-specific.html上说的很清楚了


    open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
      die "Can't open sendmail";

    print SENDMAIL trim($msg) . "/n";
    close SENDMAIL;
           
    改成

    use Net::SMTP;
    my $smtp_server = 'smtp.mycompany.com';  # change this

    # Use die on error, so that the mail will be in the 'unsent mails' and
    # can be sent from the sanity check page.
    my $smtp = Net::SMTP->new($smtp_server) ||
      die 'Cannot connect to server /'$smtp_server/'';

    $smtp->mail('bugzilla-daemon@mycompany.com');  # change this
    $smtp->to($person);
    $smtp->data();
    $smtp->datasend($msg);
    $smtp->dataend();
    $smtp->quit;
           
    我是配置了自己公司的smtp服务器。


     

  • 相关阅读:
    Asp.net MVC FluentHTML and Fluent Interface
    Linux上安装Sybase
    Oracle PL/SQL开发利器Toad应用总结(一)PL/SQL Program基本编写、调试
    ELMAH——可插拔错误日志工具
    用SQLMonitor监视SQL*Net
    如何得到自增id值
    SQL Server ID自增列重新从1开始算起
    加载TreeView并设置复选框
    编程设置最小化、最大化、关闭按钮 相关讨论
    在 VB.NET 编程中使用数组
  • 原文地址:https://www.cnblogs.com/stonehuang/p/6603250.html
Copyright © 2011-2022 走看看