![Bugzilla 설치 후 Apache 서버를 시작할 수 없습니다](https://linux55.com/image/33401/Bugzilla%20%EC%84%A4%EC%B9%98%20%ED%9B%84%20Apache%20%EC%84%9C%EB%B2%84%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
가이드에 따라 Bugzilla를 설치했습니다.여기그러나 Bugzilla 시스템에 로그인할 수 있도록 Apache 서버를 다시 시작하면 다음 오류가 발생합니다...
Jun 27 16:10:30 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Jun 27 16:10:30 localhost.localdomain httpd[3519]: AH00526: Syntax error on line 354 of /etc/httpd/conf/httpd.conf:
Jun 27 16:10:30 localhost.localdomain httpd[3519]: Can't locate /var/www/html/bugzilla/mod_perl.pl in @INC (@INC contains: /var/www/html/bugzilla /var/www/html/bugzilla/li...) line 1.\n
Jun 27 16:10:30 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jun 27 16:10:30 localhost.localdomain httpd[3521]: AH00526: Syntax error on line 354 of /etc/httpd/conf/httpd.conf:
Jun 27 16:10:30 localhost.localdomain httpd[3521]: Can't locate /var/www/html/bugzilla/mod_perl.pl in @INC (@INC contains: /var/www/html/bugzilla /var/www/html/bugzilla/li...) line 1.\n
Jun 27 16:10:30 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Jun 27 16:10:30 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
Jun 27 16:10:30 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
/var/www/html/bugzilla/mod_perl.pl 파일이 존재하고 충분한 파일 권한이 있는 경우에도 마찬가지입니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? (저는 Fedora v16을 사용하고 있습니다)
편집: SELinux 태그가 문제인 것 같습니다. 이제 서버가 가동되어 Bugzilla 페이지에 액세스할 수 있지만 cgi 파일이 실행되지 않고 텍스트로만 표시됩니다. 아이디어?
답변1
글쎄요, 제가 옳았던 것 같습니다. SELinux가 문제였습니다. 나중에 참고할 수 있도록 제가 이것을 제안할 때 기본적으로 제가 말하는 것은 SELinux가 기본적으로 활성화되어 있고 타사 웹 애플리케이션이 업로드된 시스템을 사용하고 있다는 것입니다. 나는 단지 그것을 언급한 것인데, 이는 여러분이 앞으로도 같은 속기를 따를 수 있도록 하기 위함입니다.
그러나 현재 문제의 경우 SELinux 부분을 사용하여 두 가지 중 하나를 수행할 수 있습니다.
- SELinux를 허용 모드로 변경하면
/etc/selinux/config
더 이상 실제로 아무 것도 수행하지 않습니다. 완전히 비활성화하지는 않을 것입니다. 이렇게 하면 파일 시스템 레이블이 불규칙하게 되고 나중에 SELinux가 정말로 필요하다고 결정할 수도 있기 때문입니다. SELinux는 현재 유효한 레이블을 유효하게 유지하는 데는 좋지만 파일 시스템에 레이블을 다시 지정할 때는 그리 좋지 않습니다. Permissive가 여전히 로그 파일에 기록한다는 점을 제외하면 둘 다 기능적으로 동일해야 합니다(로그 파일 자체는 정기적으로 교체되어야 함). - 웹사이트의 DocumentRoot에서 작업을 수행하여
restorecon -R
Fedora 프로젝트가 httpd_t 액세스 권한을 부여하는 컨텍스트로 타사 소프트웨어에 다시 태그를 지정합니다. 웹 서버가 많은 수의 잠재적 사용자(예: 인터넷 또는 대규모 인트라넷 사이트)에게 노출되는 경우 이 방법이 더 나은 선택일 수 있습니다.
"스크립트가 텍스트로 나타나는 경우"의 경우 mod_perl이 설치되어 있는지 확인합니다. Fedora/RHEL/CentOS/etc는 일반적으로 mod_perl에 대한 핸들러 정보를 추가하는 구성을 추가하며 /etc/httpd/conf.d
, mod_perl은 기본적으로 설치되지 않습니다. 설치되어 있지 않으면 a를 수행 yum install -y mod_perl
하고 httpd를 다시 시작하십시오.
설치하면 더 많은 일이 일어날 수 있지만 mod_perl이 설치되지 않았을 수도 있다고 생각합니다.