0
0 комментариев

На апаче крутится несколько виртуальных хостов, один из которых принадлежит другому пользователю. Когда-то давно я включал ему 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

Изменен статус публикации
Добавить комментарий