【问题标题】:Can't deploy application无法部署应用程序
【发布时间】:2021-01-18 04:36:01
【问题描述】:

我的 Django 应用程序部署遇到问题。我遵循了几个教程(最后一个:https://www.youtube.com/watch?v=APCQ15YqqQ0)来帮助我部署我的应用程序,我不明白为什么我的处理程序不起作用。这是我的 web.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python FastCGI" 
      path="*" 
      verb="*" 
      modules="FastCgiModule" 
      scriptProcessor="c:\users\xxx\documents\github\app_folder\scripts\python.exe|c:\users\xxx\documents\github\app_folder\lib\site-packages\wfastcgi.py"
      resourceType="Unspecified" 
      requireAccess="Script" />
    </handlers>
  </system.webServer>

  <appSettings>
    <add key="PYTHONPATH" value="C:\Users\xxx\Documents\GitHub\app_folder\app" />
    <add key="WSGI_HANDLER" value="app_name.wsgi.application" />
    <add key="DJANGO_SETTINGS_MODULE" value="app_name.settings" />
  </appSettings>
</configuration>

由于我的 virtualenv 在 app_folder 文件夹中,app 文件夹包含 Django 项目。

我有这条消息要输出:

Additional information about the error  :
Module     FastCgiModule
Notification       ExecuteRequestHandler
Handler    django_handler_test
Error code     0x8007010b
URL requested      http://localhost:94/
Physical Path      C:\Users\xxx\Documents\GitHub\app_folder\app
Session opening Method     Anonyme
User Session       Anonyme

我将类别名称翻译成法语

即使这可能不是一个好的做法,我也打算先在 Windows 计算机上部署它,然后再在服务器(Windows 或 Linux)上进行完整部署。现在,我真的需要在 Windows 环境中完成我的测试。感谢您的帮助和理解。

【问题讨论】:

  • 您的问题解决了吗?如果您的问题得到解决,那么我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。如果您的问题仍然存在,请尝试参考社区成员提供的解决方案。如果您还有其他问题,请告诉我们。我们将尝试提供进一步的建议来解决该问题。感谢您的理解。
  • 我没有收到答案通知...我一回家就测试!

标签: python django iis handler wfastcgi


【解决方案1】:

首先,请确保您使用的是 3.6 以上的 python 版本。另一个不需要是为所有用户安装 python 并在驱动器下设置安装文件夹,例如“C:\Python36”

在 Windows 上安装 Django:

可以使用 PIP 和 pip install django 等命令安装 Django

从用户目录获取应用程序文件夹到c盘。

启用 iis cgi 功能:

使用以下命令安装 wfastcgi:

pip install wfastcgi

配置 IIS 以运行 FastCGI 应用程序:

1) 在 iis 中选择您的网站。

2)开启处理程序映射配置功能。

3)在其中,点击Add Module Mapping...动作,并输入以下信息:

<system.webServer>
  <handlers>
    <add name="PythonHandler" path="*" verb="*" modules="FastCgiModule"
        scriptProcessor="C:\Python37-32\python.exe|C:\Python37-32\Lib\site-packages\wfastcgi.py"
        resourceType="Unspecified" requireAccess="Script"/>
  </handlers>
</system.webServer>

4)接下来,单击请求限制按钮并编辑映射选项卡。取消选中“仅当请求映射到…时才调用处理程序”复选框(否则,IIS 将无法映射它认为是 URL 请求中的子目录):

在处理程序信息对话框上单击确定。然后 IIS 将要求您确认创建一个匹配的 FastCGI 应用程序条目,您需要确认。

在 IIS 中配置 FastCGI:

1)打开iis并双击“FastCGI设置”图标

2)选择你的python可执行文件并添加以下环境变量:

名称:PYTHONPATH 值:C:appsfoo

名称:WSGI_HANDLER 值:django.core.wsgi.get_wsgi_application()

名称:DJANGO_SETTINGS_MODULE 值:django_iis_example.settings

注意:不要忘记将 iis_iusrs 和 iusr 权限分配给 python 和 site 文件夹。

https://docs.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2019

【讨论】:

  • 您好,感谢您的帮助。实际上,我的主要问题是我想同时导出我的 virtualenv,但这绝对不是最好的做法。另外,我不需要编辑 FastCGI,因为该网站已经识别出我的 web.config。我建议任何像我一样努力忘记 virtualenv 并在我的主要问题中查看教程的人:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
相关资源
最近更新 更多