开发者社区> cloud_ruiy> 正文

Aix_bugzilla

简介: 原创作品,转载请注明出处! Bugzilla在AIX上部署,网上看到的不多。我耗费了很长时间才算部署完,记录在这里,以防忘记了。 一、    下载安装文件或源代码 1、 下载Bugzilla 3.6.3 地址:http://www.bugzilla.org/download/ 2、 下载perl源代码 因为AIX上自带的perl程序不是用gcc编译的,在后面安装必需的perl modules的时候会出错,提示找不到cc_r编译器。
+关注继续查看

原创作品,转载请注明出处!

Bugzilla在AIX上部署,网上看到的不多。我耗费了很长时间才算部署完,记录在这里,以防忘记了。

一、    下载安装文件或源代码

1、 下载Bugzilla 3.6.3

地址:http://www.bugzilla.org/download/

2、 下载perl源代码

因为AIX上自带的perl程序不是用gcc编译的,在后面安装必需的perl modules的时候会出错,提示找不到cc_r编译器。因此需要使用gcc重新编译perl。下载地址:hhttp://www.cpan.org/src/README.html 我下载的是 perl-5.8.9.tar.gz

3、 下载gcc

地址:http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html

注意需要下载五个文件gcc-4.2.0-3.aix6.1.ppc.rpm、gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm、libgcc-4.2.0-3.aix6.1.ppc.rpm、libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm、libstdcplusplus-devel-4.2.0-3.aix6.1.ppc.rpm。对perl的编译过程中,如果缺少文件在make test的时候会出错。

4、 下载mysql

地址:http://www.mysql.com/downloads/mysql/#downloads

我下载的是:mysql-5.1.53-aix5.3-powerpc-64bit.tar.gz 没有找到for AIX6.1的。

 

下载完成后,将下载的文件传到服务器上,放在某个目录下。解压。比如解压mysql:进入mysql安装文件所在目录,然后执行如下命令:

gunzip  mysql-5.1.53-aix5.3-powerpc-64bit.tar.gz

tar xvf mysql-5.1.53-aix5.3-powerpc-64bit.tar

依次解压其他的文件。

二、    安装mysql

进入解压后的mysql安装目录,比如是

/tmp/ mysql-5.1.53-aix5.3-powerpc-64bit  下面有一个文件时INSTALL-BINARY,打开后里面有安装步骤,可以参考这些步骤进行操作。我的操作步骤如下:

Ø  创建group mysql 过程省略。(smitty group)

Ø  创建user mysql ,用户mysql的primary group是mysql (smitty group)

Ø  cd /tmp/ mysql-5.1.53-aix5.3-powerpc-64bit

Ø  scripts/mysql_install_db  --user=mysql(我执行过程中没有出错,也许还需要执行chown R mysql .chgrp R mysql .

Ø  su mysql

Ø  mysql安装目录下的bin添加到mysql用户环境变量的PATH下。也就是在/home/mysql/.profle的PATH=xxx下添加:PATH=mysql安装目录/bin:$PATH; export PATH 然后重新登录。

Ø  然后尝试能否登录mysql mysql u root 如果出现mysql>提示符表示安装成功。

Ø  Bugzilla创建用户和库

Create database bugs;

Grant all privileges on bugs.* to bugs@localhostidentified by 123456; 也就是Bugzilla将来要连接的数据库是bugs,用户名是bugs,密码是123456

关于mysql的操作,我也不熟悉。大家自己去下载相关手册。服务器重启之后mysql没有启动,执行“mysql u root会报/tmp/mysql.sock找不到。可以执行一下mysqld,然后再试试。

三、    安装gcc,重新编译perl

这是最艰难的一步。部署Bugzilla需要很多modules,下载了modules然后进行编译,报错:

/bin/sh: cc_r:  not found

make: 1254-004 The error code from the last command is 127。网上关于这个错误的解决很少,有一个网站好像提供了解决方案,但是要访问还要收费。其他的一般说是重新安装perl。

Ø  安装gcc-4.2.0-3.aix6.1.ppc.rpm

命令:rpm ivh gcc-4.2.0-3.aix6.1.ppc.rpm

Ø  然后安装其他四个文件:gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm、libgcc-4.2.0-3.aix6.1.ppc.rpm、libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm、libstdcplusplus-devel-4.2.0-3.aix6.1.ppc.rpm。命令相同,都是rpm ivh xxxx. 它们之间是有依赖关系的,先装哪个后装哪个,我已经搞不清了,试试就能试出来,根据报错提示自己尝试吧。

Ø  编译perl

解压后的perl源文件目录中有README.aix,里面有如何编译。我用的AIX是64bit的(查看操作系统是否是64bit /usr/bin/getconf HARDWARE_BITMODE),所以我的编译命令是:

    rm -rf config.sh

    ./Configure \

    -d \

    -Dcc='gcc -maix64' \

    -Duseshrplib \

    -Duse64bitall \

    -Dprefix=/usr/opt/perl5_64

其中-Dprefix是安装目录,即将来perl程序就在这个位置。

Ø  安装perl 接下来执行:

make

make test

make install

如果不出现错误,perl就安装完成了。

Ø  ln -sf / usr/opt/perl5_64/perl /usr/bin/perl

Ø  执行perl V查看是否已经成功安装。

四、    安装Apache http server

我使用的是WebSphere application server安装介质中的his,所以没有从网上找apache http server。此过程省略。

五、    部署Bugzilla

  Bugzilla拷贝到Apache Http Server安装目录下,我的Http Server目录是/var/IBM/ihs。Bugzilla的目录是/var/IBM/ihs/bug3。

Ø  修改/var/IBM/ihs/conf/httpd.conf,修改内如如下:

l  去掉#AddHandler cgi-script .cgi的注释

l  Listen 9070 #修改默认的端口号。可以不改

l  User apache #修改原来的值

Group apache

l  ServerName localhost:9070 #修改原来的值

l  DocumentRoot "/var/IBM/ihs/bug3" #修改原来的值

l  Options Indexes FollowSymLinks ExecCGI #修改原来的值

l  DirectoryIndex index.html index.html.var index.cgi #修改原来的值

l  <Directory "/var/IBM/ihs/bug3"> #在文件最后添加

 Options ExecCGI  FollowSymLinks

        AllowOverride Limit

        DirectoryIndex index.cgi index.html

        AddHandler cgi-script .cgi

        Order allow,deny

        Allow from all

</Directory>

Ø  创建组apache和用户apache

Ø  cd /var/IBM/ihs/bug3 执行perl checksetup.pl 根据该命令的执行结果可以看到有很多modules缺少,需要安装。如何安装,请看下一步。

Ø  所有必需的modules安装完成后,执行perl checksetup.pl,在/var/IBM/ihs/bug3下会生成一个localconfig文件。

Ø  修改localconfig文件。修改如下内容:

$webservergroup = 'apache';

$db_driver = 'mysql';

$db_host = 'localhost'; #这个地方可能可以改成主机名,我没有试,用localhost成功了就懒得管了。

$db_name = 'bugs';

$db_user = 'bugs';

$db_pass = '123456';

$db_port = 3306;  #mysql默认端口

$db_check = 1;

$index_html = 1;

Ø  再次执行perl checksetup.pl,如果能连上数据库,checksetup会创建表和约束等等。尤其是checksetup.pl会修改bug3里文件的属主。

Ø  执行用浏览器访问http://服务器IP:端口/应该能看到Bugzilla的登录页面。如果出现“you don’t have permission to access …”这可能是bug3里文件的属性不对造成的,可以对其进行修改:

chown –R apache:apache bug3  然后再试。

Ø  看到页面后测试一下。有时候点击主页面下方的Bugs,会出现

undef error – Cannot determine local time zone

解决这个错误,可以查看http://www.djx1981.com/archives/245.html 这个帖子。修改 Bugzilla/Util.pm

use Date::Parse;

use Date::Format;

BEGIN { $ENV{TZ} = Asia/Shanghai’; } # 增加这一行

use DateTime;

use DateTime::TimeZone;

use Text::Wrap;

六、    安装modules

这是比较难的一步。

perl checksetup.pl命令执行中,如果必需的modules没有,会提示用perl install-module.pl --all安装。如果能给AIX服务器配上proxy,让程序自己去寻找所需要的modules,那会省去很多麻烦。不过我没这么幸运。我的设置没有成功。我设置的步骤如下:

#perl –MCPAN –e shell

cpan[1]> o conf ftp_proxy=myproxy:port

cpan[2]> o conf commit

cpan[3]> o conf http_proxy=myproxy:port

cpan[4]> o conf commit

然后执行perl install-module.pl --all 无效。谁知道为什么代理服务器配不上,请不吝告知,十分感谢。

因为我没有能给我的服务器配上代理服务器,所以我只好根据checksetup.pl的提示去下载所有需要的modules,然后手动安装。

下载网站: http://www.cpan.org/modules/

Ø  点击all modules (a long list),根据需要搜索需要的模块,然后下载,上传到服务器,解压,然后执行:

perl Makefile.PL

make

make test

make install

有的能直接安装成功,有的则提示缺少其他的模块,那么没办法,只能根据提示再去网站下载需要的模块,安装完后再安装这个模块。

Ø  有的模块可能过于陈旧了,在上面的链接里找不到,那就在http://www.cpan.org/modules/页面点击name链接,根据名字去找。

Ø  上面两步还没找到所需要的模块的话,那点击# CPAN Search,输入名字去查找。其中Return-Value-1.666001.tar.gz就是在这里找到的。

Ø  有的模块下载下来,里面没有Makefile.PL文件,只有Build,那就用如下的命令:

perl Build

./Build test

./Build install

不过,在进行Build test之前需要安装两个模块:ExtUtils-MakeMaker-6.56.tar.gz和ExtUtils-CBuilder-0.2703.tar.gz。下载下来安装上就可以了。

Ø  DateTime模块,Bugzilla需要DateTime-0.28,在网站上没有找到这么低的版本,安装了DateTime-0.66.tar.gz后成功了。当然还有 DateTime-TimeZone模块。

往往是一个模块的安装需要安装好几个其他的模块,比较费时间,而且安装过程中并不知道这样是否一定能成功。

七、    配置SMTP

AIX本身是带sendmail的,但是我没有配置成功。在网上找sendmail最新版本也没有找到符合AIX6.1的。下载了一个qmail,倒腾了两天,一无所获,对邮件服务器软件所知甚少。

http://hi.baidu.com/aigo1213/blog/item/87a0dff0c2319519b17ec574.htmlhttp://www.7747.net/kf/201009/73848.html两个帖子帮忙很大。不过第一个帖子里修改的Bugzilla 2.22.2,在Bugzilla 3.6.3里MessageToMTA方法已经不再BugMail.pm中了。后来我在Bugzilla/Mailer.pm中找到了这个方法。根据第一个帖子做了修改,不过发送不能成功。后来发现,是$msg中如果有To:xxx From:xxx Subject:xx就发送不成功,后来就把$smtp->datasend($msg) 改成了$smtp->datasend($body),并在这一句之前加了$smtp->datasend($subject),以便于让收件人看到标题。$subject是在前面获取的:my $subject = trim($headers->get('subject'));。 将原来的MessageToMTA方法改名,修改后的方法内容如下:

sub MessageToMTA {

     my ($msg, $send_now) = (@_);

     my $method = Bugzilla->params->{'mail_delivery_method'};

    return if $method eq 'None';   

     my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);    

     my $headers;

     my $utf8t=Bugzilla->params->{'utf8'};

     if ($utf8t and (!is_7bit_clean($header) or !is_7bit_clean($body))) {

         ($headers, $body) = encode_message($msg);

     } else {

         my @header_lines = split(/\n/, $header);

         $headers = new Mail::Header \@header_lines, Modify => 0;

        # print $headers; exit;

     }

 

     # Use trim to remove any whitespace (incl. newlines)

     my $rcpt_to = trim($headers->get('to'));

     my $subject = trim($headers->get('subject'));

     my $from = trim($headers->get('From'));

    

     use Net::SMTP;

     my $smtp_server = 'xxx.xxx.xxx';

     my $smtp_user = 'xxx@xxx.xxxx';

     my $smtp_pass =’xxxx’;

     my $encode_smtpuser =trim(encode_base64($smtp_user));

     my $encode_smtppass =trim(encode_base64($smtp_pass));

     my $smtp = Net::SMTP->new($smtp_server,Timeout => 60) ||

     die 'Cannot connect to smtp server';

 

     my $result = $smtp->command('AUTH','LOGIN');

     my $answer = $smtp->getline();

     # 334 VXNlcm5hbWU6

 

     $result = $smtp->command($encode_smtpuser);

     $answer = $smtp->getline();

     # 334 UGFzc3dvcmQ6

    

     $result = $smtp->command($encode_smtppass);

     $answer = $smtp->getline();

     # 235 Authentication successful

     # or 535 Authentication failed

     if ($answer =~ /535/i)

     {print "Sorry,Authentication failed!n";exit;}

 

     $smtp->mail($smtp_user);

     $smtp->to($rcpt_to);

     $smtp->data();

     $smtp->datasend("Subject: $subject \n");

     $smtp->datasend($body);

    # $smtp->datasend($msg);

     #print "test"; exit;

     $smtp->dataend();

     $smtp->quit;

}

修改完成后,在Bugzilla中不需要再配置sendmail或者smtp了,如果需要修改发送邮件的用户名和密码,需要直接修改这个文件了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27720 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
15287 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
19979 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14852 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22213 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23523 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
36334 0
+关注
cloud_ruiy
爱技术,爱开源,爱linux! 在技术成长道路上,能拉一把就拉一把,不藏着不掖着! 我由衷希望能和有理想敢吃苦的it人一起共同进步,共同成长! 虽然我现在没有大牛的能力,但是我有大牛的心态. 技术领域:shell编程,C编程,嵌入式开发.hadoop大数据,桉树,onenebul
1715
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载