Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用apache和hgweb.wsgi在Windows上安装Mercurial服务器_Windows_Mercurial_Wsgi_Hgweb - Fatal编程技术网

使用apache和hgweb.wsgi在Windows上安装Mercurial服务器

使用apache和hgweb.wsgi在Windows上安装Mercurial服务器,windows,mercurial,wsgi,hgweb,Windows,Mercurial,Wsgi,Hgweb,我的第一篇文章在这里发表,并寻求建议。几天来,我一直在努力让Mercurial服务器在我的工作中运行起来。但我也因为同样的错误而惨败。由于我无法控制的原因,它必须通过Apache访问 我目前有: Windows Server 2008 R2 Apache2.2 Python 2.7 Mercurial 2.7.2 用于测试的本地存储库(在C:\Repositories\repo1中) mod_wsgi 我的hgweb.config和hgweb.wsgi位于C:\Repositories中,与

我的第一篇文章在这里发表,并寻求建议。几天来,我一直在努力让Mercurial服务器在我的工作中运行起来。但我也因为同样的错误而惨败。由于我无法控制的原因,它必须通过Apache访问

我目前有:

  • Windows Server 2008 R2
  • Apache2.2
  • Python 2.7
  • Mercurial 2.7.2
  • 用于测试的本地存储库(在C:\Repositories\repo1中)
  • mod_wsgi
我的hgweb.config和hgweb.wsgi位于C:\Repositories中,与httpd.conf一起,如下所示:

hgweb.config

[paths]
/ = C:/Repositories/*

[web]
style = coal
push_ssl = false
hgweb.wsgi

config = "C:\Repositories\hgweb.config"
#import sys; sys.path.insert(0, "C:\Program Files (x86)\Mercurial")
import sys; sys.path.insert(0, "C:\Python27\Lib\site-packages\mercurial")
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb
application = hgweb(config)
httpd.conf

<VirtualHost *>
    ServerName hg.example.net
    ServerAdmin me@myplace.com
    DocumentRoot "C:/Repositories"
    LogLevel debug
    ErrorLog C:/Repositories/error_log
    CustomLog C:/Repositories/access_log common
    LogLevel debug

    WSGIScriptAlias  /hg  "C:/Repositories/hgweb.wsgi"
    #WSGIScriptAlias  /  "C:/Repositories/Hello World.wsgi"

    <Directory C:/Repositories>
        Order allow,deny
        Allow from all      
        AllowOverride All
        AddHandler wsgi-script .wsgi
    </Directory>
</VirtualHost>

ServerName hg.example.net
服务器管理员me@myplace.com
DocumentRoot“C:/Repositories”
日志级调试
错误日志C:/Repositories/error\u log
CustomLog C:/Repositories/access\u log common
日志级调试
WSGIScriptAlias/hg“C:/Repositories/hgweb.wsgi”
#WSGIScriptAlias/“C:/Repositories/Hello World.wsgi”
命令允许,拒绝
通融
允许超越所有
AddHandler wsgi script.wsgi
简单的helloworld.wsgi工作得很好,这对我来说意味着Apache、Python和mod_wsgi都能很好地协同工作。但每当我使用hgweb.wsgi时,我都会收到一个内部服务器错误。。。接触me@myplace.com... 虽然不工作,但这意味着它至少正在读取和使用httpd.conf中的ServerAdmin

<VirtualHost *>
    ServerName hg.example.net
    ServerAdmin me@myplace.com
    DocumentRoot "C:/Repositories"
    LogLevel debug
    ErrorLog C:/Repositories/error_log
    CustomLog C:/Repositories/access_log common
    LogLevel debug

    WSGIScriptAlias  /hg  "C:/Repositories/hgweb.wsgi"
    #WSGIScriptAlias  /  "C:/Repositories/Hello World.wsgi"

    <Directory C:/Repositories>
        Order allow,deny
        Allow from all      
        AllowOverride All
        AddHandler wsgi-script .wsgi
    </Directory>
</VirtualHost>
error.log声明hgweb.wsgi不能作为Python模块加载(下面的输出包括日期、ip等):

mod_wsgi(pid=4764):无法将目标wsgi脚本“C:/Repositories/hgweb.wsgi”作为Python模块加载。
mod_wsgi(pid=4764):处理wsgi脚本“C:/Repositories/hgweb.wsgi”时发生异常。
回溯(最近一次呼叫最后一次):
文件“C:/Repositories/hgweb.wsgi”,第19行,在
应用程序=hgweb(配置)
文件“C:\\Python27\\lib\\site packages\\mercurial\\hgweb\\\\\uuu init\uuu.py”,第26行,在hgweb中
返回hgwebdir_mod.hgwebdir(配置,baseui=baseui)
文件“C:\\Python27\\lib\\site packages\\mercurial\\hgweb\\hgwebdir\u mod.py”,第89行,在\uu init中__
self.refresh()
文件“C:\\Python27\\lib\\site packages\\mercurial\\hgweb\\hgwebdir\u mod.py”,第98行,刷新
u=ui.ui()
文件“C:\\Python27\\lib\\site packages\\mercurial\\ui.py”,第45行,在\uuu init中__
对于scmulti.rcpath()中的f:
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第86行,在\uu getattribute中__
自加载()
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第58行,在加载中
mod=_原始端口(头部、全局、局部)
文件“C:\\Python27\\lib\\site packages\\mercurial\\scmutil.py”,第274行,在
类vfs(抽象vfs):
vfs中第302行的文件“C:\\Python27\\lib\\site packages\\mercurial\\scmutil.py”
@util.propertycache
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第86行,在\uu getattribute中__
自加载()
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第58行,在加载中
mod=_原始端口(头部、全局、局部)
文件“C:\\Python27\\lib\\site packages\\mercurial\\util.py”,第27行,在
cachestat=platform.cachestat
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第86行,在\uu getattribute中__
自加载()
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第58行,在加载中
mod=_原始端口(头部、全局、局部)
文件“C:\\Python27\\lib\\site packages\\mercurial\\windows.py”,第36行,在
posixfile.\uxu doc\uxu=osutil.posixfile.\uxu doc__
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第86行,在\uu getattribute中__
自加载()
文件“C:\\Python27\\lib\\site packages\\mercurial\\demandimport.py”,第58行,在加载中
mod=_原始端口(头部、全局、局部)
ImportError:DLL加载失败:%1不是有效的Win32应用程序。
任何帮助或想法都将受到欢迎


提前感谢。

如果可能的话,请尝试HgLab(我是其作者):花了半天时间解决apache拒绝访问windows上wsgi脚本的问题。事实证明,所有文档(包括类似本文的文章)都使用Apache2.2配置,2.4使用不同的配置来控制它。