我在用于Django生产环境的Ubuntu Server 13.10上遇到了Cherokee+uWSGI的权限问题。当我在启动切诺基之前以根用户身份手动启动uWSGI时,一切都很顺利:
sudo uwsgi --ini /home/instytut21/instytut21l/instytut21/uwsgi.ini
但是,当我尝试通过服务器(作为 www-data 运行)访问该站点时,我不断收到503 Service Unavailable
响应和日志中的以下消息:
sudo cat /var/log/cherokee/instytut21.error.log
realpath() of /home/instytut21/instytut21.pl/instytut21/uwsgi.ini failed:
[core/utils.c line 3574]
我花了很多时间试图找出导致问题的原因。我尝试将所有权授予$USER:www-data
和www-data:www-data
,具有从600
到777
的各种文件权限。
出于安全原因,我不想以 root 身份运行服务器。如何使切诺基人可以访问 ini 文件?
我终于在 www-data permission 找到了类似问题的解决方案?.我稍微修改了它并通过执行以下命令解决了我的问题。
拥有整个目录由我和组 www-data:
sudo chown -R $USER:www-data /home/instytut21/instytut21.pl/
向组授予所有权限:
sudo chmod -R g+rwx /home/instytut21/instytut21.pl/
确保所有上传的文件都获得相同的权限:
sudo chmod -R g+s /home/instytut21/instytut21.pl/