我有以下 Apache 配置并且我的应用程序运行正常:
<VirtualHost *:80>
ServerName ig-test.example.com
WSGIScriptAlias / /home/ig-test/src/repository/django.wsgi
WSGIDaemonProcess ig-test user=ig-test
</VirtualHost>
但我想保护我的文件不被其他用户访问,所以我这样做:
chown ig-test /home/ig-test/ -R
chmod og-rwx /home/ig-test/ -R
应用程序停止工作:
(13)Permission denied: /home/ig-test/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
我能用 wsgi 实现我所做的事情吗?如果我必须授予某些文件的读取权限,那就没问题了。但有些文件我必须保护(例如具有数据库配置或应用程序业务逻辑的文件)。
答案1
从我现在在我的网站上看到的情况来看:直到你的 wsgi 文件为止的目录结构都需要可供你的网络服务器(或所有人)访问(+rx)。
答案2
看起来这是不可能的,除非您以 root 身份运行 Apache(由于安全风险,这并不好)。
唯一真正的解决方案是运行单独的 wsgi 服务器(如 uwsgi)并使用 Apache 或 Nginx 作为此服务器的代理。在这种情况下,您可以使用自定义 uid 和 gid 运行 wsgi 进程。