Git instaweb httpd configuration для использования apache2 на сервере OSX Leopard - PullRequest
3 голосов
/ 02 октября 2009

По умолчанию 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, чтобы он использовал мой веб-сервер по умолчанию?

Спасибо

Ответы [ 3 ]

3 голосов
/ 05 ноября 2009

Причина в том, что apache2 назван httpd в OS X, а модули находятся где-то еще. Я попытался изменить конфигурацию, чтобы она указала на правильные пути, но сервер все равно не работал.

В качестве альтернативы, вы можете использовать уже установленный демон webrick. Добавьте эти строки в файл ~ / .gitconfig (глобальная настройка) или в файл .git / config (локальная настройка):

[instaweb]
               httpd = webrick
1 голос
/ 24 марта 2014

Я заставил git instaweb работать со встроенным Apache на моем Mac (под управлением Lion) следующим образом:

  1. как root:
    cd /usr/sbin; ln -s httpd apache2
  2. В качестве пользователя root: edit / usr / libexec / git-core / git-instaweb : добавить строки
    LockFile "$fqgitdir/gitweb/$httpd_only/access.lock"
    User <strong>UsernameForYourGitServer</strong>
    после строки
    PidFile "$fqgitdir/pid"
  3. Наконец, как ваш пользователь git, перейдите в ваш репозиторий и запустите
    git instaweb --httpd apache2 -m /usr/libexec/apache2

Это работает даже тогда, когда вы уже используете стандартный сервер, т. Е. Когда у вас включен «Общий веб-доступ». Сервер gitweb будет отдельным процессом, прослушивающим порт 1234, а не порт 80, который используется стандартным сервером.

Чтобы запустить этот сервер с помощью launchd, создайте файл / Library / LaunchDaemons / git-web.plist , например:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>GitWeb</string>
        <key>WorkingDirectory</key>
        <string>/Wherever/Your/Repository/Is</string>
        <key>ProgramArguments</key>
        <array>
            <string>git</string>
            <string>instaweb</string>
            <string>--httpd</string>
            <string>apache2</string>
            <string>-m</string>
            <string>/usr/libexec/apache2</string>
        </array>
        <key>KeepAlive</key>
        <true/>
    </dict>
    </plist>
1 голос
/ 02 октября 2009

Если вы посмотрите на этот git-instaweb патч от февраля 2009 , вы увидите:

# 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 's answer (upvoted) подробно, как ссылаться на https для запуска git-instaweb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...