Install git-core and apache2. Also make sure required modules are loaded:
apt-get install git-core apache2 a2enmod cgi alias env rewrite
To create a git server with smart protocol, I used the following script in /var/gitwww:
#!/bin/bash WORKDIR=`pwd` REPO=$1 # create dir echo $REPO mkdir -p $REPO cd $REPO # init repo git init --bare touch git-daemon-export-ok cp hooks/post-update.sample hooks/post-update git config http.receivepack true git update-server-info chown -R www-data:www-data . # done cd $WORKDIR
And I configured my default virtualhost as following:
VirtualHost *:80> ServerAdmin webmaster@localhost SetEnv GIT_PROJECT_ROOT /var/gitwww SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/lib/git-core/git-http-backend/ Alias /git /var/gitwww <Directory /usr/lib/git-core> Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AllowOverride None Order allow,deny Allow from all </Directory> DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # for apache 2.4 (ubuntu 14.04+) use the following line instead of the 2 above: # Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
After that restart your apache and create a master branch from your client:
git clone http://_server_/git/_project_ cd _project_ touch README git add . git commit -m 'initial commit' -a git push origin master