Linux系统下Bugzilla的安装与配置详解

2010-10-27  成国栋 

Linux系统下Bugzilla的安装与配置

提示:本文档是以Red Hat Enterprise Linux 5 为例,配置过程细节方面的东西很多,无法一一赘述,请根据实际情况酌情处理。

详细软件版本:

Bugzilla 3.1.3

Bugzilla汉化包3.1.2(找汉化包时最好找同版本或相近版本的,如果版本跨度太大可能会出现问题)

其他用系统自带的即可

一、配置网卡、安装必须组件 2

二、安装Apache 2

三、配置Apache 2

四、安装MySQL 3

五、配置MySQL 4

六、安装Sendmail 4

七、配置Sendmail 4

八、安装、配置Bugzilla 4

九、其他修改及配置 5

附件:Linux下一步步安装Bugzilla(英文) 5

完成时间:2010-10-26

整理:cgdon@163.com

一、配置网卡、安装必须组件

1. 判断网卡是否启动。在命令行输入:ifconfig

启动网络配置向导。在命令行输入:setup 配置网卡和DNS

2. 修改主机名(可选)

1)进入/etc/sysconfig目录,执行: cd /etc/sysconfig

2)打开network文件,执行: vi network

3)修改“HOSTNAME=”“=”后输入新的Linux主机的名字,注意避免与网络上的其他计算机重名,建议使用“PC-XXX”作为计算机名。

重新启动网络配置。执行:service network restart或 /etc/rc.d/init.d/network restart

3. 启动防火墙,禁用SELinux,在定制中放行网卡、WWW (HTTP)和邮件 (SMTP)

4. 安装必须的组件 

yum install gcc-4.1.2-44.el5.i386.rpm

yum install gd-2.0.33-9.4.el5_1.1.i386.rpm

yum install gd-devel-2.0.33-9.4.el5_1.1.i386.rpm

yum install ImageMagick-6.2.8.0-4.el5_1.1

yum install ImageMagick-c++-devel-6.2.8.0-4.el5_1.1

yum install ImageMagick-devel-6.2.8.0-4.el5_1.1

yum install ImageMagick-c++-6.2.8.0-4.el5_1.1

yum install ImageMagick-perl-6.2.8.0-4.el5_1.1

yum install expat-1.95.8-8.2.1.i386.rpm        

yum install expat-devel-1.95.8-8.2.1.i386.rpm

安装Apache

1. 检查是否安装了httpd服务

rpm -qa httpd  如果没有出现任何信息,表示没有安装

2. 安装httpd服务

(1)(如果你的yum库是ftp模式,此步骤就不需要了)

/mnt目录下创建cdrom目录

挂载光驱mount -t iso9660 /dev/cdrom /mnt/cdrom

(2)yum install httpd-2.2.3-22.el5.i386.rpm 安装过程中会提示依赖的包,输入y同意即可,下同

配置Apache

1. 修改配置文件

apache 的配置文件为/etc/httpd/conf/httpd.conf

进入/etc/httpd/conf 目录,编辑httpd.conf 文件,命令:

vi httpd.conf

在命令状态下,输入:

/ServerName

查找 ServerName 字符串,找到如下串:

ServerName www.example.com:80

在该行的下一行添加一行:

ServerName 192.168.1.210 : 80

【说明】192.168.1.210 linux 虚拟机的IP 地址。

2. 在命令状态,输入:

/DocumentRoot

找到DocumentRoot "/var/www/html"注释掉这一行,即最前面加上#

在下一行添加 DocumentRoot "/usr/local"

【说明】指定Apache 服务器存放网页的根目录引号中的内容为Bugzilla 的安装路径

3. 找到  DirectoryIndex

在这一行加上:index.cgi

把它放在第一位,即:

DirectoryIndex index.cgi index.html index.html.var

【说明】因为Bugzilla 的首页为index.cgi,当我们访问Bugzilla 服务器时,就会返回这个主页。

4. 找到 #AddHandler cgi-script .cgi

去掉前面的 #

【说明】把cgi 文件当作程序运行,而不是当作文本文件显示

5. 在命令状态,输入  /Directory

找到如下内容:

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

每行前面添加#,把这四行内容注释掉,否则会禁止访问Bugzilla 的页面。

保存并退出

6. 重新启动httpd

service httpd restart

如果出现如下提示信息:

Stopping httpd: [ OK ]

Starting httpd: [ OK ]

则表明启动成功。

安装MySQL

1. mysql 依赖于三个安装包,分别安装:

yum install mysql-5.0.45-7.el5.i386.rpm

yum install mysql-server-5.0.45-7.el5.i386.rpm

yum install mysql-devel-5.0.45-7.el5.i386.rpm

2. 启动mysql

service mysqld start 或 /etc/rc.d/init.d/mysql start

配置MySQL

1. 连接到mysql,这时密码是空的,输入mysql回车可直接进入

命令行输入:mysql

出现”mysql>”

输入: set password for root@localhost=password("123456");

【说明】绿色部分是你要为root用户设置的密码

2. 退出mysql,用新密码重新登录测试mysql是否可用

输入:exit;注销root的登录

输入:mysql –u root –p  回车

这时要求输入密码:键入123456并回车登录成功

3. 创建bugs数据库

create database bugs;

4. 创建bugs用户d,赋予所有权限

格式为:grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

grant all privileges on bugs.* to bugs@localhost identified by '123456';

(上句的*表示bugs数据库的所有表)

5. 把数据写入到数据库

flush privileges;

6. 退出数据库

安装Sendmail

1. 必须先搭建DNS,此步骤省略(这部分网上有很多教程,这里就不多说了,大家自己弄吧)

2. 安装semdmail,此步骤省略

配置Sendmail

此步骤省略

安装、配置Bugzilla

1. bugzilla-3.1.3解压至/usr/local/并改名为bugzilla,local目录下输入:

mv bugzilla-3.1.3 bugzilla

2. 在自己的Bugzilla 安装路径下(如本例为/usr/local/bugzilla 目录),找到

文件 localconfig,编辑:

vi localconfig

找到:$index_html=0

改为:$index_html=1

这样会生成一个index.html 文件,该文件指向index.cgi

3.将对应的用户改为root

   密码是前面设置的123456

   保存退出

3. 进入bugzilla目录

执行检查,输入:./checksetup.pl

输入:/usr/bin/perl install-module.pl --all 一次安装所有的模块(若此过程中出现异常,可能是gccgdgd-devel等必须的包没有安装成功,也有可能是网络状况不好)

4. 待所有模块安装完成后,再次运行  ./checksetup.pl

这时bugzilla目录下会出现localconfig文件,输入命令:vi localconfig

这里需要填上前面设置好的mysql数据库用户名和密码,即用户:bugs 密码:123456

5. 再次运行  ./checksetup.pl

这时程序会自动在bugs数据库中创建很多表,完成后按提示输入管理员邮箱和密码即可。

6. 将汉化包复制到bugzilla/template

解压unzip bugzilla-3.1.2-cn.zip

把解压出来的cn目录复制到bugzilla/template

其他修改及配置

1. 启动apache

service httpd start 或 /etc/rc.d/init.d/httpd restart

2. bugzilla目录赋予权限

chomd –R 777 bugzilla

注意:一定要有参数–R,对bugzilla所在的根路径及其下面的子路径设置权限。

注意:一定要有参数–R,对bugzilla所在的根路径及其下面的子路径设置权限

3. 启动mysql(可能前面已经启动了,此步骤就不需要了)

service mysqld restart

4. 现在就可以启动浏览器了,在客户机输入这个服务器的IP地址即可,如果出现问题,

一般根据提示就可大致判断,实在解决不了就和其他同学讨论或百度一下,要相信你遇到的问题别人一定也遇到过。

附件:Linux下一步步安装Bugzilla(英文)

(提示:很多安装模块中的问题都可以在这里找到答案)

Step-by-Step Bugzilla Installation Guide for Linux

Bugzilla is the best open source bug tracking system. Very simple to use with lot of features. Bugzilla allows you to track the bugs and collaborate with developers and other teams in your organization effectively.

This is a detailed step-by-step bugzilla installation guide for Linux.

1. Verify Perl Version

Make sure your perl version is >= 5.8.1 as shown below.

# perl -v

This is perl, v5.8.8 built for i386-linux-thread-multi

Most Linux distributions comes with perl. If you don’t have it on yours, download and install it from corresponding distribution website.

2. Install MySQL Database

Make sure your MySQL version is >= 4.1.2 as shown below.

# mysql -V

mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1

If you don’t have mysql, install it as using yum groupinstall, or based on LAMP installarticle, or based on mysql rpmarticle.

3. Install Apache

If you already have apache installed, make sure you are able to access it by using http://{your-ip-address}.

If you don’t have apache, install is using yum based on LAMP install article, or install apache from source.

4. Download latest Bugzilla tar ball

Download the latest stable release frombugzilla download page. Extract the bugzilla*.tar.gz file to the apache document root directory as shown below.

# cd ~

# wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.6.tar.gz

# cd /var/www/html

# tar xvfz /usr/save/bugzilla-3.4.6.tar.gz

5. Execute the bugzilla checksetup.pl

Bugzilla checksetup.pl program will verify whether all the required perl modules are installed. This will also display a list of all missing bugzilla modules that needs to be installed.

You can run the checksetup.pl program as many times as you like until you’ve verified all the required perl modules are installed.

Following is the output of 1st run of checksetup.pl, where is has listed all the missing optional and required modules.

# cd /var/www/html/bugzilla-3.4.6

# ./checksetup.pl --check-modules

COMMANDS TO INSTALL OPTIONAL MODULES:

GD: /usr/bin/perl install-module.pl GD

Chart: /usr/bin/perl install-module.pl Chart::Base

Template-GD: /usr/bin/perl install-module.pl Template::Plugin::GD::Image

GDTextUtil: /usr/bin/perl install-module.pl GD::Text

GDGraph: /usr/bin/perl install-module.pl GD::Graph

XML-Twig: /usr/bin/perl install-module.pl XML::Twig

MIME-tools: /usr/bin/perl install-module.pl MIME::Parser

libwww-perl: /usr/bin/perl install-module.pl LWP::UserAgent

PatchReader: /usr/bin/perl install-module.pl PatchReader

PerlMagick: /usr/bin/perl install-module.pl Image::Magick

perl-ldap: /usr/bin/perl install-module.pl Net::LDAP

Authen-SASL: /usr/bin/perl install-module.pl Authen::SASL

RadiusPerl: /usr/bin/perl install-module.pl Authen::Radius

SOAP-Lite: /usr/bin/perl install-module.pl SOAP::Lite

HTML-Parser: /usr/bin/perl install-module.pl HTML::Parser

HTML-Scrubber: /usr/bin/perl install-module.pl HTML::Scrubber

Email-MIME-Attachment-Stripper: /usr/bin/perl install-module.pl Email::MIME::Attachment::Stripper

Email-Reply: /usr/bin/perl install-module.pl Email::Reply

TheSchwartz: /usr/bin/perl install-module.pl TheSchwartz

Daemon-Generic: /usr/bin/perl install-module.pl Daemon::Generic

mod_perl: /usr/bin/perl install-module.pl mod_perl2

YOU MUST RUN ONE OF THE FOLLOWING COMMANDS (depending on which database you use):

PostgreSQL: /usr/bin/perl install-module.pl DBD::Pg

MySQL: /usr/bin/perl install-module.pl DBD::mysql

Oracle: /usr/bin/perl install-module.pl DBD::Oracle

COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands and then re-run checksetup.pl):

/usr/bin/perl install-module.pl CGI

/usr/bin/perl install-module.pl Digest::SHA

/usr/bin/perl install-module.pl Date::Format

/usr/bin/perl install-module.pl DateTime

/usr/bin/perl install-module.pl DateTime::TimeZone

/usr/bin/perl install-module.pl Template

/usr/bin/perl install-module.pl Email::Send

/usr/bin/perl install-module.pl Email::MIME

/usr/bin/perl install-module.pl Email::MIME::Encodings

/usr/bin/perl install-module.pl Email::MIME::Modifier

/usr/bin/perl install-module.pl URI

To attempt an automatic install of every required and optional module with one command, do:

/usr/bin/perl install-module.pl --all

6. Execute bugzilla install-module.pl

As suggested by the output of the checksetup.pl, you can execute the install-module.pl to install all bugzilla required and optional perl modules.

# /usr/bin/perl install-module.pl --all

Please review the output of the above install-module.pl to make sure everything got install properly. There is a possibility that some of the modules failed to install (may be because some required OS packages were missing).

Execute the checksetup.pl to verify whether all the modules got installed properly.

Following is the output of 2nd run of the checksetup.pl:

# ./checksetup.pl --check-modules

COMMANDS TO INSTALL OPTIONAL MODULES:

GD: /usr/bin/perl install-module.pl GD

Chart: /usr/bin/perl install-module.pl Chart::Base

Template-GD: /usr/bin/perl install-module.pl Template::Plugin::GD::Image

GDTextUtil: /usr/bin/perl install-module.pl GD::Text

GDGraph: /usr/bin/perl install-module.pl GD::Graph

XML-Twig: /usr/bin/perl install-module.pl XML::Twig

PerlMagick: /usr/bin/perl install-module.pl Image::Magick

SOAP-Lite: /usr/bin/perl install-module.pl SOAP::Lite

mod_perl: /usr/bin/perl install-module.pl mod_perl2

YOU MUST RUN ONE OF THE FOLLOWING COMMANDS (depending on which database

you use):

PostgreSQL: /usr/bin/perl install-module.pl DBD::Pg

MySQL: /usr/bin/perl install-module.pl DBD::mysql

Oracle: /usr/bin/perl install-module.pl DBD::Oracle

7. Install missing Perl Modules

As we see from the above checksetup.pl output, some of the optional modules and required module installed was not completed when we ran the install-module.pl.

So, we have to install the missing modules manually one-by-one to figure out the issues and fix it one-by-one.

Refer to the “Troubleshooting Section” at the end for list of all the issues that I faced while installing the perl modules required for bugzilla (along with the solution on how to fix those issues).

8. Final checksetup.pl –check-modules verification

Execute checksetup.pl –check-modules again as shown below as final verification to make sure all the modules got installed successfully.

# ./checksetup.pl --check-modules

* This is Bugzilla 3.4.6 on perl 5.8.8

* Running on Linux 2.6.18-164.el5PAE #1 SMP Thu Sep 3 04:10:44 EDT 2009

Checking perl modules...

Checking for             CGI.pm (v3.21)  ok: found v3.49

Checking for         Digest-SHA (any)    ok: found v5.48

Checking for           TimeDate (v2.21)  ok: found v2.24

Checking for           DateTime (v0.28)  ok: found v0.55

Checking for  DateTime-TimeZone (v0.71)  ok: found v1.17

Checking for                DBI (v1.41)  ok: found v1.52

Checking for   Template-Toolkit (v2.22)  ok: found v2.22

Checking for         Email-Send (v2.00)  ok: found v2.198

Checking for         Email-MIME (v1.861) ok: found v1.903

Checking for Email-MIME-Encodings (v1.313) ok: found v1.313

Checking for Email-MIME-Modifier (v1.442) ok: found v1.903

Checking for                URI (any)    ok: found v1.54 

Checking available perl DBD modules...

Checking for             DBD-Pg (v1.45)   not found

Checking for          DBD-mysql (v4.00)  ok: found v4.013

Checking for         DBD-Oracle (v1.19)   not found 

The following Perl modules are optional:

Checking for                 GD (v1.20)  ok: found v2.44

Checking for              Chart (v1.0)   ok: found v2.4.1

Checking for        Template-GD (any)    ok: found v1.56

Checking for         GDTextUtil (any)    ok: found v0.86

Checking for            GDGraph (any)    ok: found v1.44

Checking for           XML-Twig (any)    ok: found v3.34

Checking for         MIME-tools (v5.406) ok: found v5.427

Checking for        libwww-perl (any)    ok: found v5.834

Checking for        PatchReader (v0.9.4) ok: found v0.9.5

Checking for         PerlMagick (any)    ok: found v6.2.8

Checking for          perl-ldap (any)    ok: found v0.4001

Checking for        Authen-SASL (any)    ok: found v2.1401

Checking for         RadiusPerl (any)    ok: found v0.17

Checking for          SOAP-Lite (v0.710.06) ok: found v0.711

Checking for        HTML-Parser (v3.40)  ok: found v3.65

Checking for      HTML-Scrubber (any)    ok: found v0.08

Checking for Email-MIME-Attachment-Stripper (any)    ok: found v1.316

Checking for        Email-Reply (any)    ok: found v1.202

Checking for        TheSchwartz (any)    ok: found v1.10

Checking for     Daemon-Generic (any)    ok: found v0.61

Checking for           mod_perl (v1.999022) ok: found v2.000004

9. Create localconfig file using checksetup.pl

Execute checksetup.pl without any argument, which will create a localconfig file in the current directory. The localconfig file contains the key configuration parameters used by the bugzilla (for example, mysql db username and password).

# ./checksetup.pl

Reading ./localconfig...

This version of Bugzilla contains some variables that you may want to

change and adapt to your local settings. Please edit the file

./localconfig and rerun checksetup.pl.

The following variables are new to ./localconfig since you last ran

checksetup.pl: create_htaccess, webservergroup, db_driver, db_host, db_name, db_user, db_pass, db_port, db_sock, db_check, index_html, cvsbin, interdiffbin, diffpath, site_wide_secret

10. Modify the localconfig file.

The only thing you need to modify the localconfig file is MySQL database db password by changing the $db_pass variable as shown below.

# vi ./localconfig

$db_pass = 'Bugs4All';

11. Modify /etc/my.cnf to increase bugzilla attachment size

Set the max_allowed_packet to 4M in the /etc/my.cnf to increase bugzilla attachment size.

# cat /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;

# to do so, uncomment this line:

# symbolic-links=0

# Allow packets up to 4MB

max_allowed_packet=4M

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

Restart the mysqld after this change.

# service mysqld restart

12. Create bugs mysql user

Add bugzilla user (bugs) to the mysql database as shown below.

# mysql -u root -p

mysql> GRANT SELECT, INSERT,

UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,

CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*

TO bugs@localhost IDENTIFIED BY 'Bugs4All';

mysql> FLUSH PRIVILEGES;

13. Create the bugzilla database

Execute the checksetup.pl (without any arguments) again to create the mysql bugzilla database. Since the localconfig file already exist, the second time when you execute the checksetup.pl, it will create the mysql database based on the information from localconfig file.

# ./checksetup.pl 

Creating database bugs...

Building Schema object from database...

Adding new table bz_schema ...

Initializing the new Schema storage...

Adding new table attach_data ...

Adding new table attachments ...

Adding new table bug_group_map ...

Adding new table bug_see_also ...

Adding new table bug_severity ...

Adding new table bug_status ...

Inserting values into the 'priority' table:

Inserting values into the 'bug_status' table:

Inserting values into the 'rep_platform' table:

Creating ./data directory...

Creating ./data/attachments directory...

Creating ./data/duplicates directory...

Adding foreign key: attachments.bug_id -> bugs.bug_id...

Adding foreign key: attachments.submitter_id -> profiles.userid...

Adding foreign key: bug_group_map.bug_id -> bugs.bug_id...

14. Create bugzilla administrator account.

At the end of the ./checksetup.pl execution, it will detect that you don’t have an adminsitrator account and request you to enter administration login information as shown below.

Looks like we don't have an administrator set up yet. Either this is

your first time using Bugzilla, or your administrator's privileges

might have accidentally been deleted.

Enter the e-mail address of the administrator: ramesh@thegeekstuff.com

Enter the real name of the administrator: Ramesh Natarajan

Enter a password for the administrator account: NotRealPwd

Please retype the password to verify: welcome

ramesh@4medica.com is now set up as an administrator.

Creating default classification 'Unclassified'...

Creating initial dummy product 'TestProduct'...

Now that you have installed Bugzilla, you should visit the 'Parameters'

page (linked in the footer of the Administrator account) to ensure it

is set up as you wish - this includes setting the 'urlbase' option to

the correct URL.

15. Configure apache for mod_perl

Rename the bugzilla directory. (i.e remove the version number in it)

# cd /var/www/html

# mv bugzilla-3.4.6/ bugzilla

Add the following two lines to httpd.conf

# tail -2 /etc/httpd/conf/httpd.conf

PerlSwitches -I/var/www/html/bugzilla -I/var/www/html/bugzilla/lib -w -T

PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl

Verify the Group in httpd.conf matches the webservergroup in localconfig

# cd /var/www/html/bugzilla/

# grep webservergroup localconfig

$webservergroup = 'apache';

# grep Group /etc/httpd/conf/httpd.conf

Group apache

16. Final checksetup.pl execution

Execute the checksetup.pl again.

# ./checksetup.pl

Reading ./localconfig...

Removing existing compiled templates...

Precompiling templates...done.

Fixing file permissions...

Now that you have installed Bugzilla, you should visit the 'Parameters'

page (linked in the footer of the Administrator account) to ensure it

is set up as you wish - this includes setting the 'urlbase' option to

the correct URL.

17. Login to bugzilla and complete one time setup.

Start the apache, go to http://{your-ip-address}/bugzilla and login using the administrator account you created above.From the bugzilla UI, at the footer -> Administration -> Parameters -> ‘Required Settings’ section -> Fill-out following information:maintainer: ramesh@thegeekstuff.com

urlbase: http://{your-ip-address}/Note: Depending on your setup, go to -> User Authentication -> and you might want to change requiredlogin and emailregexp parameter.

Troubleshooting Bugzilla Install Issues

Issue1: DBD::mysql module failed

The DBD:mysql perl module failed with the “mysql.h: No such file or directory” error message as shown below.

# /usr/bin/perl install-module.pl DBD::mysql

dbdimp.h:22:49: error: mysql.h: No such file or directory

dbdimp.h:23:45: error: mysqld_error.h: No such file or directory

dbdimp.h:25:49: error: errmsg.h: No such file or directory

In file included from dbdimp.c:20:

dbdimp.h:144: error: expected specifier-qualifier-list before ?MYSQL?

dbdimp.h:236: error: expected specifier-qualifier-list before ?MYSQL_RES?

Solution1: install mysql-devel

Error message “mysql.h: No such file or directory” is because mysql-devel package was missing as shown below.

# rpm -qa | grep -i mysql

MySQL-python-1.2.1-1

mysql-5.0.77-4.el5_4.2

mysql-connector-odbc-3.51.26r1127-1.el5

mysql-server-5.0.77-4.el5_4.2

libdbi-dbd-mysql-0.8.1a-1.2.2

perl-DBD-MySQL-3.0007-2.el5

Install the mysql-devel package as shown below.

# yum install mysql-devel

# rpm -qa | grep -i "mysql-devel"

mysql-devel-5.0.77-4.el5_4.2

DBD::mysql installation will go through without any issues now.

# /usr/bin/perl install-module.pl DBD::mysql

Issue2: GD failed with missing gdlib-config / libgd

Installing GD module failed with the following error message.

# /usr/bin/perl install-module.pl GD

**UNRECOVERABLE ERROR**

Could not find gdlib-config in the search path. Please install libgd 2.0.28 or higher.

If you want to try to compile anyway, please rerun this script with the option --ignore_missing_gd.

Running make test

Make had some problems, maybe interrupted? Won't test

Running make install

Make had some problems, maybe interrupted? Won't install

Solution2: Install gd-devel package

Install libgd (i.e gd-devel package) as shown below to fix the GD module issue.

# yum install gd-devel

# rpm -qa | grep gd

gd-2.0.33-9.4.el5_4.2

gd-devel-2.0.33-9.4.el5_4.2

GD got installed without any issues after insingalling gd-devel package.

# /usr/bin/perl install-module.pl GD

Issue3: Twig Failed with expat.h error

Twig module failed to install with the error message “expat.h: No such file or directory” as shown below.

# /usr/bin/perl install-module.pl XML::Twig

Expat.xs:12:19: error: expat.h: No such file or directory

Expat.xs:60: error: expected specifier-qualifier-list before XML_Parser

Solution3: Install expat and expat-devel for Twig

Install expat and expat-devel package as shown below.

# yum install expat

# yum install expat-devel

Now install Twig without any issues.

# /usr/bin/perl install-module.pl XML::Twig

Issue4: Image::Magick failed to install

Image::Magick installation failed with “magick/MagickCore.h: No such file or directory” error message as shown below.

# /usr/bin/perl install-module.pl Image::Magick

Note (probably harmless): No library found for -lMagickCore

Magick.xs:64:31: error: magick/MagickCore.h: No such file or directory

Magick.xs:171: error: expected specifier-qualifier-list before ‘MagickRealType’

Magick.xs:192: error: expected specifier-qualifier-list before ‘ImageInfo’

Magick.xs:214: error: ‘MagickNoiseOptions’ undeclared here (not in a function)

Magick.xs:214: warning: missing initializer

Solution4: Image::Magick failed to install

Make sure following ImageMagic related packages are present.

# rpm -qa | grep -i Image

ImageMagick-6.2.8.0-4.el5_1.1

ImageMagick-c++-devel-6.2.8.0-4.el5_1.1

ImageMagick-devel-6.2.8.0-4.el5_1.1

ImageMagick-c++-6.2.8.0-4.el5_1.1

ImageMagick-perl-6.2.8.0-4.el5_1.1

In my case, ImageMagic-devel was missing. So, installed it as shown below. After that, Image::Magick perl module got installed successfully.

# yum install ImageMagick-devel

# /usr/bin/perl install-module.pl Image::Magick

Issue5: SOAP::Lite failed to install

SOAP::Lite module failed to install with “Cannot locate version.pm in @INC” message as shown below.

#/usr/bin/perl install-module.pl SOAP::Lite

Failed test 'use SOAP::Lite;' at t/SOAP/Data.t line 5.

Tried to use 'SOAP::Lite'.

Error: Can't locate version.pm in @INC

Solution5: Install version.pm required for SOAP::Lite

Installed version.pm as shown below. After this, SOAP::Lite got installed without any issue.

# perl -MCPAN -e 'install version' 

# /usr/bin/perl install-module.pl SOAP::Lite

Issue6 (and Solution6): mod_perl was missing

Don’t install mod_perl using /usr/bin/perl install-module.pl mod_perl2 . Insetad, use yum to install mod_perl as shown below.

# yum install mod_perl

Issue7: Apache start failed

Starting apache failed with “Cannot locate Template/Config.pm in @INC” error message.

# service httpd restart

Stopping httpd:                                           [ OK ]

Starting httpd: Syntax error on line 994 of /etc/httpd/conf/httpd.conf:

Can't locate Template/Config.pm in @INC

Solution7: Install Template-Tool Kit as shown below

Install Template-Tool kit to fix the above apache error message

# cpan

cpan> i /Template-Toolkit/

Distribution   A/AB/ABEL/Eidolon-Driver-Template-Toolkit-0.01.tar.gz

Distribution   A/AB/ABW/Template-Toolkit-1.07.tar.gz

Distribution   A/AB/ABW/Template-Toolkit-2.22.tar.gz

Distribution   I/IN/INGY/Template-Toolkit-Simple-0.03.tar.gz

4 items found

cpan> install A/AB/ABW/Template-Toolkit-2.22.tar.gz

Issue8: Apache start failed again

Starting apache failed with “Cannot locate DateTime/Locale.pm in @INC” error message.

# service httpd restart

Stopping httpd:                                           [ OK ]

Starting httpd: Syntax error on line 994 of /etc/httpd/conf/httpd.conf:

Can't locate DateTime/Locale.pm in @INC

Solution8: Install DateTime/Locale.pm as shown below

Install DateTime/Locale.pm to fix the above apache error message

# cpan

cpan> install DateTime:Locale

Also, in your apache error_log if you see Digest/SHA.pm issue, you should install it as shown below.

# tail -f /etc/httpd/logs/error_log

Can't locate Digest/SHA.pm in @INC (@INC contains: 

# cpan

cpan> install Digest::SHA

348°/3481 人阅读/0 条评论 发表评论

登录 后发表评论
成国栋
访客 2668
成国栋 的其他博文 更多