Bugzilla 4.2.4를 설치했는데 이제 이메일을 보낼 수 없습니다. 약 한 달 전까지는 아무런 문제 없이 이메일을 보내고 있었습니다(약 3개월 전까지는 문제가 없었습니다). 누군가 댓글, 새로운 버그 또는 이메일을 생성해야 하는 기타 항목을 게시하는 경우 "제출"을 클릭하면 다음 페이지가 영원히 시간 초과되지만 결국에는 "내부 서버 오류"가 반환됩니다.
그들이 시도하는 모든 것(오류 생성, 파일 첨부, 댓글 게시 등)이 성공하므로 문제는 이메일 생성에만 있는 것 같습니다. 따르다공식 가이드문제 해결 제안을 만들었지 errorlog
만 출력이 매우 모호합니다.
---------------------------------------------------------------------------
[11817] 06/03/13 13:02:02 global/code-error.html.tmpl mail_send_error 127.0.0.1
[11817] $env(ANSI_COLORS_DISABLED) = 1;
[11817] $env(HOME) = "/root";
[11817] $env(LOGNAME) = "root";
[11817] $env(OLDPWD) = "/root";
[11817] $env(PATH) = "/usr/lib:/usr/sbin:/usr/ucblib";
[11817] $env(PWD) = "/var/www/bugzilla";
[11817] $env(SHELL) = "/bin/sh";
[11817] $env(SHLVL) = 1;
[11817] $env(USER) = "root";
[11817] $env(_) = "/var/www/bugzilla/whine.pl";
---------------------------------------------------------------------------
[23266] 06/03/13 13:17:02 global/code-error.html.tmpl mail_send_error 127.0.0.1
[23266] $env(ANSI_COLORS_DISABLED) = 1;
[23266] $env(HOME) = "/root";
[23266] $env(LOGNAME) = "root";
[23266] $env(OLDPWD) = "/root";
[23266] $env(PATH) = "/usr/lib:/usr/sbin:/usr/ucblib";
[23266] $env(PWD) = "/var/www/bugzilla";
[23266] $env(SHELL) = "/bin/sh";
[23266] $env(SHLVL) = 1;
[23266] $env(USER) = "root";
[23266] $env(_) = "/var/www/bugzilla/whine.pl";
문제 해결 프로세스 전반에 걸쳐 SELinux를 허용 모드로 전환하여 SELinux가 문제가 아님을 확인하고 Apache httpd를 통해 호출할 때 내 개인 이메일 계정으로 보내는 간단한 Perl 스크립트를 만들었습니다. 이 오류에 대해서는 httpd error_log
에 대해 그다지 흥미로운 점이 없습니다 .
[Wed Jun 12 13:21:20 2013] [warn] [client 152.xx.99.118] Timeout waiting for output from CGI script /var/www/bugzilla/post_bug.cgi, referer: http://bugs.xxx.edu/enter_bug.cgi?product=Banner%20INB
[Wed Jun 12 13:21:20 2013] [error] [client 152.xx.99.118] Premature end of script headers: post_bug.cgi, referer: http://bugs.xxx.edu/enter_bug.cgi?product=Banner%20INB
기본적으로, 나는 그것을 어디서 얻을 수 있는지 잘 모르겠고, Bugzilla가 나에게 더 자세한 오류 메시지를 제공하도록 얻는 방법을 모릅니다. 관리상 아무것도 변경하지 않았으며 프로세서 시간과 사용 가능한 저장 공간이 충분하다는 것을 알고 있는데 왜 갑자기 중단되었는지 잘 모르겠습니다.
이것은 Perl 5.8.8이 설치된 RHEL5 시스템에 있습니다.
답변1
이런 어려움을 겪을 때 저는 종종 다음과 같은 방법을 사용합니다.스트레스단서를 찾으세요.
이 작업을 수행하는 편리한 단일 라이너는 다음과 같습니다.
ps -ef |grep apache |grep -v grep |awk '{print $2}' | while read pid ; do sudo strace -p$pid -o /tmp/strace.$pid & done
모든 Apache PID를 가져오고 각 PID에 strace를 추가하여 출력을 다른 파일에 기록합니다./tmp/
이 작업이 완료되면 오류를 재현하고 모든 strace 프로세스를 종료합니다.
sudo killall strace
strace에 의해 생성된 가장 큰 파일을 찾으십시오. 관련 Apache 프로세스의 strace일 가능성이 높습니다.
ls -lSrh /tmp/strace.*
단서가 있는지 확인하십시오(ENO 또는 ERR이 포함된 행이 특히 흥미롭습니다).
답변2
시도해 볼 수 있는 몇 가지 추가 항목은 다음과 같습니다.
#1 - Apache 로깅 증가
Apache에서 로깅 수준을 높일 수 있습니까? 다음과 같습니다: LogLevel info
.자세한 내용은 여기.
#2 - /var/log/maillog
/var/log/maillog
Bugzilla가 이메일을 보내려고 할 때 다른 메시지가 표시됩니까?
#3 - 이메일 보내기
사서함에서 이메일을 보낼 수 있나요? 명령줄에서 시도해 보겠습니다. 이 mail
명령을 사용하여 이메일을 작성할 수 있어야 합니다 .