twincling  

[twincling] Bugzilla Setup : Mysql and Apache on Centos

John Jimmy Dondapati
Wed, 27 Jan 2010 15:33:57 -0800

I've played around with setting up bugzilla on Centos, Mysql and Apache
today and documented the whole process. Thought someone could use it someday
so posting it here. Hope this helps!


**

*Mysql setup*

Install mysql

sudo yum search mysql // find the right names of the packages here

sudo yum install mysql-server.x86_64 mysql.x86_64 mysql-devel.x86_64

 Edit mysql configuration

sudo vim /etc/my.cnf

Add the following lines if not already present

[mysqld]

# Allow packets up to 4MB

 max_allowed_packet=4M

# Allow small words in full-text indexes

 ft_min_word_len=2

 Start Mysql server

sudo /etc/init.d/mysqld start

 Login as root

mysql -uroot // no password by default

 Create the database for bugs in the mysql terminal by using the following
sql

create database bugs;

 Create the user bugs

create user bugs identified by 'passw0rd';

 Grant the permissions to user bugs on bugs database

GRANT SELECT, INSERT,UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO
b...@localhostidentified by 'passw0rd';

 Flush privileges in order to take effect immediately. Very important!

FLUSH PRIVILEGES;

 NOTE: Update your password if you need to :

update mysql.user set Password=password('passw0rd') where User='bugs';


*Bugzilla Setup*

Download latest stable bugzilla version from the website. It’s 3.4.4 as of
now

wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.4.4.tar.gz-O
bugzilla-3.4.4.tar.gz

* *

Change to the apache directory from where it serves files

cd /var/www/html/

 Unzip the tar here /var/www/html/ so that apache can see it

sudo tar -xzvf ~/bugzilla-3.4.4.tar.gz

 (optional) Rename the directory to hide the version

sudo mv bugzilla-3.4.4/ bugzilla

 Change ownership so that apache can read/write to it

sudo chown -R apache.apache /var/www/html/bugzilla/

 Change to bugzilla directory

cd /var/www/html/bugzilla/

 Run checksetup.pl – this will show you the perl modules missing

sudo ./checksetup.pl --check-modules

 Install gcc (if the linux distro doesn’t already come it), as you will need
it to make/compile the modules

sudo yum install gcc.x86_64

 Install any missing modules //here are commonly missing modules

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

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

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

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

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

sudo /usr/bin/perl install-module.pl DateTime::Locale

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

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

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

 Run the checksetup.pl without any parameters to create a localconfig file.

sudo bash /var/www/html/bugzilla/checksetup.pl

 Change the permissions in case there should be a conflict.

sudo chmod -R 777 /var/www/html/bugzilla/

 Edit localconfig

sudo vim localconfig

 Update the database connection details like username and password

 # The DNS name of the host that the database server runs on.

$db_host = 'localhost';

 # The name of the database

$db_name = 'bugs';

 # Who we connect to the database as.

$db_user = 'bugs';

 # Enter your database password here. It's normally advisable to specify

# a password for your bugzilla database user.

# If you use apostrophe (') or a backslash (\) in your password, you'll

# need to escape it by preceding it with a '\' character. (\') or (\)

# (Far simpler just not to use those characters.)

$db_pass = ‘passw0rd’;

 # Sometimes the database server is running on a non-standard port. If
that's

# the case for your database server, set this to the port number that your

# database server is running on. Setting this to 0 means "use the default

# port for my database server."

 $db_port = 0;

# With the introduction of a configurable index page using the

# template toolkit, Bugzilla's main index page is now index.cgi.

# Most web servers will allow you to use index.cgi as a directory

# index, and many come preconfigured that way, but if yours doesn't

# then you'll need an index.html file that provides redirection

# to index.cgi. Setting $index_html to 1 below will allow

# checksetup.pl to create one for you if it doesn't exist.

# NOTE: checksetup.pl will not replace an existing file, so if you

# wish to have checksetup.pl create one for you, you must

# make sure that index.html doesn't already exist

$index_html = 1;

 Re-run the checksetup.pl

sudo bash /var/www/html/bugzilla/checksetup.pl


*Apache setup*

Almost all linux distributions come with httpd pre-installed (i.e. Apache)

If not, install it using

sudo yum install apache

or

sudo yum install httpd

 Edit /etc/httpd/conf/httpd.conf

sudo vim /etc/httpd/conf/httpd.conf

 and add the following lines

 ScriptAlias /cgi-bin/ "/var/www/html/bugzilla/"

 <Directory /var/www/html/bugzilla>

AddHandler cgi-script .cgi

Options +Indexes +ExecCGI

DirectoryIndex index.cgi

AllowOverride Limit

</Directory>

 Find the line

DirectoryIndex index.html index.html.var

Change it to

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

 Start the httpd server

 sudo /etc/init.d/httpd restart


and you are good to go!

 Try http://localhost/bugzilla and have fun!



-- 
Cheers,
John