Моно-сокет fastcgi (nginx: доступ запрещен)
У меня есть Ubuntu (13.04) / nginx / mono. Это работает, когда я устанавливаю сокет на fastcgi-mono-server4 на TCP, однако я хотел бы использовать сокет.
Я запускаю его с помощью этого скрипта, который запускается при запуске:
#!/bin/sh
### BEGIN INIT INFO
# Provides: monoserve.sh
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start fastcgi mono server with hosts
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/mono
NAME=monoserver
DESC=monoserver
MONOSERVER=$(which fastcgi-mono-server4)
MONOSERVER_PID=$(ps auxf | grep fastcgi-mono-server4.exe | grep -v grep | awk '{print $2}')
WEBAPPS=":/usr/share/nginx/html/"
case "$1" in
start)
if [ -z "${MONOSERVER_PID}" ]; then
echo "starting mono server"
${MONOSERVER} /applications=${WEBAPPS} /socket=unix:/var/run/mono.sock &
echo "mono server started"
else
echo ${WEBAPPS}
echo "mono server is running"
fi
;;
stop)
if [ -n "${MONOSERVER_PID}" ]; then
kill ${MONOSERVER_PID}
echo "mono server stopped"
else
echo "mono server is not running"
fi
;;
esac
exit 0
Проблема в том, что файл /var/run/mono.sock создается с разрешениями, которые не позволяют nginx получить к нему доступ. Я не уверен, как решить эту проблему. Если я вручную установлю разрешения на 666, nginx работает. Права доступа к файлу sock по умолчанию: srwxr-xr-x
У меня также есть php5-fpm на этом сервере, и его файл sock создается с правильными разрешениями, и на протяжении всего его запуска проходит start-stop-daemon.
У кого-нибудь есть идеи?
1 ответ
Скоро будет флаг для этого (спасибо за отзыв). А пока можешь umask 117
перед запуском сервера