django Virtualenv,WSGI守护程序错误,权限被拒绝:mod_wsgi,用户标识

xmakbtuz  于 2023-01-27  发布在  Go
关注(0)|答案(1)|浏览(101)

我检查了一些类似的问题。ex)mod_wsgi unable to connect WSGI daemon process
但它对我的问题不起作用至少我认为。
我的错误是相同的链接。
(13)Permission denied: mod_wsgi (pid=6402): Unable to connect to WSGI daemon process 'djangoServer' on '/etc/httpd/run/wsgi.6399.0.1.sock' as user with uid=99.
因此,我插入socket-user=#99,但它不起作用。user=#99 group=#99也无法解析。
系统为Centos7、Python 2.7.5、Apache 2.4.6
虚拟环境是django应用程序3.0.3,python 3.6.8
我的django.conf是

# WSGISocketPrefix /var/run/wsgi

<VirtualHost *:80>
  DocumentRoot /usr/rest_auth
  ServerName djangoServer

  WSGIDaemonProcess djangoServer user=#99 group=#99 python-path=/usr/myvenv/lib/python3.6/site-packages
  WSGIProcessGroup djangoServer
  WSGIScriptAlias / /usr/rest_auth/rest_auth/wsgi.py

  <Directory "/usr/rest_auth/rest_auth">
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>

  Alias /assets/ /usr/rest_auth/static/
  <Directory /usr/rest_auth/static>
    Allow from all
  </Directory>
</VirtualHost>

而wsgi.py是

import os, sys

from django.core.wsgi import get_wsgi_application

path= os.path.abspath(__file__+'/../..')
if path not in sys.path:
    sys.path.append(path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rest_auth.settings")

application = get_wsgi_application()

我试着通过这个链接解决它。https://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGISocketPrefix.html
第一步,我在<VirtualHost></VirtualHost>中使用了WSGISocketPrefix
apache说,WSGISocketPrefix不能在虚拟主机中使用。
所以我把WSGISocketPrefix移出了虚拟主机。
这样我得到了更多的错误比socket-user,我认为这是由sqlite版本问题造成的。
这是错误日志的最后一行。
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
我认为sqlite版本错误是由于在虚拟主机之外使用WSGISocketPrefix造成的。我认为它忽略了我的环境。
如果是chmod的问题,你能告诉我应该改变哪个目录吗?我已经试过一些目录了。
感谢阅读我的问题并给予出建议。
这是第一篇关于堆栈溢出的文章,我认为写作技巧会出错。(我用了谷歌翻译...)请理解。

nuypyhwy

nuypyhwy1#

从以下几点开始:
1.不要在$HOME中创建mysite数据。
1.始终使用$HOME以外的目录。

  1. /var/www/html/mysite应具有apache/apache所有者和组。理想情况下,这可以使其与正确的vhosts配置文件一起工作
    1.完成所有这些操作后,apache仍然没有wsgi.py的读取/编译权限。
  2. django在$HOME下可用,但在/var/ww/html/mysite下不可用,那么这是一个环境问题。

相关问题