在16.04 Server安装Bugzilla时遇TEST-WARNING:无法找到httpd进程GID
解决Bugzilla testserver.pl中的"Failed to find the GID for the 'httpd' process"警告
这个问题其实是发行版差异导致的小坑——Ubuntu 16.04上的Apache进程名和运行用户组都不是httpd,而是apache2和www-data,但testserver.pl脚本默认是针对RHEL/CentOS这类用httpd命名的发行版编写的,所以才会找不到对应GID。下面是具体的解决步骤:
1. 先确认你的Apache进程实际信息
先在shell里执行这条命令,验证Apache的运行用户:
ps aux | grep apache2
看输出的第一列,你会发现进程是用www-data用户运行的,而不是脚本里默认找的httpd。
2. 修改testserver.pl脚本的对应代码
打开testserver.pl文件,找到以下两处关键代码段进行替换:
- 查找Apache进程的部分:
原代码可能类似:
改成:my @httpd = grep { /httpd/ } split /\n/, qx(ps axwww);my @httpd = grep { /apache2/ } split /\n/, qx(ps axwww); - 获取用户组GID的部分:
原代码可能是:
改成:my $httpd_gid = getgrnam('httpd');my $httpd_gid = getgrnam('www-data');
3. 手动验证GID(可选临时方案)
如果不想修改脚本,也可以先手动获取www-data的GID,直接硬编码到脚本里(不推荐长期用,但临时测试可行):
执行命令获取GID:
id -g www-data
比如输出是33,就把脚本里的getgrnam('httpd')替换成33即可。
4. 重新运行测试脚本
修改完成后,再次执行测试命令:
./testserver.pl http://localhost/bugzilla
这个找不到GID的警告应该就会消失了。
本质上就是Ubuntu和RHEL系发行版的Apache命名规则差异,只要把脚本里的httpd相关内容替换成Ubuntu对应的apache2/www-data就能解决问题。
内容的提问来源于stack exchange,提问作者badperson
相关产品推荐
相关产品推荐

