【问题标题】:XAMPP with WSGI not rendering django page带有 WSGI 的 XAMPP 不呈现 django 页面
【发布时间】:2022-01-08 20:48:31
【问题描述】:

我正在尝试在 XAMPP Apache 服务器上运行 django,并按照here 中提到的步骤进行操作。以下是 Apache 配置中的更改:[![在此处输入图像描述][1]][1]

当在下面的浏览器中访问应用程序时,结果而不是 django 页面: [![在此处输入图片描述][2]][2]

请帮助我在此缺少什么?

@Razenstein:以下是 Apache 日志中的错误:

AH02102: C:/xampp/htdocs/polls/mysite/mysite/wsgi.py is not executable; ensure interpreted scripts have "#!" or "'!" first line (9)Bad file descriptor: [client 127.0.0.1:58357] AH01222: don't know how to spawn child process: C:/xampp/htdocs/polls/mysite/mysite/wsgi.py

应用程序运行良好,内置 python 服务器。更正别名后得到“500 | 内部服务器错误” [1]:https://i.stack.imgur.com/w2R0Y.png [2]:https://i.stack.imgur.com/vl8Da.png

【问题讨论】:

  • 你定义了 WSGIScriptAlias /mysite " ....." 这意味着只有对 servername/mysite/ 的请求被路由到你的 django 应用程序
  • 如果 /mysite 未定义,则出现无法连接的错误。所以当这是定义的目录浏览出现了。
  • 是的,但目录列表是纯 Apache 响应,您无需 Apache 调用 Django。所以请正确使用别名并发布错误消息。请将 Apache 错误日志添加到您的帖子中。
  • 我还建议在安装过程中不要通过 XAMPP 而是从命令行“httpd.exe”启动 Apache,因为您在 Apache 的早期启动阶段可能会收到的一些错误消息不会出现在 error.log 中并且没有出现在 XAMPP 窗口中。一旦 Apache 使用 mod_wsgi 正确运行,我们就可以查看是否调用了 wsgi.py,如果是,则会出现哪个错误消息。如果您使用“python manage.py runserver”启动您的应用程序是否正常运行?
  • @Razenstein 感谢您的回复。该帖子已根据您的 cmets 进行了更新。

标签: django apache mod-wsgi django-wsgi


【解决方案1】:

好的,此错误消息表明 Apache 尝试将 wsgi.py 作为 cgi 脚本而不是 python 执行。一个可能的原因是,您尝试在 Apache 上部署您的应用程序时使用了一些仍在 httpd.conf 或 vhosts-httpd.conf 中的错误命令。如果您遵循一个(糟糕的?)教程但没有成功,切换到另一个并且忘记清理第一次试用的代码(只是猜测!),通常会发生这种情况。那里有各种奇怪的教程,有时也很难理解它们是用于 Windows 还是 Unix。

类似的事情会导致这种行为:

Alias / C:/xampp/htdocs/polls/mysite/mysite/wsgi.py

<Directory C:/xampp/htdocs/polls/mysite/mysite>
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .asp .py
    Require all granted 
</Directory>

如果您留下了类似的东西,请在您的 httpd.conf 和 vhosts-httpd.conf 中搜索。

你的“WSGIScriptAlias ....”被那个覆盖而不是活动的。

【讨论】:

  • 感谢@Razenstein 的回答。是的,几天前完成了类似的配置,但它仍在 conf 文件中。 wsgi.py 文件几乎没有变化。它现在正在工作。
猜你喜欢
  • 2012-04-22
  • 2017-11-22
  • 2019-05-02
  • 2021-03-23
  • 2023-04-01
  • 2012-11-21
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
相关资源
最近更新 更多