Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在 IIS 上搭建 mercurial server

如何在 IIS 上搭建 mercurial server

作者头像
葡萄城控件
发布于 2018-01-10 03:35:58
发布于 2018-01-10 03:35:58
1.8K00
代码可运行
举报
运行总次数:0
代码可运行

mercurial server

对于代码管理工具,更多的人可能更熟悉 Git 一些(Git 太火了)。其实另外一款分布式代码管理工具也被广泛的使用,它就是 mercurial。多人协作时,最好能够通过创建一个 mercurial server 对用户进行权限认证,同时也会方便持续集成

关于创建 mercurial server 的步骤,mercurial 官方的 wiki 有说明,网上也有很多朋友分享了自己的创建过程。但笔者在创建的过程中还是颇费了一番周折才最终成功,所以也在此分享一下自己的经验,希望对朋友们有所帮助。

一、环境及软件安装

笔者使用的操作系统为 Server2012R2 x64 Standard 中文版。

首先,在安装其他工具前,需要先安装 IIS。安装 IIS 时需要注意,一定要把 CGI 和 ISAPI 这两个选项都勾选上。

然后,安装 Python,使用默认设置安装 python 2.7.x。

最后,安装 mercurial server,请从这里在这里下载 mercurial server 的安装包并安装,安装完成后检查 C:\Python27\Lib\site-packages\mercurial 目录是否被正确安装!

注意,python 和 sercurial server 必须保持相同的架构,不要一个安装 x86 另一个安装 x64。

二、设置 IIS 服务器支持 python 模块

在 IIS 管理器中选择 IIS server,双击”ISAPI 和 CGI 限制”,添加一项新的扩展:

喜欢使用命令行的同学也可以通过一行命令直接搞定:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Windows\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /+"[path='C:\Python27\python.exe -u %22%s%22',description='Python',allowed='True']"

三、创建网站

在 IIS 中创建一个新的网站,端口绑定81(80端口已被默认网站占用)。在网站的根目录中添加 web.config 文件,web.config 文件的内容为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="C:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
  </system.webServer>
</configuration>

需要注意文件中 python.exe 的路径,请根据自己机器上的安装目录进行配置。

网站的基本设置已经完成,下面写个简单的测试文件检查一下网站能否正常工作。

在网站的根目录下创建 test.cgi 文件,文件内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print 'Status: 200 OK'
print 'Content-Type: text/html'
print
print '<html><body><h1>Hello world!</h1></body></html>'

在浏览器中访问 http://localhost:81/test.cgi,如果看不到”Hello world!”,请检查前面的步骤是否执行正确。

四、配置 mercurial server

1. 在网站的根目录下添加 hgweb.config 文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[collections]
C:\repos = C:\repos

[web]
push_ssl = false
allow_push = *

2. 在网站的根目录下添加 hgweb.cgi 文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "xxxxx\hgweb.config"

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

注意,请按实际情况配置 config 的路径。

这就 OK 了,让我们在 c:\repos 目录下初始化一个库然后访问 http://localhost:81/hgweb.cgi 看看:

五、配置 URL 重定向

每次都要在 URL 中输入 /hgweb.cgi,一来不方便,二来总感觉怪怪的。能不能输入 http://localhost:81 就可以正常访问呢?当然可以,只需添加一个重定向的配置就可以了。

首先,需要下载并安装IIS的插件:http://www.iis.net/downloads/microsoft/url-rewrite

然后,在 web.config 文件中添加 rewrite 元素,新的 web.config 文件内容为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="C:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="rewrite to hgwebdir" patternSyntax="Wildcard">
          <match url="*" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="hgweb.cgi/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

好了,现在访问下 http://localhost:81 试试,和访问 http://localhost:81/hgweb.cgi 是一样的。

六、设置匿名访问权限

默认情况下我们已经可以使用匿名权限从服务器克隆库并进行操作了,但是当你执行 hg push 命令时会收到一个 HTTP Error 502: Bad Gateway 的错误。出现这个错误,是因为匿名用户没有修改服务器上文件的权限,所以我们需要给匿名身份验证设置一个有修改文件权限的用户。

现在就可以正常执行 push 操作了。

总结,相比其他工具的一键式安装与配置,mercurial server 的安装和配置稍显复杂。我们这里只是配置了最简单的匿名访问,并不支持 ssl,不过这在局域网中基本也够用了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-07-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
IIS 部署 Python Django
知道的,百度上搜出来的东西质量令人唏嘘。当你求助的时候多半还得靠自己,或者靠Google
py3study
2020/01/19
2K0
Windows IIS/docker+gunicorn两种方式部署django项目
本篇文章并不涉及如何使用宝塔搭建django项目,仅适用于windows和docker部署,其中docker是运行在linux平台上的,如果您想在windows上运行docker,请自行搜索如何在windows上运行docker
指剑
2023/06/10
1.3K0
Windows IIS/docker+gunicorn两种方式部署django项目
在Windows平台使用IIS部署Flask网站
在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助。
赵云龙龙
2020/02/24
5.3K0
利用Weblogic的iisproxy、iisforward插件实现IIS转发
默认情况下,IIS只能提供http重定向功能,而无法满足转发需求。 举例:http://localhost/app1 利用http重定向到 http://www.abc.com/app1 访问 http://loalhost/app1/abc.html 最终浏览器地址栏里的url会变成http://www.abc.com/app1/abc.html 这就是重定向(类似jsp中的SendRedirect),如果浏览器地址栏不变,那才叫转发(类似jsp中的forward)。 通常weblogic/jboss应用
菩提树下的杨过
2018/01/19
9810
利用Weblogic的iisproxy、iisforward插件实现IIS转发
Windows服务器使用IIS部署Vue+Flask网页项目
最近嫖了一个服务器,想把项目放到服务器上,搞了一天半啥也没弄出来,光服务器就重置了好几次,后来理清了思路,很快就部署好了,现记录一下,防止以后忘记。 我嫖的是腾讯云的轻量服务器,第一次使用,所以还是选择了自己熟悉的Windows系统。
Marigold
2022/06/17
3.9K0
Windows服务器使用IIS部署Vue+Flask网页项目
Asp.NetCore轻松学-部署到 IIS 进行托管
经过一段时间的学习,终于来到了部署服务这个环节,.NetCore 的部署方式非常的灵活多样,但是其万变不离其宗,所有的 Asp.NetCore 程序都基于端口的侦听,在部署的时候仅需要配置侦听地址、端口(一个或者多个)即可,在掌握好其托管部署原理后,剩下的就是对托管宿主的选择,通过本文,希望可以带给大家一种清晰的部署思路,选择最适合自己的服务部署方式。
梁规晓
2019/04/11
2.9K0
Asp.NetCore轻松学-部署到 IIS 进行托管
Emlog博客系统IIS 7/8伪静态
最近在论坛看到很多朋友的主机系统升级到IIS7或IIS8,所以伪静态规则不能用以前IIS6的。其实前一两年,很多国外的空间就升级到WIN2008,那时我有个网站也是折腾了半天才弄出来。 将下面的内容复制到记事本,保存为web.config放到网站根目录下。如果你的空间已经有了web.config,那么就只需要将下面<rewrite></rwrite>标签中的配置信息增加到你的web.config文件中的<system.webServer></system.webServer>配置段中即可。 以下为Em
似水的流年
2018/01/18
2.1K1
【转】配置子目录Web.config使其消除继承,用虚拟目录创建多个网站的方法
原文链接:http://www.wtnzone.com/post/2011/02/20/Set-Web-Config-to-Turn-Inheritance-Off.aspx
拓荒者IT
2019/09/25
1.7K0
宝塔面板 IIS10 利用web.config文件强制HTTPS跳转
我的服务器是用的Windows Server IIS10,也是刚刚搬过来不久,之前HTTPS是验证通过的。
德顺
2019/11/13
2.3K0
IIS7配置thinkphp5
下载rewrite_2.0_rtw_x64.msi,在IIS7的服务器上安装,安装后,重启IIS,我是用开始-运行-iisreset重启IIS的,这时再打开IIS,会发现多了一个新的模块:
黄啊码
2020/05/29
1.5K0
IIS7配置thinkphp5
Windows IIS 10如何配置自签名SSL并实现自动跳转
在配置好443端口的时候,服务器可能会无法再次启动,原因搜索了一下,说是443端口被占用。其实解决方法是直接重启即可。
繁华是客
2023/03/28
1.2K0
Windows IIS 10如何配置自签名SSL并实现自动跳转
ZBLOG PHP程序伪静态规则集合 - Apache/Nginx/IIS/Lighttpd
虽然老蒋部落采用的是WordPress搭建的,但是帮助客户企业网站,以及平时折腾的较多的还是ZBLOG CMS居多,前者稍许用户使用多一些而且插件和主题以及文档较多,对于一个可能比较长久的网站还是比较妥当的,唯一不足的是占用资源比较大。如果我们需要占用资源轻量级CMS,个人比较推荐ZBLOG PHP或者TYPECHO,两者占用资源都比较小的。
老蒋
2021/12/27
2K0
IIS 安装 pydio
Introduction In this how-to, we’ll see the installation of Pydio (Put Your Data In Orbit), which is a good alternative to Dropbox, Drive, or ownCloud. In this case, the installation will be carried on a Microsoft IIS 8 webserver, which in this case, is ins
庞小明
2018/03/09
2.5K0
LOLBITS:一款基于后台智能传输服务(BITS)的C#反向Shell
LOLBITS是一款C#反向Shell,它使用了微软后台智能传输服务(BITS)作为传输信道来与后端命令控制服务器进行交互。后台的命令控制服务器基于Flask Web应用程序构建,并且只能通过包含了有效认证Header的HTTP请求来与之通信。
FB客服
2020/02/20
1.1K0
LOLBITS:一款基于后台智能传输服务(BITS)的C#反向Shell
iis7设置http跳转https实测可用
现在我们说说iis7设置http跳转https,因为还是有很多人在用iis服务器。首先要先安装url rewrite module,到这里去下载http://www.microsoft.com/en-
ytkah
2019/05/25
3K0
IIS 部署node
从 linux 迁移到 windows server,一言难尽. 网上有说 iis 已经支持 node 了. IIS Node
chuchur
2022/10/25
2.4K0
IIS各种问题汇总
1.不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。
用户1055830
2019/05/25
1.4K0
asp.net 伪静态实现(UrlRewritingNet)
UrlRewritingNet.UrlRewriter源码地址 https://github.com/aspnetde/UrlRewritingNet 部署步骤: 步骤一: <!--只允许存在一个 <configSections> 元素,并且,如果存在该元素,它还必须是根 <configuration> 元素的第一个子元素--> <configSections> <!--步骤一,新静态规则应用添加--> <section name="urlrewritingnet" requirePe
纯粹是糖
2018/03/14
2.2K0
如何在ASP.NetCore增加文件上传大小
从ASP.NET 2.0开始最大请求正文大小限制为30MB (+28.6 MiB)。在正常情况下,无需增加 HTTP 请求 body 的大小。但是,当您尝试上传大型文件 (> 30MB) 时,需要增加默认允许的最大限制。在这篇简短的文章中,我们将了解如何在.netcore 应用程序中增加文件 ASP.NET 大小以及控制此限制的各种选项。
leon公众号精选
2022/04/27
5.1K0
ASP.NET Core 在 IIS 下的两种部署模式
KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择。ASP.NET CORE应用针对IIS具有两种部署模式,它们都依赖于一个IIS针对ASP.NET CORE Core的扩展模块。本文提供的示例演示已经同步到《ASP.NET Core 6框架揭秘-实例演示版》)
蒋金楠
2022/05/09
2.8K0
ASP.NET Core 在 IIS 下的两种部署模式
相关推荐
IIS 部署 Python Django
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验