Django 如何授予wsgi在我的目录中操作的权限?
Apache和wsgi现在在访问存储我的Django项目的目录时遇到权限问题。我想我需要回到让wsgi以用户(或者仅仅是组)kevin的身份运行 我让它工作,我不知道我做了什么来阻止它工作,但现在我得到了权限错误,只要我过去登录到我的应用程序。不幸的是,我没有版本控制下的apache配置。我很确定这就是问题所在,因为从项目运行时恢复项目的备份不会改变任何东西,但是调整数据库和项目根目录的权限会改变错误消息的细节。我不打算给整个工作赋予o+w,也不想给每个文件或目录赋予ACL 背景:Apache2随Ubuntu 16.04 LTS一起提供。Django 1.11。Python 3.5。libsqlite3.0 3.11.0 我认为我在/etc/apache2/apache2.conf后面的内容解决了这个问题,特别是行Django 如何授予wsgi在我的目录中操作的权限?,django,apache,permissions,mod-wsgi,wsgi,Django,Apache,Permissions,Mod Wsgi,Wsgi,Apache和wsgi现在在访问存储我的Django项目的目录时遇到权限问题。我想我需要回到让wsgi以用户(或者仅仅是组)kevin的身份运行 我让它工作,我不知道我做了什么来阻止它工作,但现在我得到了权限错误,只要我过去登录到我的应用程序。不幸的是,我没有版本控制下的apache配置。我很确定这就是问题所在,因为从项目运行时恢复项目的备份不会改变任何东西,但是调整数据库和项目根目录的权限会改变错误消息的细节。我不打算给整个工作赋予o+w,也不想给每个文件或目录赋予ACL 背景:Apache2
WSGIProcessGroup kevin
因为所有的文件和目录都归kevin.kevin所有,我的证据似乎表明,当它工作时,它这样做是因为它至少运行了有效的组“kevin”,而不是当前的“www数据”
我为这个项目添加到apache2.conf的全部内容现在如下所示:
# KOSMANOR:
# In accordance with https://www.mindchasers.com/dev/apache-install
WSGIDaemonProcess kevin processes=4 threads=12 python-path=/build/comprosloco
WSGIProcessGroup kevin
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /build/comprosloco/comprosloco/wsgi.py
<Directory /build/comprosloco/comprosloco>
Require all granted
</Directory>
# 29 Jan 2018 on kosmanor.com
# 6 Mar 2018 revised reference to 1.11, but it's so modified as to be unrecognizable. Not sure what reference was used.
# 6 Mar 2018 In particular the stuff about virtual environments is ignored here.
# WSGIScriptAlias / is set above in accordance with the mindchaser page
# WSGIPythonPath not set (semms to find my stuff without it)
# WSTIPythonHome is not set (not using a vitual environment yet)
# Added in accordance (somewhat modified) with https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/
#
Alias /static/ /usr/local/lib/python3.5/dist-packages/django/contrib/admin/static/
<Directory /usr/local/lib/python3.5/dist-packages/django/contrib/admin/static>
Require all granted
</Directory>
科斯马诺:
#依照https://www.mindchasers.com/dev/apache-install
WSGIDaemonProcess=4个线程=12个python路径=/build/comprosloco
WSG集团凯文
WSGirestricton嵌入式
WSGilazyin的初始化
WSGIScriptAlias//build/comprosloco/comprosloco/wsgi.py
要求所有授权
#2018年1月29日于kosmanor.com
#2018年3月6日对1.11进行了修订,但修改后无法识别。不确定使用了什么参考。
#特别是2018年3月6日,这里忽略了有关虚拟环境的内容。
#WSGIScriptAlias/是根据mindchaser页面在上面设置的
#WSGIPythonPath未设置(semms在没有设置的情况下查找我的资料)
#未设置WSTIPythonHome(尚未使用虚拟环境)
#根据(稍加修改)添加https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/
#
别名/static//usr/local/lib/python3.5/dist-packages/django/contrib/admin/static/
要求所有授权
WSGIDaemonProcess的文档可在以下位置找到:
用户
和组
选项
否则,系统上的Apache用户至少需要能够读取目录和文件。如果需要写入文件,则Apache用户需要对文件和目录(如SQLite)进行写入访问,以便创建数据库锁定文件。WSGIDaemonProcess的文档可在以下位置找到:
用户
和组
选项
否则,系统上的Apache用户至少需要能够读取目录和文件。如果需要写入文件,则Apache用户需要对文件进行写入访问,在类似SQLite的情况下,还需要对目录进行写入访问,以便创建数据库锁定文件。非常有用的注释。我确实解决了这个问题,但细节可能需要说明,因为类似的事情可能会发生在其他人身上
非常有帮助的评论。我确实解决了问题,但细节可能需要说明,因为类似的事情可能会发生在其他人身上
这是一个有用的链接。但是我迷路了。我想我已经将apache2.conf返回到原来的位置,但现在我立即得到“您没有访问此服务器上“/”的权限”。我做得比以前好多了。“runserver”也可以正常工作。所以很明显我需要处理权限。但是设置用户和组并没有做到这一点。当将URL映射到脚本文件时,Apache用户仍然需要能够访问WSGI脚本文件的目录树和文件。如果希望对项目代码目录具有限制性权限,请执行以下操作