Сделайте Модуль мерзавца VirtualMin УМНЫМ

REM Mount Z:\ as the user with permissions; you may need to add the password
net use z: \\server\share /user:domain\user

REM copy things here
REM ...

REM unmount the drive letter
net use z: /d
0
задан 20 May 2014 в 02:49
1 ответ

Взято из Настройка Smart HTTP для Git на Virtualmin .


Из здесь решением было переключиться с обычного HTTP на Smart HTTP с помощью исполняемый файл git-http-backend, который может выполнять все перехватчики и предположительно намного быстрее.

  1. Скопируйте исполняемый файл git-httpd-backend в каталог / home / domain / cgi-bin / и установите разрешения для домена :домен. Это сделано во избежание проблем с suexec.

     $ cp / usr / libexec / git-core / git-http-backend / home / domain / cgi-bin
    $ chown домен: домен / главная / домен / cgi-bin / git-http-backend
    
  2. На /etc/httpd/conf/httpd.conf добавьте это в VirtualHost для домена:

      [...]
    ServerName domain.com
    
    [...]
    
    # Установите корневой каталог, в котором находятся репозитории git
    SetEnv GIT_PROJECT_ROOT / home / domain / public_html / git
    
    # По умолчанию git-http-backend разрешает push для аутентифицированных
    # users, и эта директива сообщает серверу, когда пользователь аутентифицирован.
    SetEnv REMOTE_USER = $ REDIRECT_REMOTE_USER
    
    # Экспорт всех репозиториев
    SetEnv GIT_HTTP_EXPORT_ALL
    
    ScriptAlias ​​/ dev / / главная / домен / cgi-bin / git-http-backend /
    
    [...]
    
    # Добавьте это, если его еще нет
    
    DAV включен
    AuthType Basic
    AuthName domain.com
    AuthUserFile /home/domain/etc/git.basic.passwd
    Требовать действительного пользователя
    Удовлетворить все
    
    RedirectMatch ^ / git (/ +) $ /git/gitweb.cgi
    RewriteEngine выключен
    AddHandler cgi-скрипт .cgi
    
    [...]
    
  3. А затем перезапустите apache. Теперь все репозитории доступны по адресу http: // gituser@domain.com / dev / git / * , например, http: // gituser@domain.com / dev / git / reponame .git , и все хуки будут выполняться должным образом.

В дальнейшем, когда вы создаете новое репо через Virtualmin, вам необходимо выполнить следующие шаги вручную:

  1. Создайте пустой файл / home /domain/public_html/git/reponame.git/git-daemon-export-ok[1123655 visible.

  2. Создайте это как /home/domain/public_html/git/reponame.git/hooks/post-receive и сделать его исполняемым для всех и принадлежащим apache: domain:

     #! / Bin / sh
    #
    # Пример сценария перехвата для события "post-receive".
    #
    # Сценарий "post-receive" запускается после того, как receive-pack принял пакет
    # и репозиторий обновлен. Передаются аргументы через
    # stdin в форме
    #
    # Например:
    # aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 ссылки / головы / мастер
    #
    # образец можно найти в contrib / hooks / или раскомментируйте следующую строку и
    # переименуйте файл в "post-receive".
    
    # Эхо клиенту, что вы отправляете почту сейчас
    echo "Отправка уведомления по электронной почте ..."
    . / usr / share / git-core / contrib / hooks / post-receive-email
    
    # Обязательно обновите информацию о репозитории git на сервере для запросов других клиентов
    git update-server-информация
    echo "Обновленная информация о сервере."
    
  3. Согласно по этой ссылке , установите права доступа к каталогу git следующим образом, чтобы избежать проблем с правами записи при отправке новых файлов в коммитах (при этом убедитесь, что сценарий gitweb.cgi доступен только для записи владельцем, чтобы избежать ошибок suexec, которые могут появиться в /etc/httpd/logs/suexec.log):

    $ cd / home / domain / public_html / git /
    $ chmod -R g + ws *
    $ chgrp -R домен *
    $ chmod -R gw gitweb.cgi
    $ chmod -R gs gitweb.cgi
    
  4. Обновите /home/domain/public_html/git/reponame.git/config , чтобы он соответствовал следующему:

      [core]
     repositoryformatversion = 0
     filemode = true
     голый = правда
    [крючки]
    mailinglist = email1@domain.com , email2@domain.com
    envelopesender = git-commit@domain.com
     emailprefix = "[REPONAME]"
    
2
ответ дан 4 December 2019 в 14:00

Теги

Похожие вопросы