Еще один самый короткий awk подход:
awk '{printf $0 (NR%4?"\t":"\n")}' infile
Этот printf единственный столбец, за которым следуют следующий и следующий и ... и символ Tab \t после каждого, но будет printf a ewline, когда Number of Record был фактором 4 (где NR%4 вернет 0 (false), что делает трёхмерный оператор condition(s)?when-true:when-false).
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать конфигурационный файл apache gitweb
$EDITOR /etc/apache2/conf.d/gitweb
измените строку Alias /gitweb /usr/share/gitweb на
Alias /git /usr/share/gitweb
откройте файл /etc/gitweb.conf:
вы должны изменить линию $projectroot ".." на $projectroot "/code/git"
и измените любую другую строку, содержащую /gitweb на /git, например
$stylesheet = "/gitweb/gitweb.css";
, на
$stylesheet = "/git/gitweb.css";
, а затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
часть gitweb: :
Я настоятельно рекомендую использовать гитоз (http://scie.nti.st/2007/11/14/hosting -git-repositories-the-easy-and-secure-way)
Я настоятельно рекомендую использовать gitosis , если вы используете gitosis, строка $projectroot в /etc/gitweb.conf имеет быть
$projectroot = "/home/git/repositories/";
Вы можете найти подробную информацию о том, как настроить гитоз в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy
, описывающий полную установку гитоза, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, comment
Чтобы исправить проблемы с разрешением apache, может потребоваться сделать:
adduser www-data git
chgrp -R git /home/git/repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать конфигурационный файл apache gitweb
$EDITOR /etc/apache2/conf.d/gitweb
измените строку Alias /gitweb /usr/share/gitweb на
Alias /git /usr/share/gitweb
откройте файл /etc/gitweb.conf:
вы должны изменить линию $projectroot ".." на $projectroot "/code/git"
и измените любую другую строку, содержащую /gitweb на /git, например
$stylesheet = "/gitweb/gitweb.css";
, на
$stylesheet = "/git/gitweb.css";
, а затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
часть gitweb: :
Я настоятельно рекомендую использовать гитоз (http://scie.nti.st/2007/11/14/hosting -git-repositories-the-easy-and-secure-way)
Я настоятельно рекомендую использовать gitosis , если вы используете gitosis, строка $projectroot в /etc/gitweb.conf имеет быть
$projectroot = "/home/git/repositories/";
Вы можете найти подробную информацию о том, как настроить гитоз в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy
, описывающий полную установку гитоза, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, comment
Чтобы исправить проблемы с разрешением apache, может потребоваться сделать:
adduser www-data git
chgrp -R git /home/git/repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать конфигурационный файл apache gitweb
$EDITOR /etc/apache2/conf.d/gitweb
измените строку Alias /gitweb /usr/share/gitweb на
Alias /git /usr/share/gitweb
откройте файл /etc/gitweb.conf:
вы должны изменить линию $projectroot ".." на $projectroot "/code/git"
и измените любую другую строку, содержащую /gitweb на /git, например
$stylesheet = "/gitweb/gitweb.css";
, на
$stylesheet = "/git/gitweb.css";
, а затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
часть gitweb: :
Я настоятельно рекомендую использовать гитоз (http://scie.nti.st/2007/11/14/hosting -git-repositories-the-easy-and-secure-way)
Я настоятельно рекомендую использовать gitosis , если вы используете gitosis, строка $projectroot в /etc/gitweb.conf имеет быть
$projectroot = "/home/git/repositories/";
Вы можете найти подробную информацию о том, как настроить гитоз в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy
, описывающий полную установку гитоза, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, comment
Чтобы исправить проблемы с разрешением apache, может потребоваться сделать:
adduser www-data git
chgrp -R git /home/git/repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать конфигурационный файл apache gitweb
$EDITOR /etc/apache2/conf.d/gitweb
измените строку Alias /gitweb /usr/share/gitweb на
Alias /git /usr/share/gitweb
откройте файл /etc/gitweb.conf:
вы должны изменить линию $projectroot ".." на $projectroot "/code/git"
и измените любую другую строку, содержащую /gitweb на /git, например
$stylesheet = "/gitweb/gitweb.css";
, на
$stylesheet = "/git/gitweb.css";
, а затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
часть gitweb: :
Я настоятельно рекомендую использовать гитоз (http://scie.nti.st/2007/11/14/hosting -git-repositories-the-easy-and-secure-way)
Я настоятельно рекомендую использовать gitosis , если вы используете gitosis, строка $projectroot в /etc/gitweb.conf имеет быть
$projectroot = "/home/git/repositories/";
Вы можете найти подробную информацию о том, как настроить гитоз в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy
, описывающий полную установку гитоза, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, comment
Чтобы исправить проблемы с разрешением apache, может потребоваться сделать:
adduser www-data git
chgrp -R git /home/git/repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать файл apache gitweb config file
$ EDITOR /etc/apache2/conf.d/gitweb
изменить строку Alias / gitweb / usr / share / gitweb
to
Alias / git / usr / share / gitweb
откройте файл /etc/gitweb.conf
file:
вам нужно изменить строку $ projectroot ".."
на $ projectroot "/ code / git"
и изменить любую другую строку, содержащую / gitweb
, на / git
, например
$ stylesheet = "/gitweb/gitweb.css";
to
$ stylesheet = "/git/gitweb.css";
затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
Сама часть GIT:
Я настоятельно рекомендую использовать гитоз ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )
ПОМНИТЕ, если вы используете gitosis, строка $ projectroot
в /etc/gitweb.conf
должна быть
$ projectroot = "/ home / git / repositories /";
Вы можете найти подробную информацию о том, как настроить gitosis в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- (! d31)
, описывающий полную установку гитоцизмы, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, напишите мне комментарий
Чтобы устранить проблемы с разрешением apache, может потребоваться:
adduser www-data git chgrp -R git / home / git / repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать файл apache gitweb config file
$ EDITOR /etc/apache2/conf.d/gitweb
изменить строку Alias / gitweb / usr / share / gitweb
to
Alias / git / usr / share / gitweb
откройте файл /etc/gitweb.conf
file:
вам нужно изменить строку $ projectroot ".."
на $ projectroot "/ code / git"
и изменить любую другую строку, содержащую / gitweb
, на / git
, например
$ stylesheet = "/gitweb/gitweb.css";
to
$ stylesheet = "/git/gitweb.css";
затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
Сама часть GIT:
Я настоятельно рекомендую использовать гитоз ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )
ПОМНИТЕ, если вы используете gitosis, строка $ projectroot
в /etc/gitweb.conf
должна быть
$ projectroot = "/ home / git / repositories /";
Вы можете найти подробную информацию о том, как настроить gitosis в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- (! d31)
, описывающий полную установку гитоцизмы, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, напишите мне комментарий
Чтобы устранить проблемы с разрешением apache, может потребоваться:
adduser www-data git chgrp -R git / home / git / repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать файл apache gitweb config file
$ EDITOR /etc/apache2/conf.d/gitweb
изменить строку Alias / gitweb / usr / share / gitweb
to
Alias / git / usr / share / gitweb
откройте файл /etc/gitweb.conf
file:
вам нужно изменить строку $ projectroot ".."
на $ projectroot "/ code / git"
и изменить любую другую строку, содержащую / gitweb
, на / git
, например
$ stylesheet = "/gitweb/gitweb.css";
to
$ stylesheet = "/git/gitweb.css";
затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
Сама часть GIT:
Я настоятельно рекомендую использовать гитоз ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )
ПОМНИТЕ, если вы используете gitosis, строка $ projectroot
в /etc/gitweb.conf
должна быть
$ projectroot = "/ home / git / repositories /";
Вы можете найти подробную информацию о том, как настроить gitosis в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- (! d31)
, описывающий полную установку гитоцизмы, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, напишите мне комментарий
Чтобы устранить проблемы с разрешением apache, может потребоваться:
adduser www-data git chgrp -R git / home / git / repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать файл apache gitweb config file
$ EDITOR /etc/apache2/conf.d/gitweb
изменить строку Alias / gitweb / usr / share / gitweb
to
Alias / git / usr / share / gitweb
откройте файл /etc/gitweb.conf
file:
вам нужно изменить строку $ projectroot ".."
на $ projectroot "/ code / git"
и изменить любую другую строку, содержащую / gitweb
, на / git
, например
$ stylesheet = "/gitweb/gitweb.css";
to
$ stylesheet = "/git/gitweb.css";
затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
Сама часть GIT:
Я настоятельно рекомендую использовать гитоз ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )
ПОМНИТЕ, если вы используете gitosis, строка $ projectroot
в /etc/gitweb.conf
должна быть
$ projectroot = "/ home / git / repositories /";
Вы можете найти подробную информацию о том, как настроить gitosis в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- (! d31)
, описывающий полную установку гитоцизмы, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, напишите мне комментарий
Чтобы устранить проблемы с разрешением apache, может потребоваться:
adduser www-data git chgrp -R git / home / git / repositories
Часть gitweb:
Вам нужно установить пакет gitweb с помощью sudo apt-get install gitweb
Затем вам нужно отредактировать файл apache gitweb config file
$ EDITOR /etc/apache2/conf.d/gitweb
изменить строку Alias / gitweb / usr / share / gitweb
to
Alias / git / usr / share / gitweb
откройте файл /etc/gitweb.conf
file:
вам нужно изменить строку $ projectroot ".."
на $ projectroot "/ code / git"
и изменить любую другую строку, содержащую / gitweb
, на / git
, например
$ stylesheet = "/gitweb/gitweb.css";
to
$ stylesheet = "/git/gitweb.css";
затем перезагрузите веб-сервер apache с помощью sudo /etc/init.d/apache2 horse-reload
Сама часть GIT:
Я настоятельно рекомендую использовать гитоз ( http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way )
ПОМНИТЕ, если вы используете gitosis, строка $ projectroot
в /etc/gitweb.conf
должна быть
$ projectroot = "/ home / git / repositories /";
Вы можете найти подробную информацию о том, как настроить gitosis в http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy- (! d31)
, описывающий полную установку гитоцизмы, слишком длинный для этого ответа.
Если вам нужна дополнительная помощь по поводу гитоза, напишите мне комментарий
Чтобы устранить проблемы с разрешением apache, может потребоваться:
adduser www-data git chgrp -R git / home / git / repositories
Вот что я сделал для настройки gitweb на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth. По умолчанию gitweb использует /etc/gitweb.conf, который ожидает git проектов в /var/lib/git.
Итак, я попытался включить здесь git repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf - мой /var/lib/git выглядит так:
$ ls -la /var/lib/git/
total 12
drwxrwxrwx 3 root root 4096 Apr 9 16:01 .
drwxr-xr-x 75 root root 4096 Apr 7 17:31 ..
lrwxrwxrwx 1 myuser myuser 28 Apr 9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x 7 myuser www-data 4096 Apr 10 17:50 testrepo.git
Итак, помимо ваших репозиций вам также понадобится symlink /usr/share/gitweb/gitweb.cgi в этом каталоге ...
Затем вы можете использовать следующее как /etc/apache2/sites-available/gitw-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost
HeaderName HEADER
DocumentRoot /var/www/html
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-gw.log
CustomLog ${APACHE_LOG_DIR}/access-gw.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<IfModule mod_authnz_external.c>
# old style:
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
# new style:
#DefineExternalAuth pwauth pipe /usr/sbin/pwauth
</IfModule>
# as more specific, /gitweb/static should go first
Alias /gitweb/static /usr/share/gitweb/static
Alias /gitweb /var/lib/git
# gitweb.cgi alias is no dice - symlink is needed:
Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
<Directory /var/lib/git>
Options +FollowSymlinks +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/usr/lib/git-core/">
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
Options +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
И, наконец, вы можете сделать:
# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload
После этого gitweb должен быть доступен на https://localhost/gitweb/ (например, https://localhost/gitweb/?p=testrepo.git;a=summary); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с помощью:
GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Вот что я сделал для настройки gitweb на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth. По умолчанию gitweb использует /etc/gitweb.conf, который ожидает git проектов в /var/lib/git.
Итак, я попытался включить здесь git repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf - мой /var/lib/git выглядит так:
$ ls -la /var/lib/git/
total 12
drwxrwxrwx 3 root root 4096 Apr 9 16:01 .
drwxr-xr-x 75 root root 4096 Apr 7 17:31 ..
lrwxrwxrwx 1 myuser myuser 28 Apr 9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x 7 myuser www-data 4096 Apr 10 17:50 testrepo.git
Итак, помимо ваших репозиций вам также понадобится symlink /usr/share/gitweb/gitweb.cgi в этом каталоге ...
Затем вы можете использовать следующее как /etc/apache2/sites-available/gitw-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost
HeaderName HEADER
DocumentRoot /var/www/html
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-gw.log
CustomLog ${APACHE_LOG_DIR}/access-gw.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<IfModule mod_authnz_external.c>
# old style:
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
# new style:
#DefineExternalAuth pwauth pipe /usr/sbin/pwauth
</IfModule>
# as more specific, /gitweb/static should go first
Alias /gitweb/static /usr/share/gitweb/static
Alias /gitweb /var/lib/git
# gitweb.cgi alias is no dice - symlink is needed:
Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
<Directory /var/lib/git>
Options +FollowSymlinks +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/usr/lib/git-core/">
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
Options +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
И, наконец, вы можете сделать:
# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload
После этого gitweb должен быть доступен на https://localhost/gitweb/ (например, https://localhost/gitweb/?p=testrepo.git;a=summary); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с помощью:
GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Вот что я сделал для настройки gitweb на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth. По умолчанию gitweb использует /etc/gitweb.conf, который ожидает git проектов в /var/lib/git.
Итак, я попытался включить здесь git repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf - мой /var/lib/git выглядит так:
$ ls -la /var/lib/git/
total 12
drwxrwxrwx 3 root root 4096 Apr 9 16:01 .
drwxr-xr-x 75 root root 4096 Apr 7 17:31 ..
lrwxrwxrwx 1 myuser myuser 28 Apr 9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x 7 myuser www-data 4096 Apr 10 17:50 testrepo.git
Итак, помимо ваших репозиций вам также понадобится symlink /usr/share/gitweb/gitweb.cgi в этом каталоге ...
Затем вы можете использовать следующее как /etc/apache2/sites-available/gitw-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost
HeaderName HEADER
DocumentRoot /var/www/html
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-gw.log
CustomLog ${APACHE_LOG_DIR}/access-gw.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<IfModule mod_authnz_external.c>
# old style:
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
# new style:
#DefineExternalAuth pwauth pipe /usr/sbin/pwauth
</IfModule>
# as more specific, /gitweb/static should go first
Alias /gitweb/static /usr/share/gitweb/static
Alias /gitweb /var/lib/git
# gitweb.cgi alias is no dice - symlink is needed:
Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
<Directory /var/lib/git>
Options +FollowSymlinks +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/usr/lib/git-core/">
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
Options +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
И, наконец, вы можете сделать:
# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload
После этого gitweb должен быть доступен на https://localhost/gitweb/ (например, https://localhost/gitweb/?p=testrepo.git;a=summary); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с помощью:
GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Вот что я сделал для настройки gitweb на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth. По умолчанию gitweb использует /etc/gitweb.conf, который ожидает git проектов в /var/lib/git.
Итак, я попытался включить здесь git repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf - мой /var/lib/git выглядит так:
$ ls -la /var/lib/git/
total 12
drwxrwxrwx 3 root root 4096 Apr 9 16:01 .
drwxr-xr-x 75 root root 4096 Apr 7 17:31 ..
lrwxrwxrwx 1 myuser myuser 28 Apr 9 16:01 gitweb.cgi -> /usr/share/gitweb/gitweb.cgi
drwxrwsr-x 7 myuser www-data 4096 Apr 10 17:50 testrepo.git
Итак, помимо ваших репозиций вам также понадобится symlink /usr/share/gitweb/gitweb.cgi в этом каталоге ...
Затем вы можете использовать следующее как /etc/apache2/sites-available/gitw-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName localhost
HeaderName HEADER
DocumentRoot /var/www/html
LogLevel info
ErrorLog ${APACHE_LOG_DIR}/error-gw.log
CustomLog ${APACHE_LOG_DIR}/access-gw.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<IfModule mod_authnz_external.c>
# old style:
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
# new style:
#DefineExternalAuth pwauth pipe /usr/sbin/pwauth
</IfModule>
# as more specific, /gitweb/static should go first
Alias /gitweb/static /usr/share/gitweb/static
Alias /gitweb /var/lib/git
# gitweb.cgi alias is no dice - symlink is needed:
Alias gitweb.cgi /usr/share/gitweb/gitweb.cgi
<Directory /var/lib/git>
Options +FollowSymlinks +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/usr/lib/git-core/">
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL
Options +ExecCGI
SSLRequireSSL
AuthType basic
AuthName "Private git repository"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
И, наконец, вы можете сделать:
# not sure if also `fcgid auth_digest` are needed:
sudo a2enmod ssl cgi alias env rewrite
sudo a2ensite gitw-ssl.conf
# if not `reload`, use `restart`:
sudo service apache2 reload
После этого gitweb должен быть доступен на https://localhost/gitweb/ (например, https://localhost/gitweb/?p=testrepo.git;a=summary); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с помощью:
GIT_SSL_NO_VERIFY=1 git clone https://myuser@localhost/git/testrepo.git
Вот что я сделал, чтобы установить gitweb
на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth
. По умолчанию gitweb
использует /etc/gitweb.conf
, который ожидает git
проектов в / var / lib / git
.
Итак, я попытался включить здесь git
repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf
- my / var / lib / git
выглядит так:
$ ls -la / var / lib / git / total 12 drwxrwxrwx 3 root root 4096 Apr 9 16: 01. drwxr-xr-x 75 root root 4096 Apr 7 17:31 .. lrwxrwxrwx 1 myuser myuser 28 апр 9 16:01 gitweb.cgi - & gt; /usr/share/gitweb/gitweb.cgi drwxrwsr-x 7 myuser www-data 4096 10 апреля 17:50 testrepo.git
Итак, помимо ваших репозиториев вам необходимо будет символически привязать /usr/share/gitweb/gitweb.cgi
в этом каталоге тоже ...
Затем вы можете использовать следующее как / etc / apache2 / sites-available / gitw-ssl.conf
:
& lt; IfModule mod_ssl.c & gt; & lt; VirtualHost _default_: 443 & gt; ServerAdmin webmaster @ localhost ServerName localhost HeaderName HEADER DocumentRoot / var / www / html Информация о LogLevel ErrorLog $ {APACHE_LOG_DIR} /error-gw.log CustomLog $ {APACHE_LOG_DIR} /access-gw.log объединяет SSLEngine в SSLCertificateFile / etc / apache2 / ssl / my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key & lt; FilesMatch "\. (cgi | shtml | phtml | php) $" & gt; SSLOptions + StdEnvVars & lt; / FilesMatch & gt; & lt; Directory / usr / lib / cgi-bin & gt; SSLOptions + StdEnvVars & lt; / Directory & gt; & lt; IfModule mod_authnz_external.c & gt; # старый стиль: AddExternalAuth pwauth / usr / sbin / pwauth SetExternalAuthMethod pwauth pipe # новый стиль: #DefineExternalAuth pwauth pipe / usr / sbin / pwauth & lt; / IfModule & gt; # как более конкретный, / gitweb / static должен идти первым Alias / gitweb / static / usr / share / gitweb / static Alias / gitweb / var / lib / git # gitweb.cgi alias не является костью - необходима символическая ссылка: Alias gitweb. cgi /usr/share/gitweb/gitweb.cgi & lt; Directory / var / lib / git & gt; Параметры + FollowSymlinks + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительный пользовательский Cgi-скрипт AddHandler .cgi DirectoryIndex gitweb.cgi & lt; / Directory & gt; ScriptAlias / git / / usr / lib / git-core / git-http-backend / & lt; Directory "/ usr / lib / git-core /" & gt; SetEnv GIT_PROJECT_ROOT / var / lib / git SetEnv GIT_HTTP_EXPORT_ALL Опции + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительного пользователя & lt; / Directory & gt; & Lt; / VirtualHost & GT; & Lt; / IfModule & GT;
И, наконец, вы можете сделать:
# не уверены, что нужны также `fcgid auth_digest`: sudo a2enmod ssl cgi alias env rewrite sudo a2ensite gitw- ssl.conf # если не `reload`, используйте` restart`: sudo service apache2 reload
После этого gitweb
должен быть доступен на https: // localhost / gitweb /
(например, https: // localhost / gitweb /? p = testrepo.git; a = summary
); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с:
GIT_SSL_NO_VERIFY = 1 git clone https: //myuser@localhost/git/testrepo.git
Вот что я сделал, чтобы установить gitweb
на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth
. По умолчанию gitweb
использует /etc/gitweb.conf
, который ожидает git
проектов в / var / lib / git
.
Итак, я попытался включить здесь git
repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf
- my / var / lib / git
выглядит так:
$ ls -la / var / lib / git / total 12 drwxrwxrwx 3 root root 4096 Apr 9 16: 01. drwxr-xr-x 75 root root 4096 Apr 7 17:31 .. lrwxrwxrwx 1 myuser myuser 28 апр 9 16:01 gitweb.cgi - & gt; /usr/share/gitweb/gitweb.cgi drwxrwsr-x 7 myuser www-data 4096 10 апреля 17:50 testrepo.git
Итак, помимо ваших репозиториев вам необходимо будет символически привязать /usr/share/gitweb/gitweb.cgi
в этом каталоге тоже ...
Затем вы можете использовать следующее как / etc / apache2 / sites-available / gitw-ssl.conf
:
& lt; IfModule mod_ssl.c & gt; & lt; VirtualHost _default_: 443 & gt; ServerAdmin webmaster @ localhost ServerName localhost HeaderName HEADER DocumentRoot / var / www / html Информация о LogLevel ErrorLog $ {APACHE_LOG_DIR} /error-gw.log CustomLog $ {APACHE_LOG_DIR} /access-gw.log объединяет SSLEngine в SSLCertificateFile / etc / apache2 / ssl / my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key & lt; FilesMatch "\. (cgi | shtml | phtml | php) $" & gt; SSLOptions + StdEnvVars & lt; / FilesMatch & gt; & lt; Directory / usr / lib / cgi-bin & gt; SSLOptions + StdEnvVars & lt; / Directory & gt; & lt; IfModule mod_authnz_external.c & gt; # старый стиль: AddExternalAuth pwauth / usr / sbin / pwauth SetExternalAuthMethod pwauth pipe # новый стиль: #DefineExternalAuth pwauth pipe / usr / sbin / pwauth & lt; / IfModule & gt; # как более конкретный, / gitweb / static должен идти первым Alias / gitweb / static / usr / share / gitweb / static Alias / gitweb / var / lib / git # gitweb.cgi alias не является костью - необходима символическая ссылка: Alias gitweb. cgi /usr/share/gitweb/gitweb.cgi & lt; Directory / var / lib / git & gt; Параметры + FollowSymlinks + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительный пользовательский Cgi-скрипт AddHandler .cgi DirectoryIndex gitweb.cgi & lt; / Directory & gt; ScriptAlias / git / / usr / lib / git-core / git-http-backend / & lt; Directory "/ usr / lib / git-core /" & gt; SetEnv GIT_PROJECT_ROOT / var / lib / git SetEnv GIT_HTTP_EXPORT_ALL Опции + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительного пользователя & lt; / Directory & gt; & Lt; / VirtualHost & GT; & Lt; / IfModule & GT;
И, наконец, вы можете сделать:
# не уверены, что нужны также `fcgid auth_digest`: sudo a2enmod ssl cgi alias env rewrite sudo a2ensite gitw- ssl.conf # если не `reload`, используйте` restart`: sudo service apache2 reload
После этого gitweb
должен быть доступен на https: // localhost / gitweb /
(например, https: // localhost / gitweb /? p = testrepo.git; a = summary
); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с:
GIT_SSL_NO_VERIFY = 1 git clone https: //myuser@localhost/git/testrepo.git
Вот что я сделал, чтобы установить gitweb
на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth
. По умолчанию gitweb
использует /etc/gitweb.conf
, который ожидает git
проектов в / var / lib / git
.
Итак, я попытался включить здесь git
repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf
- my / var / lib / git
выглядит так:
$ ls -la / var / lib / git / total 12 drwxrwxrwx 3 root root 4096 Apr 9 16: 01. drwxr-xr-x 75 root root 4096 Apr 7 17:31 .. lrwxrwxrwx 1 myuser myuser 28 апр 9 16:01 gitweb.cgi - & gt; /usr/share/gitweb/gitweb.cgi drwxrwsr-x 7 myuser www-data 4096 10 апреля 17:50 testrepo.git
Итак, помимо ваших репозиториев вам необходимо будет символически привязать /usr/share/gitweb/gitweb.cgi
в этом каталоге тоже ...
Затем вы можете использовать следующее как / etc / apache2 / sites-available / gitw-ssl.conf
:
& lt; IfModule mod_ssl.c & gt; & lt; VirtualHost _default_: 443 & gt; ServerAdmin webmaster @ localhost ServerName localhost HeaderName HEADER DocumentRoot / var / www / html Информация о LogLevel ErrorLog $ {APACHE_LOG_DIR} /error-gw.log CustomLog $ {APACHE_LOG_DIR} /access-gw.log объединяет SSLEngine в SSLCertificateFile / etc / apache2 / ssl / my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key & lt; FilesMatch "\. (cgi | shtml | phtml | php) $" & gt; SSLOptions + StdEnvVars & lt; / FilesMatch & gt; & lt; Directory / usr / lib / cgi-bin & gt; SSLOptions + StdEnvVars & lt; / Directory & gt; & lt; IfModule mod_authnz_external.c & gt; # старый стиль: AddExternalAuth pwauth / usr / sbin / pwauth SetExternalAuthMethod pwauth pipe # новый стиль: #DefineExternalAuth pwauth pipe / usr / sbin / pwauth & lt; / IfModule & gt; # как более конкретный, / gitweb / static должен идти первым Alias / gitweb / static / usr / share / gitweb / static Alias / gitweb / var / lib / git # gitweb.cgi alias не является костью - необходима символическая ссылка: Alias gitweb. cgi /usr/share/gitweb/gitweb.cgi & lt; Directory / var / lib / git & gt; Параметры + FollowSymlinks + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительный пользовательский Cgi-скрипт AddHandler .cgi DirectoryIndex gitweb.cgi & lt; / Directory & gt; ScriptAlias / git / / usr / lib / git-core / git-http-backend / & lt; Directory "/ usr / lib / git-core /" & gt; SetEnv GIT_PROJECT_ROOT / var / lib / git SetEnv GIT_HTTP_EXPORT_ALL Опции + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительного пользователя & lt; / Directory & gt; & Lt; / VirtualHost & GT; & Lt; / IfModule & GT;
И, наконец, вы можете сделать:
# не уверены, что нужны также `fcgid auth_digest`: sudo a2enmod ssl cgi alias env rewrite sudo a2ensite gitw- ssl.conf # если не `reload`, используйте` restart`: sudo service apache2 reload
После этого gitweb
должен быть доступен на https: // localhost / gitweb /
(например, https: // localhost / gitweb /? p = testrepo.git; a = summary
); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с:
GIT_SSL_NO_VERIFY = 1 git clone https: //myuser@localhost/git/testrepo.git
Вот что я сделал, чтобы установить gitweb
на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth
. По умолчанию gitweb
использует /etc/gitweb.conf
, который ожидает git
проектов в / var / lib / git
.
Итак, я попытался включить здесь git
repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf
- my / var / lib / git
выглядит так:
$ ls -la / var / lib / git / total 12 drwxrwxrwx 3 root root 4096 Apr 9 16: 01. drwxr-xr-x 75 root root 4096 Apr 7 17:31 .. lrwxrwxrwx 1 myuser myuser 28 апр 9 16:01 gitweb.cgi - & gt; /usr/share/gitweb/gitweb.cgi drwxrwsr-x 7 myuser www-data 4096 10 апреля 17:50 testrepo.git
Итак, помимо ваших репозиториев вам необходимо будет символически привязать /usr/share/gitweb/gitweb.cgi
в этом каталоге тоже ...
Затем вы можете использовать следующее как / etc / apache2 / sites-available / gitw-ssl.conf
:
& lt; IfModule mod_ssl.c & gt; & lt; VirtualHost _default_: 443 & gt; ServerAdmin webmaster @ localhost ServerName localhost HeaderName HEADER DocumentRoot / var / www / html Информация о LogLevel ErrorLog $ {APACHE_LOG_DIR} /error-gw.log CustomLog $ {APACHE_LOG_DIR} /access-gw.log объединяет SSLEngine в SSLCertificateFile / etc / apache2 / ssl / my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key & lt; FilesMatch "\. (cgi | shtml | phtml | php) $" & gt; SSLOptions + StdEnvVars & lt; / FilesMatch & gt; & lt; Directory / usr / lib / cgi-bin & gt; SSLOptions + StdEnvVars & lt; / Directory & gt; & lt; IfModule mod_authnz_external.c & gt; # старый стиль: AddExternalAuth pwauth / usr / sbin / pwauth SetExternalAuthMethod pwauth pipe # новый стиль: #DefineExternalAuth pwauth pipe / usr / sbin / pwauth & lt; / IfModule & gt; # как более конкретный, / gitweb / static должен идти первым Alias / gitweb / static / usr / share / gitweb / static Alias / gitweb / var / lib / git # gitweb.cgi alias не является костью - необходима символическая ссылка: Alias gitweb. cgi /usr/share/gitweb/gitweb.cgi & lt; Directory / var / lib / git & gt; Параметры + FollowSymlinks + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительный пользовательский Cgi-скрипт AddHandler .cgi DirectoryIndex gitweb.cgi & lt; / Directory & gt; ScriptAlias / git / / usr / lib / git-core / git-http-backend / & lt; Directory "/ usr / lib / git-core /" & gt; SetEnv GIT_PROJECT_ROOT / var / lib / git SetEnv GIT_HTTP_EXPORT_ALL Опции + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительного пользователя & lt; / Directory & gt; & Lt; / VirtualHost & GT; & Lt; / IfModule & GT;
И, наконец, вы можете сделать:
# не уверены, что нужны также `fcgid auth_digest`: sudo a2enmod ssl cgi alias env rewrite sudo a2ensite gitw- ssl.conf # если не `reload`, используйте` restart`: sudo service apache2 reload
После этого gitweb
должен быть доступен на https: // localhost / gitweb /
(например, https: // localhost / gitweb /? p = testrepo.git; a = summary
); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с:
GIT_SSL_NO_VERIFY = 1 git clone https: //myuser@localhost/git/testrepo.git
Вот что я сделал, чтобы установить gitweb
на Ubuntu 14.04 - с SSL и аутентификацией пользователей системы с помощью pwauth
. По умолчанию gitweb
использует /etc/gitweb.conf
, который ожидает git
проектов в / var / lib / git
.
Итак, я попытался включить здесь git
repos, поэтому в этом примере нам не нужно менять /etc/gitweb.conf
- my / var / lib / git
выглядит так:
$ ls -la / var / lib / git / total 12 drwxrwxrwx 3 root root 4096 Apr 9 16: 01. drwxr-xr-x 75 root root 4096 Apr 7 17:31 .. lrwxrwxrwx 1 myuser myuser 28 апр 9 16:01 gitweb.cgi - & gt; /usr/share/gitweb/gitweb.cgi drwxrwsr-x 7 myuser www-data 4096 10 апреля 17:50 testrepo.git
Итак, помимо ваших репозиториев вам необходимо будет символически привязать /usr/share/gitweb/gitweb.cgi
в этом каталоге тоже ...
Затем вы можете использовать следующее как / etc / apache2 / sites-available / gitw-ssl.conf
:
& lt; IfModule mod_ssl.c & gt; & lt; VirtualHost _default_: 443 & gt; ServerAdmin webmaster @ localhost ServerName localhost HeaderName HEADER DocumentRoot / var / www / html Информация о LogLevel ErrorLog $ {APACHE_LOG_DIR} /error-gw.log CustomLog $ {APACHE_LOG_DIR} /access-gw.log объединяет SSLEngine в SSLCertificateFile / etc / apache2 / ssl / my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key & lt; FilesMatch "\. (cgi | shtml | phtml | php) $" & gt; SSLOptions + StdEnvVars & lt; / FilesMatch & gt; & lt; Directory / usr / lib / cgi-bin & gt; SSLOptions + StdEnvVars & lt; / Directory & gt; & lt; IfModule mod_authnz_external.c & gt; # старый стиль: AddExternalAuth pwauth / usr / sbin / pwauth SetExternalAuthMethod pwauth pipe # новый стиль: #DefineExternalAuth pwauth pipe / usr / sbin / pwauth & lt; / IfModule & gt; # как более конкретный, / gitweb / static должен идти первым Alias / gitweb / static / usr / share / gitweb / static Alias / gitweb / var / lib / git # gitweb.cgi alias не является костью - необходима символическая ссылка: Alias gitweb. cgi /usr/share/gitweb/gitweb.cgi & lt; Directory / var / lib / git & gt; Параметры + FollowSymlinks + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительный пользовательский Cgi-скрипт AddHandler .cgi DirectoryIndex gitweb.cgi & lt; / Directory & gt; ScriptAlias / git / / usr / lib / git-core / git-http-backend / & lt; Directory "/ usr / lib / git-core /" & gt; SetEnv GIT_PROJECT_ROOT / var / lib / git SetEnv GIT_HTTP_EXPORT_ALL Опции + ExecCGI SSLRequireSSL AuthType basic AuthName «Частный репозиторий git» AuthBasicProvider external AuthExternal pwauth Требует действительного пользователя & lt; / Directory & gt; & Lt; / VirtualHost & GT; & Lt; / IfModule & GT;
И, наконец, вы можете сделать:
# не уверены, что нужны также `fcgid auth_digest`: sudo a2enmod ssl cgi alias env rewrite sudo a2ensite gitw- ssl.conf # если не `reload`, используйте` restart`: sudo service apache2 reload
После этого gitweb
должен быть доступен на https: // localhost / gitweb /
(например, https: // localhost / gitweb /? p = testrepo.git; a = summary
); и вы должны иметь возможность клонировать (в случае самоподписанного SSL-сертификата) с:
GIT_SSL_NO_VERIFY = 1 git clone https: //myuser@localhost/git/testrepo.git