だから私は次の動作する仮想ホストを持っています:
<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>
私が理解できないように思われるのは、SuexecUserGroupfastcgiwww_euclidとFastCgiExternalServerのどちらか/両方に-userfastcgi-groupwww_euclidフラグが必要な理由です。FPMではプーリングが有効になっており、各プールは独自のユーザー/グループで実行されています。これは正しく機能しますが、問題はありません。SuexecUserGroupおよび/または-userfastcgi-group www_euclid引数を削除すると、次のエラーが発生し、理由がわかりません。さらに、fastcgiによってソケットファイルにアクセスするために使用されるuidとgidは何ですか?それは確かに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"