web-dev-qa-db-ja.com

FreeBSD上のNginx:fcgiwrap.sockパーミッションが拒否されました

FreeBSDでnginxとcgitをセットアップしようとしていますが、nginxは/var/run/fcgiwrap/fcgiwrap.sockにアクセスできません。

私の/etc/rc.confではすでにfcgiwrap_user="www"を設定しており、wwwはnginxが実行されるユーザーでもあります。

fcgiwrap.sockを実行してwwwが所有するchown www /var/run/fcgiwrap/fcgiwrap.sockを作成すると、すべてが希望どおりに機能します。

ただし、これはもちろんこれを行うための適切な方法ではなく、再起動するまでしか持続しません。

fcgiwrap_user="www"を設定することでもこれが決まると思い込んでいました。

私は何かが足りないのですか?

更新:

service fcgiwrap startまたはrestartを使用すると、メッセージStarting fcgiwrapの後にchmod: /var/run/fcgiwrap/fcgiwrap.sock: No such file or directoryが続くことに気付きました。ただし、/var/run/fcgiwrap/fcgiwrap.sockは後で存在します。

2
Jessica Nowak

RCスクリプトは/usr/local/etc/rc.d/fcgiwrapにあります。

コードを見ると、fcgiwrap_userはデーモンを実行しているプロセスの所有者を設定します(デフォルトはroot)。

ソケットの所有者を設定するには、fcgiwrap_socket_owner="www"を設定する必要があります。

5
Richard Smith

リチャード・スミスの答えも私のために働いたが、私の場合、私もfcgiwrap_socket_group="www"を設定しなければならなかった。以前はfcgiwrap_user="www"を設定するだけで十分だったため、これらの設定は新しいようです。

1
Zilon