问题描述
在我的站点2 Django应用的Apache WSGI没有写在/ var / WWW / SITE2文件的访问,即使:
以下是发布会的状态:
[根@ NUC WWW]#httpd的-v
服务器版本:阿帕奇/ 2.4.6(CentOS的)
Server内置:2015年11月19日21点43分13秒[根@ NUC WWW]#ls -l命令
共有4个
drwxr-XR-X。 2根根19年11月6日23:43 cgi-bin目录
drwxr-XR-X。 2根根4月6日15:02 2 HTML
drwxrwxrwx。 6阿帕奇阿帕奇4096 4月3日16:14站点2[根@ NUC站点2]#ls -l命令
...
drwxrwxrwx。 5阿帕奇阿帕奇4096 4月2日15:23博客
-rwxrwxrwx。 1阿帕奇阿帕奇95232 4月3日16:09 db.sqlite3
drwxrwxrwx。 5阿帕奇阿帕奇4096 4月2日16:54主场
-rwxrwxrwx。 1阿帕奇阿帕奇248 03月19日13:56 manage.py
drwxrwxrwx。 5阿帕奇阿帕奇4096 4月3日16:13麻子
drwxrwxrwx。 2阿帕奇阿帕奇4096 4月3日14:45站点2
[根@ NUC WWW]#sestatus
SELinux状态:禁用httpd.conf中...
#-------------------------------------------------
WSGIScriptAlias / /var/www/site2/site2/wsgi.py
WSGIPythonPath在/ var / WWW /站点2 /别名/静态/的/ var / WWW /站点2 /博客/静态/
别名/ static2 /在/ var / WWW /站点2 /家庭/静态/
别名/ static3 /在/ var / WWW /站点2 /痘疤/静态/<目录/ var / WWW /站点2 /博客/静态/>
要求所有批准
< /目录>
<目录/ var / WWW /站点2 /家庭/静态/>
要求所有批准
< /目录>
<目录/ var / WWW /站点2 /痘疤/静态/>
要求所有批准
< /目录><目录/ var / WWW /站点2 /站点2 />
<文件wsgi.py>
#Order拒绝,允许
所有允许
要求所有批准
< /文件>
< /目录>
#-------------------------------------------------
和仍然在/ var /日志/的httpd / error_log中:
[太阳13年4月3日:43:17.389404 2016年] [:错误] [PID 4753]在/ var / WWW /站点2
[太阳13年4月3日:43:17.390560 2016年] [:错误] [PID 4753]内部服务器错误:/痘疤/测试/
[太阳13年4月3日:43:17.390593 2016年] [:错误] [PID 4753]回溯(最近通话最后一个):
[太阳13年4月3日:43:17.390602 2016年] [:错误] [PID 4753]文件/usr/lib/python2.7/site-packages/django/core/handlers/base.py,149线,在get_response
[太阳13年4月3日:43:17.390609 2016年] [:错误] [PID 4753]响应= self.process_exception_by_middleware(即要求)
[太阳13年4月3日:43:17.390634 2016年] [:错误] [PID 4753]文件/usr/lib/python2.7/site-packages/django/core/handlers/base.py,147线,在get_response
[太阳13年4月3日:43:17.390643 2016年] [:错误] [PID 4753]响应= wrapped_callback(请求,* callback_args,** callback_kwargs)
[太阳13年4月3日:43:17.390650 2016年] [:错误] [PID 4753]文件/var/www/site2/pock/views.py57行,测试
[太阳13年4月3日:43:17.390656 2016年] [:错误] [PID 4753] F =开放('test.txt的','W')
[太阳13年4月3日:43:17.390662 2016年] [:错误] [PID 4753] IO错误:[错误13]权限被拒绝:'test.txt的
解决
由于弗拉基米尔的建议,我没有更多的挖掘,我发现finnaly的方式。
来自Apache得到禁止移动项目/ home目录不是为我工作。
文件我想写需要绝对路径:
F =开放('/无功/网络/站点2 / test.txt的','W')
否则WSGI蟒蛇会尽量把它写在/根文件系统,因此上述错误解释
在我到底CHOWN -R 744 /无功/网络/站点2和它的工作,写文件和数据库。
看来,我已经做了其他的错误,但是,不管怎么说,现在的工作。
尝试:
CHOWN -R根:阿帕奇/路径/要/你/ WebSitePackage
我不得不用的时候在CentOS 7 httpd的部署Django的我选择了另一种方式这个问题:创建在家庭/用户/目录网站上的软件包,然后
CHOWN R的阿帕奇:阿帕奇路径/要/ WEBSITEPackage
搭配chmod -R 770路径/要/ WEBSITEPackage
在你可以试试:
CHOWN -R用户:根路径/要/ WEBSITEPackage
搭配chmod -R 770路径/要/ WEBSITEPackageCHOWN R的阿帕奇:根路径/要/ WEBSITEPackage
搭配chmod -R 770路径/要/ WEBSITEPackage
其他的单词阿帕奇在CentOS 7需要root privelegies
In my site2 Django application Apache wsgi don't have writing access for files in /var/www/site2, even if:
Below is a briefing state:
[root@nuc www]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 19 2015 21:43:13
[root@nuc www]# ls -l
total 4
drwxr-xr-x. 2 root root 6 Nov 19 23:43 cgi-bin
drwxr-xr-x. 2 root root 6 Apr 2 15:02 html
drwxrwxrwx. 6 apache apache 4096 Apr 3 16:14 site2
[root@nuc site2]# ls -l
...
drwxrwxrwx. 5 apache apache 4096 Apr 2 15:23 blog
-rwxrwxrwx. 1 apache apache 95232 Apr 3 16:09 db.sqlite3
drwxrwxrwx. 5 apache apache 4096 Apr 2 16:54 home
-rwxrwxrwx. 1 apache apache 248 Mar 19 13:56 manage.py
drwxrwxrwx. 5 apache apache 4096 Apr 3 16:13 pock
drwxrwxrwx. 2 apache apache 4096 Apr 3 14:45 site2
[root@nuc www]# sestatus
SELinux status: disabled
httpd.conf ...
#-------------------------------------------------
WSGIScriptAlias / /var/www/site2/site2/wsgi.py
WSGIPythonPath /var/www/site2/
Alias /static/ /var/www/site2/blog/static/
Alias /static2/ /var/www/site2/home/static/
Alias /static3/ /var/www/site2/pock/static/
<Directory /var/www/site2/blog/static/>
Require all granted
</Directory>
<Directory /var/www/site2/home/static/>
Require all granted
</Directory>
<Directory /var/www/site2/pock/static/>
Require all granted
</Directory>
<Directory /var/www/site2/site2/>
<Files wsgi.py>
#Order deny,allow
Allow from all
Require all granted
</Files>
</Directory>
#-------------------------------------------------
And still in /var/log/httpd/error_log:
[Sun Apr 03 13:43:17.389404 2016] [:error] [pid 4753] /var/www/site2
[Sun Apr 03 13:43:17.390560 2016] [:error] [pid 4753] Internal Server Error: /pock/test/
[Sun Apr 03 13:43:17.390593 2016] [:error] [pid 4753] Traceback (most recent call last):
[Sun Apr 03 13:43:17.390602 2016] [:error] [pid 4753] File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
[Sun Apr 03 13:43:17.390609 2016] [:error] [pid 4753] response = self.process_exception_by_middleware(e, request)
[Sun Apr 03 13:43:17.390634 2016] [:error] [pid 4753] File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
[Sun Apr 03 13:43:17.390643 2016] [:error] [pid 4753] response = wrapped_callback(request, *callback_args, **callback_kwargs)
[Sun Apr 03 13:43:17.390650 2016] [:error] [pid 4753] File "/var/www/site2/pock/views.py", line 57, in test
[Sun Apr 03 13:43:17.390656 2016] [:error] [pid 4753] f = open('test.txt', 'w')
[Sun Apr 03 13:43:17.390662 2016] [:error] [pid 4753] IOError: [Errno 13] Permission denied: 'test.txt'
SOLVED
Thanks to suggestions of Volodymyr I did more digging and I find the way finnaly.
Moving project in /home directory was not working for me: getting "Forbidden" from Apache.
The file I was trying to write need absolute path:
f = open('/var/www/site2/test.txt', 'w')
Otherwise wsgi python would try to write it in "/" root file system, so the error above is explained
In the end I did chown -R 744 /var/www/site2 and it worked, writing to files and database.
Seems that I have done other error but, anyway, it works now.
Try to :
chown -R root:apache /Path/To/You/WebSitePackage
I had this problem when deploy Django with httpd on Centos 7. I chose other way : Create WEBSITE Package in home/user/ directory, then
chown -R apache:apache Path/To/WEBSITEPackage
chmod -R 770 Path/To/WEBSITEPackage
After You can try :
chown -R user:root Path/To/WEBSITEPackage
chmod -R 770 Path/To/WEBSITEPackage
chown -R apache:root Path/To/WEBSITEPackage
chmod -R 770 Path/To/WEBSITEPackage
Other words apache on centos 7 need root privelegies
这篇关于CentOS的7阿帕奇WSGI写入文件权限被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!