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