3

默认情况下 git instaweb 期待 lighttpd 网络服务器,而在 OSX Leopard 服务器上 apache2 是默认服务器。

将以下内容添加到 .git/config :

[instaweb]
local = true
httpd = apache2 -f
port = 4321
modulepath = /usr/libexec/apache2

并运行“ git instaweb”结果:

apache2 not found.  
Install apache2 or use --httpd to specify another httpd daemon.

我应该如何设置.git/config让它使用我的默认 Web 服务器?

谢谢

4

3 回答 3

3

原因是 apache2 在 OS X 中被命名为 httpd,而模块在其他地方。我尝试更改配置以使其指向正确的路径,但服务器仍然无法正常工作。

或者,您可以使用已安装的 webrick 守护程序。将这些行添加到您的 ~/.gitconfig 文件(全局设置)或 .git/config 文件(本地设置):

[instaweb]
               httpd = webrick
于 2009-11-04T23:52:39.503 回答
1

我让 git instaweb 在我的 Mac(运行 Lion)上使用内置 Apache,如下所示:

  1. 作为根:
    cd /usr/sbin; ln -s httpd apache2
  2. 以root 身份:编辑/usr/libexec/git-core/git-instaweb:添加行
    LockFile "$fqgitdir/gitweb/$httpd_only/access.lock"
    用户用户名ForYourGitServer
    行后
    PidFile "$fqgitdir/pid"
  3. 最后,作为您的 git 用户,cd 到您的存储库,然后运行
    git instaweb --httpd apache2 -m /usr/libexec/apache2

这甚至在您已经在使用标准服务器时也有效,即当您打开“Web 共享”时。gitweb 服务器将是一个单独的进程,监听端口 1234,而不是标准服务器使用的端口 80。

要使用 launchd 启动此服务器,请创建一个文件/Library/LaunchDaemons/git-web.plist,如下所示:

    <?xml 版本="1.0" 编码="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist 版本="1.0">
    <字典>
        <key>标签</key>
        <string>GitWeb</string>
        <key>工作目录</key>
        <string>/Wherever/Your/Repository/Is</string>
        <key>程序参数</key>
        <数组>
            <string>git</string>
            <string>instaweb</string>
            <string>--httpd</string>
            <string>apache2</string>
            <string>-m</string>
            <string>/usr/libexec/apache2</string>
        </array>
        <key>保活</key>
        <真/>
    </dict>
    </plist>
于 2014-03-23T22:00:07.830 回答
1

如果您查看git-instaweb2009 年 2 月的此补丁,您会看到:

# check if server can be executed
httpd_only="$(echo $httpd | cut -f1 -d' ')"
if ! type $httpd_only >/dev/null 2>&1; then
  echo >&2 "$httpd_only not found. Install $httpd_only or use" \
           + "--httpd to specify another httpd daemon."
fi

你的 apache2 可执行属性有问题吗?


2014 年更新(5 年后):像 f8ee1f0 这样的提交表明 git-instaweb 不仅支持 Apache,而且还支持 Apache 2.4:

检测可用的 Apache MPM 并根据以下优先顺序使用第一个可用的:

  • mpm_event
  • mpm_prefork
  • mpm_worker

Thomas Okken回答(赞成)详细说明了如何参考 https 来启动 git-instaweb。

于 2009-10-02T10:58:00.820 回答