그래서 나는 다음과 같은 일하고 가상 호스트를 가지고 : 나는이 필요 왜 알아낼 질수 무엇apache + fastcgi + fpm suexec이 필요한 이유는 무엇입니까?
<VirtualHost 192.168.128.20:80>
ServerName euclid.domain.tld
#LogLevel debug
ErrorLog /var/www/euclid/logs/error_log
SuexecUserGroup fastcgi www_euclid
FastCgiExternalServer /var/www/euclid/htdocs/cgi-bin -socket /var/run/php-fpm/euclid.sock -user fastcgi -group www_euclid
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin
Alias /cgi-bin /var/www/euclid/htdocs/cgi-bin
<Location /cgi-bin>
Order Deny,Allow
Deny from All
# Prevent accessing this path directly
Allow from env=REDIRECT_STATUS
Options +ExecCGI +FollowSymLInks +SymLinksIfOwnerMatch
</Location>
DocumentRoot /var/www/euclid/htdocs
<Directory /var/www/euclid/htdocs>
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
가 하나/모두 SuexecUserGroup FastCGI를 www_euclid과 -user FastCGI를 -group www_euclid 플래그 FastCgiExternalServer. FPM은 풀링을 사용하며 각 풀은 자체 사용자/그룹에서 실행됩니다. 이 문제는 올바르게 작동합니다. SuexecUserGroup 및/또는 -user fastcgi -group www_euclid 인수를 제거하면 다음 오류가 발생하며 그 이유는 알 수 없습니다. 또한 uid와 gid가 fastcgi에 의해 소켓 파일에 액세스하는 데 사용되는 이유는 무엇입니까? 그것 fastcgi 확실히 아닙니다 : ww_euclid.
(13)Permission denied: FastCGI: failed to connect to server
"/var/www/euclid/htdocs/cgi-bin": connect() failed FastCGI:
incomplete headers (0 bytes) received from server
"/var/www/euclid/htdocs/cgi-bin"