最近,我一直试图在CentOS服务器上使用< code>mod_wsgi部署django站点,但到目前为止,当我试图通过我的笔记本电脑访问Django站点时,网页只显示< code >错误:403禁止您没有权限在此服务器上访问/
除了阅读所有显而易见的文档之外,我还研究了前面的这些问题:
环境:
盛度 6.5
蟒蛇 2.6
姜戈 1.6
我正在运行以下版本的apache:
# apachectl -V
Server version: Apache/2.2.15 (Unix)
Server built: Apr 3 2014 23:56:16
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
我使用Yum安装了< code>mod_wsgi,并确认它已安装在服务器上:
# httpd -M | grep wsgi
wsgi_module (shared)
Syntax OK
我的httpd.conf wsgi配置片段如下:
#
# Add WSGI configuration
#
WSGIScriptAlias / /usr/local/django/basic/basic/apache/wsgi.py
WSGIPythonPath /usr/local/django/basic/
WSGIDaemonProcess ###.###.###.###
WSGIProcessGroup ###.###.###.###
<Directory /usr/local/django/basic/basic/apache>
<Files wsgi.py>
Options FollowSymLinks
Order deny,allow
Allow from all
</Files>
</Directory>
最后我的wsgi.py脚本是:
"""
WSGI config for basic project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
"""
import os
import sys
path = "/usr/local/django/basic/basic/apache"
if path not in sys.path:
sys.path.append(path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "basic.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
错误日志的输出:
[Fri Oct 24 14:10:43 2014] [error] [client (redacted)] Symbolic link not allowed or link target not accessible: /usr/local/django/basic
[Fri Oct 24 14:11:25 2014] [error] [client (redacted)] Symbolic link not allowed or link target not accessible: /usr/local/django/basic
[Fri Oct 24 14:14:02 2014] [error] [client (redacted)] Symbolic link not allowed or link target not accessible: /usr/local/django/basic
笔记:
可能你忘记设置DocumentRoot了。你应该让DocumentRoot可以被apache用户读写。就像这样做:
sudo chown -R www_default:www_default /path/to/you/DocumentRoot
你也可以这样做:
sudo chmod -R 755 /path/to/your/DocumentRoot
抱歉,我发这个有点晚了。这是对我的apache配置的最终修复,最终成功了。
WSGIScriptAlias /basic /var/www/django/basic/basic/wsgi.py
WSGIPythonPath /var/www/django/basic/
<Directory /var/www/django/basic/basic>
Options FollowSymLinks
<Files wsgi.py>
Order allow,deny
Allow from all
</Files>
</Directory>
Alias /static /var/www/django/basic/basic/static
这是我的wsgi.py文件在python中的最终版本。这里的关键代码行是< code>PYTHON_EGG_CACHE。该变量默认设置为一个不存在的目录。我将它设置为< code>/tmp/。python-eggs确保< code >。python-eggs拥有apache用户对它的读/写权限,无论您将该文件放在哪里。
"""
WSGI config for basic project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
"""
import os
import sys
path = "/usr/local/django/basic/basic/apache"
if path not in sys.path:
sys.path.append(path)
os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "basic.settings")
#print os.getenv("DJANGO_SETTINGS_MODULE")
#print os.getenv("PYTHON_EGG_CACHE")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
旁注:
问题内容: 我在主目录中创建了Django项目,因此它位于主目录中。 设定 Contents of Contect of Error in Contents of Permissions of Permissions of Permissions of 我在浏览器上遇到错误 请帮助我进行配置。 编辑 目前,我正在通过改变前进 至 因此,这肯定与文件配置有关,但我担心的是,我在该文件中仅添加了5行,
问题内容: 有人可以解释守护程序模式下的apache mod_wsgi和线程模式下的django fastcgi之间的区别。我认为它们都使用线程进行并发。 假设我将nginx用作Apache mod_wsgi的前端。 更新: 我正在比较在fastemon中内置的django(./manage.py method = threaded maxchildren = 15)和mod_wsgi在“守护程序
问题内容: 我正在尝试将jQuery集成到我使用Django框架制作的Web应用程序中。但是,我很难打电话给上班族。我的模板文件包含处理ajax调用的html和javascript形式,如下所示: 我应该处理的ajax调用看起来像: 我试图遵循有关跨站点请求伪造保护的官方文档,并且还研究了解决类似问题的一些stackoverflow问题。我已经将包含在我的模板文件中,但是它似乎仍然无法正常工作。我
问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”
问题内容: 我有以下代码: 但是,它引发此错误: 谁能告诉我为什么会这样吗? 问题答案: 我相信这是因为相对的路径。“ ../”被认为是恶意的。首先解析本地路径,然后调用。您可以事先解析路径。
我有这个代码: 但是,它会抛出以下错误: 有人能告诉我为什么会这样吗?