bugzilla在Ubuntu系统下进行安装
安装Perl
perl -v #若已经安装,检查安装版本
sudo apt install perl*
安装数据库
虽然bugzilla官方建议MySQL,但是高版本MySQL和bugzilla有部分不兼容造成bug,且此bug还未修复。
sudo apt install postgresql postgresql-contrib
sudo -i -u postgres #进入SQL命令行
CREATE ROLE bugzilla LOGIN PASSWORD 'BugsAbc'; #密码和role可以更改,但是要和之后的流程对应
CREATE DATABASE bugs;
GRANT ALL PRIVILEGES ON DATABASE bugs TO bugzilla;
\q #退出SQL的命令行
sudo systemctl restart postgresql #重启SQL服务
安装 Apache2 并配置
Ubuntu系统中,httpd集成在了apache2中,所以直接安装apache2
sudo apt install apache2
安装后设置为开机自启
apache2 -k start
sudo update-rc.d apache2 enable
在/etc/apache2/中,修改文件
sudo vim /etc/apache2/sites-available/bugzilla.conf #需要提前安装vim
往文件内写入内容,按i或insert进入编写
Listen 8555
<VirtualHost *:8555>
ServerAdmin yourmail@outlook.com #写管理员的邮箱
DocumentRoot "/opt/bugzilla5" #之后bugzilla安装文件为放在这里
ServerName 192.168.10.192 #这里自己设定
ServerAlias 192.168.10.192 #有公网ip可以写公网ip,没有的话就和上面一样
ErrorLog "${APACHE_LOG_DIR}/vhost.bugzilla.error.log"
CustomLog "${APACHE_LOG_DIR}/vhost.bugzilla.access.log" combined
<Directory /opt/bugzilla5>
AddHandler cgi-script .cgi .pl
Options +Indexes +ExecCGI
DirectoryIndex index.cgi index.html index.html.var
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
写完后按esc,再输入:wq保存并退出
使用以下命令使配置生效
sudo a2ensite /etc/apache2/sites/available/bugzilla.conf
会自动检查语法错误
如没有问题,重启apache服务
sudo systemctl restart apache2
创建用户组
sudo groupadd apache #创建用户
sudo useradd -g [group-name] apache #把用户加入到组内
下载 Bugzilla 并安装配置
这里将bugzilla安装在/opt/bugzilla5的位置
假设已经获得了bugzilla的安装包,我用的是5.0.6的版本
sudo tar -zxvf /opt/bugzilla.tar.gz
分配用户权限
sudo chown -R apache:[group-name] /opt/bugzilla5
sudo chmod -R 755 /opt/bugzilla5 #如果没有正确设置用户权限,届时网页会出现 403 错误
接下来安装缺失的Perl模块,时间会比较长
cd /opt/bugzilla5 #进入文件夹
./checksetup.pl #查看哪些Perl模块缺失
perl install-module.pl --all #安装缺失的模块
完成以上命令并不能保证perl模块完全成功安装了,再次运行./checksetup.pl
检查还缺哪些模块,然后建议把缺失的报错全部丢给gpt,它会整理,并给出对应缺失模块的安装命令。
如果所有的模块都成功安装后,会生成一个localconfig文件,打开文件修改配置
vim ./localconfig
若打开的是一个空文件,则说明上一步没有全部完成
修改以下内容:
$webservergroup = '你命名的用户组'; #如果没有正确设置用户权限,届时网页会出现 403 错误,这里的用户组名称设为你上面创建 apache 用户时实际加入的用户组
$db_driver = 'Pg';
$db_name = 'bugs';
$db_user = 'bugzilla';
$db_pass = 'BugsAbc'; #对应的是安装数据库时的配置
修改完成后,再次运行./checksetup.pl
检查,如果没问题则会进入下一步,输入管理员账号等(这是网页上登录的管理员账号)。
此时打开浏览器,在地址栏输入你的 IP 地址和端口号,或者输入 127.0.1.1 和端口号即可访问 bugzilla 网页。打开如下:
如果不是这样,而是就只有代码显示,则说明apache没有正确处理cgi脚本,而是将其内容当作普通文本文件发送给了浏览器,可能的原因是缺失cgi处理模块。
检查 mod_cgi
或 mod_cgid
是否已经启用
sudo a2enmod cgi
或者对于多线程的 MPM(例如 event
或 worker
MPM)
sudo a2enmod cgid
确保 CGI 脚本(如 index.cgi)是可执行的。可以使用以下命令来设置文件权限:
sudo chmod +x /opt/bugzilla5/*.cgi
重启apache,应用更改
sudo systemctl restart apache2
尝试再次访问Bugzilla,看看它是否现在正确地加载了。
其它:
若有其它问题,可以查看 /var/log/apache2/error.log
来获取更多信息。
关于bugzilla设置SMPT服务器,可以移步前往这篇文章