[英]Django + apache2 error: [Errno 13] Permission denied: '/photos'
[英]Apache2 + VirtualEnv IOError: [Errno 13] Permission denied
我无法让Apache通过virtualenv(和virtualenvwrapper)为我的网站提供服务。 我尝试按照这里的演练进行操作。 值得注意的是,我使用的Ubuntu Server v13.10尚未对Apache v2.2提供本机支持,因此在本演练中我无法安装apache2.2-common。 但是,我不认为这是问题所在,因为apache错误日志说存在权限问题。
在我的设置中,虚拟环境位于非root用户的主目录中,而apache服务器作为root运行(我认为这很正常)。 我尝试使用namei
跟踪权限,并确保将chmod +rw
作为root
路径。 有任何想法吗?
[Thu Mar 06 14:16:37.639031 2014] [mpm_event:notice] [pid 8771:tid 140338386122624] AH00489: Apache/2.4.6 (Ubuntu) mod_wsgi/3.4 Python/2.7.5+ configured -- resuming normal operations
[Thu Mar 06 14:16:37.639144 2014] [core:notice] [pid 8771:tid 140338386122624] AH00094: Command line: '/usr/sbin/apache2'
[Thu Mar 06 14:16:53.456622 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] mod_wsgi (pid=8775): Target WSGI script '/var/www/www.mysite.org/index.wsgi' cannot be loaded as Python module.
[Thu Mar 06 14:16:53.456735 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] mod_wsgi (pid=8775): Exception occurred processing WSGI script '/var/www/www.mysite.org/index.wsgi'.
[Thu Mar 06 14:16:53.456782 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] Traceback (most recent call last):
[Thu Mar 06 14:16:53.456830 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] File "/var/www/www.mysite.org/index.wsgi", line 16, in <module>
[Thu Mar 06 14:16:53.456918 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] execfile(activate_env, dict(__file__=activate_env))
[Thu Mar 06 14:16:53.456971 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] IOError: [Errno 13] Permission denied: '/home/nrUser/Envs/mysite/bin/activate_this.py'
(mysite)root:~# namei -m /home/nrUser/Envs/mysite/bin/activate_this.py
f: /home/nrUser/Envs/mysite/bin/activate_this.py
drwxr-xr-x /
drwxr-xr-x home
drw-r--r-- nrUser
drwxrwxr-x Envs
drwxrwxr-x mysite
drwxrwxr-x bin
-rwxrwxr-x activate_this.py
为了能够访问文件,apache所有者至少需要文件上方所有目录上的x位,以及文件本身的r位。 您的nrUser目录缺少x位; chmod 755 /home/nrUser
应该解决您的问题。
如果我没记错的话,Apache用户/组需要读取目录的权限。 尝试将chown
应用于mysite
目录,例如: sudo chown -R <user>:www-data mysite
<-而在nrUser主目录中
使用sudo service apache2 restart
重启apache,看看是否可以访问您的网站。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.