OK, here's the sequence of steps I used to get
Bugzilla up and running under Mac OS X. The official instructions are
here, and the download is
here. It's a reasonably
convoluted process, so I'd recommend having some soothing music on: I went for
Musica Antiqua Köln playing
Bach's "Musical Offering".
Zerothly, I already had an install of
MySQL that I'd gotten from
here.
It wasn't set up to auto-start on boot, so I re-opened the .dmg file and ran the MySQLStartupItem.pkg package.
Firstly, I used
FinkCommander to install a collection of
lower-level utilities that are needed:
libpng3
and libpng3-shlibs
gd2
, gd2-bin
, gd2-shlibs
expat
Nextly was to get all of the relevant Perl modules installed. This are the things
that the ./checksetup.pl --check-modules
command spits out; roughly:
perl -MCPAN -e 'install "Bundle::Bugzilla"'
: this is a shortcut to get all of
the really-required modules in one go; there were a few problems, but running it repeatedly seemed
to work eventually.
perl -MCPAN -e 'install "Chart::Base"'
perl -MCPAN -e 'install "PatchReader"'
perl -MCPAN -e 'install "GD::Graph"'
(pointing it at the /sw/lib
location for libgd
- For the
XML::Parser
module, I had to tweak things by hand a bit
cpan
cpan> look "XML::Parser"
# perl Makefile.PL EXPATLIBPATH=/sw/lib EXPATINCPATH=/sw/include
# make; make test; make install
# exit
At the end of all of this,
./checksetup.pl --check-modules
was happy, so I moved on to the
full
./checksetup.pl
and edited the generated
localconfig
file:
- changed the value of
$db_pass
to a password
- changed the value of
$webservergroup
to www
to match the running Apache server
Some tweaking of the MySQL setup next:
- created a
/usr/local/mysql/data/my.cnf
file, and added ft_min_word_len=2
and
max_allowed_packet=1M
in a [mysqld]
section
- set up a
bugs
user from the mysql -u root
command line:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
At this point, running ./checksetup.pl
did a bunch of work: setting up Apache configuration scripts,
generating tables in the database, setting up an administrator account. Nearly there!
Next is webserver setup. To make the Bugzilla directory (/usr/local/bugzilla-2.18.4
for me) visible to
the webserver, I just put in a symlink: cd /Library/WebServer/Documents; ln -s /usr/local/bugzilla-2.18.4
bugzilla
. Then I added the following chunk of configuration to /etc/httpd/httpd.conf
(just before
Section 3 in the existing file):
<Directory /Library/WebServer/Documents/bugzilla>
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI +FollowSymLinks
DirectoryIndex index.cgi
AllowOverride Limit
</Directory>
A swift killall -HUP httpd
(to get the config file reloaded) and woot,
http://localhost/bugzilla
looks to be up and running.
The only thing left to do is to set things up so that Bugzilla can send out emails (in a manner that's effectively
equivalent to running mail
on the command line). My CD has finished playing now, so I'll defer that to another
day.