2017-03-02 79 views
0

美好的一天。 我目前正在尝试使用XAMPP Apache在本地托管我的Django网站。我遵循了几个教程,但其中的一个。我想知道你能否告诉我我错过了什么或者错了什么。这里是我的Django的开发站点的安装包的规格:XAMPP Apache安装后无法正常工作mod_wsgi

  • 的Python = 2.7.12,32位
  • 阿帕奇= 2.4,32位
  • Visual C++版本9
  • OS :Windows 7的64位

这里是我遵循的程序:

  1. https://code.google.com/archive/p/modwsgi/downloads下载mod_wsgi。我试过[mod_wsgi-py26-vc9.so,mod_wsgi-py27-vc9.so,mod_wsgi-win32-ap22py27-3.3.so和mod] **,但似乎没有任何效果。

  2. 重命名文件的mod_wsgi到mod_wsgi.so并将其保存到C:通过添加

    LoadModule wsgi_module modules/mod_wsgi.so 
    
/XAMPP /阿帕奇/模块

  • 运行XAMPP和编辑apache的httpd.conf文件

    我也试过

    LoadModule mod_wsgi modules/mod_wsgi.so 
    

    但是仍然有同样的结果。即使在重新启动XAMPP和机器本身后,XAMPP也不会显示任何错误,但不会运行Apache。我也尝试以管理员权限运行应用程序,但它仍然无法运行。除Apache外,其他XAMPP模块正在工作。

  • +0

    不要从网站上使用任何东西,它是为你添加的mod_wsgi在你的Python安装的应用程序旧的东西,但不能删除,因为谷歌不允许它。请阅读http://stackoverflow.com/a/42307082/128141中的说明并自行构建。您可能需要将''MOD_WSGI_APACHE_ROOTDIR''设置为''C:/ xampp/apache''。你仍然可以使用Python 2.7。至少我会推荐Python 3.5。 –

    +0

    嗨,先生!你已经遵循了你建议要做的步骤并安装了mod_wsgi。该mod_wsgi的-Express模块​​,配置生成的LoadModule路径{C:/ python27/lib目录/站点包/ mod_wsgi的/服务器/ mod_wsgiNone}在Apache和我在httpd.conf中添加,重新开始我的Apache,但它仍然不是加工。 – jonilyn2730

    +0

    如果这一行字面意思就是这样,那么它与你正在使用的那个旧版本的Python版本无法正常工作。目录''c:/ python27/lib/site-packages/mod_wsgi/server/mod_wsgi''中文件的名称是什么?应该有一个以''mod_wsgi''开始并以'.pyd''结尾的文件。这是该文件的路径,它应该是“LoadModule”的参数。我不确定为什么它会输出一个旧的Python版本的字典表示。它应该只是文件路径的单个参数,无大括号等。 –

    回答

    0

    我已经通过下载二进制文件the author's GitHub account并构建了我自己的二进制文件来解决了这个问题。为此,我需要提取下载的zip文件并打开win32文件夹并阅读README.rst以获取说明。从指令

    摘录:

    1. 知道了窗户和Python版本使用的是(在我的情况的Windows 7 32位和Python 2.7)
    2. 安装Microsoft C/C++适合你的Python编译器版本:
      • 的Python 2.6 - VC9
      • Python 2.7版 - VC9
      • 的Python 3.3 - VC10
      • 的Python 3.4 - VC10
    3. 启动Visual C++命令提示符:

      • 导航回提取mod_wsgi的文件,并找到适合您的在我的案件的Apache和Python(ap22py27-win32-VC9.mk的组合适当的makefile )。如果您不确定您的Apache版本是否读取了XAMPP或只是导航到本地主机的WAMP。
      • 编辑.mk文件,并定义APACHE_ROOTDIR和PYTHON_ROOTDIR正确的路径。例如:

        APACHE_ROOTDIR = C:\xampp\apache

        PYTHON_ROOTDIR = C:\Python27

      • nmake -f apXYpyXY-winNN-VC?.mk install运行。在每个 的情况下,用“XY”代替正在使用的Apache和Python版本。用'32'或'64'替代'NN' 并替换'?' '9'或'10'。例如:nmake -f ap22py27-win32-VC9.mk install。该行构建的mod_wsgi的针对您的平台,并将其安装到modules目录Apache安装的

      • 添加下面一行在你的WAMP/XAMPP的http.conf:LoadModule wsgi_module modules/mod_wsgi.so

        WSGIPythonHome "C:/Python27"

        WSGIPythonPath "ProjectPath"

        WSGIApplicationGroup "%{GLOBAL}"

        WSGIPassAuthorization "On"

      • 重新启动Apache或您的计算机,你是好去。

    注:没有必要,因为它已经安装在你的Apache服务器

    +0

    win32目录中的内容已过时,请不要使用它。 ''pip install''方法是实现它的更好的方法,并且现在只能在Windows上以任何方式支持。问题在于,对于某些人来说,mod_wsgi-express module-config的输出是错误的。找出“pyd''文件的正确路径并使用它。可能只是将''None''换成''.pyd''。本来希望你坚持把它排序,使用mod_wsgi邮件列表进行讨论。 StackOverflow是最需要帮助的地方,需要进行讨论。 –

    +0

    猜测原因仍然存在问题是Python DLL需要强制加载。更近期的''mod_wsgi-express module-config''将产生一个''LoadFile''指令来做到这一点。 –

    +0

    谢谢,先生。我已经在3个月前使用这种方法安装了mod_wsgi,而且它现在仍然可以正常工作。 3个月前(在Lib/site-packages中生成一个空目录)执行pip安装结果到一个空文件也许是因为我使用的是Python的旧版本(v2.4)。我只是发布这个,以防这种方法与其他人一起工作。 – jonilyn2730

    相关问题