在 Apache 上托管 Django

hosting Django on Apache

提问人:Waly 提问时间:4/2/2020 最后编辑:Waly 更新时间:4/12/2021 访问量:533

问:

我正在按照教程尝试在 apache 服务器上托管 Django,现在当我最终使用 cmd 安装 mod_wsgi 时,我尝试使用命令:

mod_wsgi-express module-config

现在我收到另一个错误 - 这是:

  Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

(Adwy) C:\Users\Adwy>mod_wsgi-express module-config
Traceback (most recent call last):
  File "C:\Users\Adwy\AppData\Local\Programs\Python\Python35\Scripts\mod_wsgi-express-script.py", line 11, in <module>
    load_entry_point('mod-wsgi==4.5.20', 'console_scripts', 'mod_wsgi-express')()
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\pkg_resources\__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\pkg_resources\__init__.py", line 2859, in load_entry_point
    return ep.load()
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\pkg_resources\__init__.py", line 2450, in load
    return self.resolve()
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\pkg_resources\__init__.py", line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\mod_wsgi\server\__init__.py", line 24, in <module>
    from . import apxs_config
  File "c:\users\adwy\appdata\local\programs\python\python35\lib\site-packages\mod_wsgi\server\apxs_config.py", line 27
    LIBEXECDIR = 'C:\xampp\apache\/lib'
                    ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \xXX escape


我正在寻求帮助!

谢谢

python django apache wsgi

评论


答:

0赞 Steven Graham 4/2/2020 #1

看起来您可能需要使用斜杠设置 MOD_WSGI_APACHE_ROOTDIR 环境变量。示例: “C:/foo/bar/apache”

看看这个问题,它看起来很相似: https://github.com/GrahamDumpleton/mod_wsgi/issues/345

评论

0赞 Waly 4/2/2020
是的,我看到了这个,并仔细检查了它,我已经将目录设置为apache文件夹,并且满足了mod_wsgi的pip安装但是,尽管消息相同,但似乎这里的这个错误与Github上解决的错误不同。
0赞 Waly 4/2/2020
readthedocs.org/projects/modwsgi/downloads/pdf/develop 的 mod_wsgi 文档中提到了一些关于手动复制文件以成功安装的内容,我也在 Github 上看到了 GrahamDumpleton 对此的一些评论,但是:我不确定这是否是这里的问题,我不明白我需要复制哪些文件以及在哪里复制。我真的需要理解这一点并让它运行起来,
0赞 Steven Graham 4/3/2020
输出是什么: ?echo %MOD_WSGI_APACHE_ROOTDIR%
0赞 Waly 4/3/2020
嗨,史蒂文,我试图回显目录,它又回来了 - 我希望我能解决这个问题,因为我想尝试测试服务器%MOD_WSGI_APACHE_ROOTDIR%
0赞 Waly 4/3/2020
好的,当我尝试按照您上面的建议使用正斜杠时,然后再次尝试,我得到了目录的清晰路径:,但是,现在我尝试再次安装mod_wsgi正确的目录中,但它通知我,我怎样才能卸载它以正确重新安装它?再次感谢您的帮助echo %MOD_WSGI_APACHE_ROOTDIR%C:/xampp/apache/Requirement already satisfied: ..
1赞 AzureIP 4/12/2021 #2

看起来您可能需要使用正斜杠设置 MOD_WSGI_APACHE_ROOTDIR 环境变量。 例:

"C:/foo/bar/apache"

若要应用此更改,需要重新安装 mod_wsgi:

pip uninstall mod_wsgi
pip install mod_wsgi