- 36
- 0
迫于业务需要在win server2008+IIS7环境装配django环境,Python相关库安装正常,django runserver运行正常。
安装好wfastcgi,在django项目根目录添加了web.config,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="D:\wwwroot\yzf\MyDjango\MyDjango" />
<add key="DJANGO_SETTINGS_MODULE" value="MyDjango.settings" />
</appSettings>
</configuration>
运行网站出现500错误,把python目录加入iis_User的全部权限,500错误解决后出现403错误
HTTP 错误 403.14 - Forbidden
Web 服务器被配置为不列出此目录的内容。
模块DirectoryListingModule
通知ExecuteRequestHandler
处理程序StaticFile
错误代码0x00000000
请求的 URLhttp://xxx.xxx.xxx.xxx:8090/
物理路径D:\wwwroot\yzf\MyDjangoMyDjango
登录方法匿名
登录用户匿名
求问我是不是哪一步做错了或者做漏了?实在是不熟悉IIS...求问大手子
- 共 0 条
- 全部回答
-
稚与最初 普通会员 1楼
403 Forbidden通常表示用户试图访问的资源(在你的例子中,可能是你的 Django 应用程序)被阻止。这可能是由于以下原因:
- 权限问题:
- 在你的 Django 应用程序中,你可能需要具有特定的权限才能访问某个资源。例如,如果一个文件或目录需要在 Django 环境中读取或写入,你可能需要在项目的
settings.py文件中添加DRIVER畏选项,并设置DRIVER畏 = 'django.contrib.auth.backends.RemoteUser'来启用远程用户身份验证。如果你的用户没有足够的权限访问某个资源,或者用户已经超出了你项目允许的访问权限范围,你可能会遇到 403 错误。 - 在你的网站配置文件
urls.py中,你可能需要设置相应的 URL 连接,该连接与你需要使用的资源(例如,某个文件或目录)的 URL 相匹配。如果某个 URL 路径没有包含特定的 URL,或你设置了正确的 URL 连接,但用户没有相应的权限访问该资源,你可能会遇到 403 错误。 -
你可能需要检查你的 Django 应用程序和其依赖项(如
settings.py、urls.py、templates、static等)的权限设置,确保它们在没有权限访问资源的情况下仍然可以运行。 -
网站架构问题:
- 如果你的网站使用了 RESTful 或 API 架构,你的 Django 应用程序可能需要使用特定的授权模型来检查用户是否具有访问资源的权限。这通常涉及到创建一个权限模型(如
UserRole),并在 Django 中使用Permission或django.contrib.auth.models.User.has_perm()函数来检查用户是否有相应的权限。如果你的User对象没有相应的方法,或者你的模型设计不正确,可能会导致 403 错误。 - 如果你的 Django 应用程序和其依赖项(如
settings.py、urls.py、templates、static等)的权限设置不正确,或者没有包含必要的权限字段,例如user或role,你可能会遇到 403 错误。 -
你可能需要检查你的 Django 应用程序和其依赖项的架构设计,确保它们在没有权限访问资源的情况下仍然可以运行,并且不会导致 403 错误。
-
网络配置问题:
- 如果你的网站位于网络上的服务器或云服务中,你可能需要配置正确的网络配置以允许 Django 应用程序访问特定的资源。这可能涉及到在服务器或云服务的防火墙或网络防火墙中配置路由规则,或者使用虚拟服务器等技术来隔离 Django 应用程序和 Web 服务之间的网络访问。
-
如果你的网站在本地开发和测试环境(如本地主机或本地开发服务器)上正常运行,但在 Web 服务器(如 Apache 或 Nginx)上遇到 403 错误,可能是因为 Nginx 或 Apache 的默认规则阻止了 Django 应用程序的请求。在这种情况下,你需要调整 Nginx 或 Apache 的默认规则以允许 Django 应用程序访问特定的资源。
-
数据库权限问题:
- 如果你的 Django 应用程序需要读取或写入数据库中的数据,你可能需要具有数据库访问权限。这可能涉及到在数据库连接字符串中设置数据库用户名和密码,或者在 Django 的
settings.py文件中配置数据库的连接选项。例如,如果你的数据库是 MySQL,你可能需要设置DATABASES = {'default': dj_database_url.parse('mysql://username:password@localhost:3306/mydatabase')},并在 Django 的settings.py文件中添加DATABASES = {'default': dj_database_url.parse('mysql://username:password@localhost:3306/mydatabase', user='admin', password='password', host='localhost', database='mydatabase')}来启用数据库连接。如果你的数据库有其他数据库驱动,你可能需要相应地设置DATABASES = {'default': dj_database_url.parse('postgresql://username:password@localhost:5432/mydatabase', user='admin', password='password', host='localhost', database='mydatabase')},并使用INSTALLED_APPS和DJANGO_DBUS_CONNECTIONS设置数据库连接选项。
如果上述检查都没有解决问题,可能需要进一步检查你的项目配置和 Django 应用程序代码,以确定具体的问题原因。以下是一些可能的步骤和建议:
- 检查项目配置:
- 确保你已将 Django 应用程序部署到具有适当权限的服务器或云服务中,例如 Nginx 或 Apache。在这些服务器或云服务中,确保你已经设置正确的端口(例如,8080 或 8081)和监听模式(例如,
http)。 - 确保你已正确配置了 Django 服务器端和 Web 服务器(如 Apache 或 Nginx)的域名和端口。在 Nginx 或 Apache 的配置文件中,确保你设置了正确的域名解析和端口映射,或者在
http.conf或server.conf文件中添加正确配置的httpd或nginx服务器配置。 - 确保你的 Django 应用程序和其依赖项(如
settings.py、urls.py、templates、static等)的配置正确。例如,确保你已添加了DRIVER畏选项,并设置了正确的 URL 连接,以及数据库驱动的配置。 -
确保你的 Django 应用程序和其依赖项(如
INSTALLED_APPS和DJANGO_DBUS_CONNECTIONS)的配置正确。例如,确保你已添加了INSTALLED_APPS,并配置了数据库驱动的连接选项。 -
检查 Django 应用程序代码:
-
确保你的 Django 应用程序具有访问数据库所需的权限。这可能涉及到在
models.py文件中定义数据库模型,或在settings.py文件中配置数据库连接选项。例如,如果你的模型中使用了db.Model,你可能需要在models.py文件中添加DRIVER畏 = 'django.db.backends.mysql'来启用数据库连接。如果你的模型中使用了db.Model和db.ForeignKey,你可能需要在settings.py文件中配置MIDDLEWARE_CLASSES和DATABASES选项。 -
检查 URL 连接:
- 确保你的 Django 应用程序和其依赖项(如
urls.py、templates、static等)的 URL 连接与需要访问的资源(例如,某个文件或目录)的 URL 相匹配。如果 URL 路径没有包含特定的 URL,或你设置了正确的 URL 连接,但用户没有相应的权限访问该资源,你可能会遇到 403 错误。 -
在
urls.py文件中,确保你设置了正确的 URL 连接。例如,如果你的 URL 是http://localhost:8000/myapp/files,并且你需要访问的文件位于myapp/files/目录下,你需要在urlpatterns字段中添加如下配置:python url(r'^files/', include('myapp.urls')), -
检查数据库权限:
- 确保你的 Django 应用程序和其依赖项(如
settings.py、urls.py、templates、static等)的数据库驱动具有访问数据库所需的权限。这可能涉及到在数据库连接字符串中设置数据库用户名和密码,或者在 Django 的settings.py文件中配置数据库连接选项。例如,如果你的数据库是 MySQL,你可能需要设置DATABASES = {'default': dj_database_url.parse('mysql://username:password@localhost:3306/mydatabase')},并在 Django 的settings.py文件中添加DATABASES = {'default': dj_database_url.parse('mysql://username:password@localhost:3306/mydatabase', user='admin', password='password', host='localhost', database='mydatabase')}来启用数据库连接。如果你的数据库有其他数据库驱动,你可能需要相应地设置DATABASES = {'default': dj_database_url.parse('postgresql://username:password@localhost:5432/mydatabase', user='admin', password='password', host='localhost', database='mydatabase')},并使用INSTALLED_APPS和DJANGO_DBUS_CONNECTIONS设置数据库连接选项。
如果上述步骤都没有解决问题,你可能需要进一步检查你的项目代码、数据库驱动以及 Nginx 或 Apache 的配置,以确定具体的问题原因。建议在代码审查、数据库查询和调试等方面进行深入的检查,以找出可能的故障点并解决问题。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

