На апаче крутится несколько виртуальных хостов, один из которых принадлежит другому пользователю. Когда-то давно я включал ему mod_wsgi
и всё прекрасно работал, потом выключал за ненадобностью, а сейчас включил — не работает. В логах такая ошибка:
Permission denied: … Unable to connect to WSGI daemon process ‘foo’ on ‘/run/apache2/wsgi.17884.0.2.sock’
Этот сокет принадлежит пользователю www-data
, а процесс этого виртуального хоста честно работает от username
. Собственно, сейчас временный костыль — делаю chmod username /run/apache2/wsgi.[0-9].0.2.sock
после каждого перезапуска, и всё работает нормально до следующего перезапуска, но это не катит. Почему пользователь перестал назначаться автоматически?
Гугл советовал:
- переназначить
WSGISocketPrefix
— не помогло, все сокеты так и принадлежатwww-data
; - удалить
apache2-mpm-prefork
— но пакет этот не установлен вовсе, а модульmpm_prefork
включен и находится в зависимостях отmpm_itk
, поэтому я оба отключить не могу.
Конфиг виртуального хоста:
<VirtualHost 127.0.0.1:11000> AssignUserID username username WSGIDaemonProcess foo user=username group=username WsgiProcessGroup foo WSGIScriptAlias … … </VirtualHost>
apache2.conf
стандартный для Debian 8 (но всё сломалось ещё на Debian 7, так что ни обновление, ни этот файл ни при чём).
Включенные модули (наверняка много лишнего и наверняка отключил что-то нужное?):
access_compat authn_core authz_groupfile autoindex dir mime negotiation rewrite ssl alias authn_file authz_host cgi env mpm_itk php5 setenvif status auth_basic authz_core authz_user deflate filter mpm_prefork reqtimeout socache_shmcb wsgi