Debian/Ubuntu架设nginx+bugzilla
时间:2014-11-20 22:27 来源:linux.it.net.cn 作者:IT
最近需要一个简单快速的bug追踪工具,考虑到系统环境以及学习成本,决定采用bugzilla。不试不知道,原来这里面还有这么多的坑需要一个个踩平~,遂随笔一下以备后用。
我采用的系统组成是debian+mysql+nginx+bugzilla,使用centos的亲可能需要注意nginx的安装方式和配置文件位置不一样,需要灵活变通;至于使用apache的同学,请参考其它文章设置转发部分。
一、安装nginx、perl-fpm、mysql
不同于apache使用的cgi方式,nginx采用fcgi来调度php、perl等编程语言。所以我们需要安装并配置perl的fpm。
安装
aptitude install nginx libfcgi-perl mysql-server
我本来想通过下载编译的方式安装fcgi(https://metacpan.org/pod/FCGI)不料安到一半发现发行版里竟然有!于是乎瞬间采用更好的方案解决了。发行版里找不到这个包的同学可以自行下载安装(nginx也是一个道理)
安装完后发现,这个lib没有启停脚本,于是上网上找了两个脚本安上去:
wget http://nginxlibrary.com/downloads/perl-fcgi/fastcgi-wrapper -O /usr/bin/fastcgi-wrapper.pl
wget http://nginxlibrary.com/downloads/perl-fcgi/perl-fcgi -O /etc/init.d/perl-fcgi
chmod +x /usr/bin/fastcgi-wrapper.pl
chmod +x /etc/init.d/perl-fcgi
update-rc.d perl-fcgi defaults
insserv perl-fcgi
执行完上述脚本后,我们在/etc/init.d/里面安装了一个服务perl-fcgi,它将在开机后自动运行/usr/bin/fastcgi-wrapper.pl
配置
fastcgi-wrapper.pl调用libfcgi-perl并监听socket端口,nginx将通过该端口与之通信。默认地址为127.0.0.1:9000。为了提升性能,我将其改为命名管道方式:
vim /usr/bin/fastcgi-wrapper.pl
找到原来的启动监听语句将其修改为:
$socket = FCGI::OpenSocket( "/tmp/perl-fcgi.sock", 10 );
保存后,启动perl-fcgi
service perl-fcgi start
如果启动失败,提示`account not available`,可能是www-data用户被禁止登陆,执行以下命令:
usermod -s /bin/sh www-data
进入nginx的配置目录,创建配置文件:
cd /etc/nginx/sites-available
vim bugzilla
配置文件如下(将域名和端口替换成你的访问地址):
server {
listen 8008; # listening port
server_name bugzilla.example.com; # server name
root /var/www/bugzilla; # installation path
location /skin/ {}
location /js/ {}
location / {
include fastcgi_params;
fastcgi_pass unix:/tmp/perl-fcgi.sock;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
接下来,将配置文件链接到sites-enabled目录中,并启动应用(如果之前nginx已经启动,调用reload重载入配置文件):
cd ../sites-enabled/
ln -s ../sites-available/bugzilla .
service nginx start
mysql的安装与配置在网上相当多,在此不再赘述。
二、安装bugzilla
搞定了基础环境,接下来开始正式安装bugzilla
安装
从bugzilla.org下载并解压到/var/www
mkdir -p /var/www
cd /var/www
chown -R www-data .
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.4.5.tar.gz
tar zxf bugzilla-4.4.5.tar.gz
mv bugzilla-4.4.5 bugzilla
cd bugzilla
配置
接下来需要对bugzilla进行配置。bugzilla依赖某些perl组件本机可能没有安装,而我在使用其自带的安装脚本时始终无法成功安装,网上搜索后找到一个解决方案是使用cpanm来安装。
下载并安装cpanm:
sudo curl -L http://cpanmin.us | perl - --sudo App::cpanminus
接下来我们执行checksetup.pl来进行配置。配置过程中checksetup.pl需要执行若干次以完成环境检查。第一次执行后,可能会提示有模块未安装,按照未安装的模块列表使用cpanm命令进行安装即可
perl checksetup.pl
cpanm YAML
cpanm DateTime
...
安装完成后,再次执行checksetup.pl,此时依赖模块应该都检查通过。如果有模块已安装但检查不到,可以尝试强制重新安装,如:
cpanm DateTime -f
模块检查通过后,checksetup.pl会提示mysql连接失败,我们现在进入mysql配置用户与数据库:
CREATE database bugs default charset utf8 collate utf8_bin;
CREATE user bugs@localhost identified by 'bugs';
grant all on bugs.* to bugs@localhost;
flush privileges;
修改数据库配置:
vim localconfig
找到并修改以下项:
$webservergroup = 'www-data';
$db_pass = 'bugs';
注:如果使用远程数据库等,请自行进行配置用户名、密码等
至此,我们完成了所有的配置。再次执行checkconfig.pl,会提示输入管理员邮箱和密码,并保存配置到数据库。
尝试打开你配置的访问地址(如:http://bugzilla.example.com:8008/),如果能打开并排版显示正确,就表明可以访问了。
(责任编辑:IT)
最近需要一个简单快速的bug追踪工具,考虑到系统环境以及学习成本,决定采用bugzilla。不试不知道,原来这里面还有这么多的坑需要一个个踩平~,遂随笔一下以备后用。 我采用的系统组成是debian+mysql+nginx+bugzilla,使用centos的亲可能需要注意nginx的安装方式和配置文件位置不一样,需要灵活变通;至于使用apache的同学,请参考其它文章设置转发部分。 一、安装nginx、perl-fpm、mysql不同于apache使用的cgi方式,nginx采用fcgi来调度php、perl等编程语言。所以我们需要安装并配置perl的fpm。 安装aptitude install nginx libfcgi-perl mysql-server 我本来想通过下载编译的方式安装fcgi(https://metacpan.org/pod/FCGI)不料安到一半发现发行版里竟然有!于是乎瞬间采用更好的方案解决了。发行版里找不到这个包的同学可以自行下载安装(nginx也是一个道理) 安装完后发现,这个lib没有启停脚本,于是上网上找了两个脚本安上去: wget http://nginxlibrary.com/downloads/perl-fcgi/fastcgi-wrapper -O /usr/bin/fastcgi-wrapper.pl wget http://nginxlibrary.com/downloads/perl-fcgi/perl-fcgi -O /etc/init.d/perl-fcgi chmod +x /usr/bin/fastcgi-wrapper.pl chmod +x /etc/init.d/perl-fcgi update-rc.d perl-fcgi defaults insserv perl-fcgi 执行完上述脚本后,我们在/etc/init.d/里面安装了一个服务perl-fcgi,它将在开机后自动运行/usr/bin/fastcgi-wrapper.pl 配置fastcgi-wrapper.pl调用libfcgi-perl并监听socket端口,nginx将通过该端口与之通信。默认地址为127.0.0.1:9000。为了提升性能,我将其改为命名管道方式: vim /usr/bin/fastcgi-wrapper.pl 找到原来的启动监听语句将其修改为: $socket = FCGI::OpenSocket( "/tmp/perl-fcgi.sock", 10 ); 保存后,启动perl-fcgi service perl-fcgi start 如果启动失败,提示`account not available`,可能是www-data用户被禁止登陆,执行以下命令: usermod -s /bin/sh www-data 进入nginx的配置目录,创建配置文件: cd /etc/nginx/sites-available vim bugzilla 配置文件如下(将域名和端口替换成你的访问地址): server { listen 8008; # listening port server_name bugzilla.example.com; # server name root /var/www/bugzilla; # installation path location /skin/ {} location /js/ {} location / { include fastcgi_params; fastcgi_pass unix:/tmp/perl-fcgi.sock; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } 接下来,将配置文件链接到sites-enabled目录中,并启动应用(如果之前nginx已经启动,调用reload重载入配置文件): cd ../sites-enabled/ ln -s ../sites-available/bugzilla . service nginx start mysql的安装与配置在网上相当多,在此不再赘述。 二、安装bugzilla搞定了基础环境,接下来开始正式安装bugzilla 安装从bugzilla.org下载并解压到/var/www mkdir -p /var/www cd /var/www chown -R www-data . wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.4.5.tar.gz tar zxf bugzilla-4.4.5.tar.gz mv bugzilla-4.4.5 bugzilla cd bugzilla 配置接下来需要对bugzilla进行配置。bugzilla依赖某些perl组件本机可能没有安装,而我在使用其自带的安装脚本时始终无法成功安装,网上搜索后找到一个解决方案是使用cpanm来安装。 下载并安装cpanm: sudo curl -L http://cpanmin.us | perl - --sudo App::cpanminus 接下来我们执行checksetup.pl来进行配置。配置过程中checksetup.pl需要执行若干次以完成环境检查。第一次执行后,可能会提示有模块未安装,按照未安装的模块列表使用cpanm命令进行安装即可 perl checksetup.pl cpanm YAML cpanm DateTime ... 安装完成后,再次执行checksetup.pl,此时依赖模块应该都检查通过。如果有模块已安装但检查不到,可以尝试强制重新安装,如: cpanm DateTime -f 模块检查通过后,checksetup.pl会提示mysql连接失败,我们现在进入mysql配置用户与数据库: CREATE database bugs default charset utf8 collate utf8_bin; CREATE user bugs@localhost identified by 'bugs'; grant all on bugs.* to bugs@localhost; flush privileges; 修改数据库配置: vim localconfig 找到并修改以下项: $webservergroup = 'www-data'; $db_pass = 'bugs'; 注:如果使用远程数据库等,请自行进行配置用户名、密码等 至此,我们完成了所有的配置。再次执行checkconfig.pl,会提示输入管理员邮箱和密码,并保存配置到数据库。 尝试打开你配置的访问地址(如:http://bugzilla.example.com:8008/),如果能打开并排版显示正确,就表明可以访问了。 (责任编辑:IT) |