如何解决在 Apache httpd 服务器中部署两个 Django 应用程序的正确方法?
我有一个使用 python 3.8.x
和 python 3.9.x
版本创建的两个 Django 应用程序。
现在我需要在 Windows 机器的同一系统中的 apache 服务器中部署这两个应用程序。
我使用 mod_wsgi version 4.8.0
我尝试了一些事情,比如设置两个不同的 apache 实例以及在单个 apache 服务器中监听两个不同的端口
我得到的错误是
Python path configuration:
PYTHONHOME = (not set)
PYTHONPATH = (not set)
program name = 'python'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = 'C:\\Apache\\bin\\httpd.exe'
sys.base_prefix = 'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38'
sys.base_exec_prefix = 'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38'
sys.executable = 'C:\\Apache\\bin\\httpd.exe'
sys.prefix = 'C:\\Users\\Goku\\AppData\\Local\\Programs\\Python\\Python38'
sys.exec_prefix = 'C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python38'
sys.path = [
'C:\\Users\\Goku\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip','.\\DLLs','.\\lib','C:\\Apache\\bin',]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
解决方法
如果你想在 Windows 下的一个 Apache 服务器中运行 django 应用程序,你需要在 httpd-vhosts.conf 中将这两个应用程序定义为虚拟主机
但是您不能为这两个应用程序定义不同的环境,因为 WSGIPythonHome 只能在 httpd.conf 上为所有虚拟主机设置(不幸的是)
但是您可以使用 2 个不同的 httpd.conf 启动 2 个 apache 实例,并在“listen”指令中更改端口。您还需要关注 httpd-ssl.conf 中包含的 SSL 端口 443。
您发布的错误消息与端口等无关。您的 django 相关定义在 httpd.conf 中看起来如何?也请从命令行启动 httpd 进行调试,例如XAMPP 在 Apache 启动时不显示错误消息,只是失败。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。