Apache의 mod_fastcgi가 서버를 작성할 권한이 없다고 불평하는 이유는 무엇입니까?


3

이것은 매우 오래된 FastCGI 문제이지만 만족스러운 답변을 찾지 못했습니다.

Google에서 "(13) 권한이 거부 됨 fastcgi에서 서버를 만들 수 없음" 이라는 문구를 검색하면 오랫동안이 문제가 발생하는 사람들이 많이 있습니다.

어떤 사람들은 selinux에서 그것을 비난하고 그것을 끄는 것이 좋습니다 (허용되지 않는 해결책).

다른 사람들은 이것이 이상한 symlink 권한 문제라고 생각하고 Apache logs 디렉토리를 symlink에서 일반 디렉토리로 전환하도록 제안합니다. (로그 파일 이동과 관련이 있으므로 허용되지 않습니다 . ) FastCGI 설치를 참조하십시오 .

아래는 일반적으로 Apache에 의해 기록되는 끔찍한 오류입니다.

[Wed Jun 14 22:09:34 2009] [notice] Apache/2.0.40> (Red Hat Linux) configured 
-- resuming normal operations
[Wed Jun 14 22:09:35 2009] [crit] (13)Permission
denied: FastCGI: can't create server "/var/rt3/bin/mason_handler.fcgi": bind()
failed [/etc/httpd/logs/fastcgi/70d9a528c5892f2bf0c25e5a334bed81]

희망하는 serverfault 는 마침내 FastCGI 사용자를 괴롭히는이 당혹스럽고 성가신 문제에 대한 확실한 해답을 제공 할 수 있습니다.

아무도이 질병의 근본 원인을 실제로 알지 못할 때 제안 된 "치료법"을 구현하는 것이 불안하다고 느낍니다. 이 수수께끼의 바닥에 도달하기를 바랍니다.

답변:


2

에서 /usr/lib/errno.h

#define EACCES          13      /* Permission denied */

mod_fcgi명명 된 파이프 를 통해 fastCGI 하위와 통신합니다 . 아파치는 자식을 낳기 전에 파이프를 만듭니다. 아파치에게 권한을 가지고 있지 않다고 생각합니다.

/var/rt3/bin/mason_handler.fcgi

이 시도를 확인하려면

su - apache "touch /var/rt3/bin/mason_handler.fcgi"

실패하면 파일 시스템 권한을 적절하게 조정하여 해당 디렉토리에 파일을 작성할 수있는 아파치 권한을 부여하십시오.


3

이 문제를 해결했습니다.

chown apache:apache /etc/httpd/logs/

1

SELinux에서 작업하려면 mod_fastcgi 대신 mod_fcgid를 사용하십시오. CentOS 5.6에서 SELinux를 사용하여 mod_fastcgi를 3 시간 동안 시도한 후 Google 검색을 사용하지 못했습니다. mod_fastcgi가 파이프 / 소켓을 생성하여 fastcgi 앱과 통신하려고 시도하는 데 문제가 있습니다. / var / log / httpd / fastcgi 폴더 (mod_fastcgi가 명명 된 파이프를 생성 함)에서 생각할 수있는 모든 권한 / SELinux 컨텍스트를 시도했지만 아무 효과가 없습니다. 그런 다음 mod_fcgid (rpm.pbone.net에서 EL5 rpm 다운로드)로 전환했는데, 이는 fastcgi 앱과 통신하기 위해 동일한 통신 방법을 사용하지 않으며 fastcgi 앱이 일반 cgi 앱인 것처럼 모든 것이 완벽하게 작동했습니다. ! 여전히 파일에 올바른 SELinux 컨텍스트를 설정해야합니다 (httpd_selinux의 매뉴얼 페이지 참조). 예 : 스크립트가 액세스 / 수정하는 모든 파일에 대해 chcon -t httpd_sys_script_exec_t fcgiapp 및 chcon -t httpd_sys_script_r [w | o | a] _t를 수행하려는 경우 setsebool 명령으로 allow_httpd ... 부울 중 일부를 설정해야 할 수도 있습니다. . 물론 일반 파일 권한도 올바르게 설정해야합니다. 일반적인 mod_fcgi 구성을 수행하는 웹 자습서가 있습니다.


0

fastcgi 프로세스가 실행중인 사용자에게는 바인드하려는 소켓에 바인드 할 권한이 없습니다. 여러 가지 이유가있을 수 있지만 유용한 진단을 내리기에 충분한 정보가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.