馬刺しの雑記帳

PC全般について、思いつくままに書いていきます。メモ書き多めかも。

HTTPなローカルGitサーバの構築

よく躓くのでメモ書き。
とりあえず使えればいいやって感じで。

環境

目的

  • HTTPでアクセスできるようにする。一応Basic認証をつける。
  • 個人用で外部公開はしないので、SSHHTTPSでの暗号化は考慮しない。
  • とりあえず動けばOK。
  • 基本rootで作業。

サーバ側の準備

CentOS 7のインストール

特別なことはせず、Minimalインストール。

パッケージのアップデート

yum -y update

使用するパッケージのインストール

yum -y install git git-all git-daemon vim httpd

SELinuxの無効化

vim /etc/selinux/config

再起動

reboot
Apacheの設定

git.confの作成

vim /etc/httpd/conf.d/git.conf
SetEnv GIT_PROJECT_ROOT /var/lib/git
SetEnv GIT_HTTP_EXPORT_ALL

ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/

<LocationMatch "^/git/">
        AuthType Basic
        AuthName "Git"
        AuthUserFile /etc/httpd/htpasswd/.htpasswd
        require valid-user
        Order allow,deny
        Allow from all
</LocationMatch>

.htpasswdファイルの作成

mkdir /etc/httpd/htpasswd
cd /etc/httpd/htpasswd
htpasswd -c .htpasswd user
リポジトリの作成

初期化

mkdir /var/lib/git/***.git
cd /var/lib/git/***.git
git init --bare --shared

所有者、権限変更

chown -R user:user /var/lib/git/***git
chmod -R 777 /var/lib/git/***git

Apache起動

systemctl start httpd
systemctl enable httpd


とりあえずBasic認証付きでgit push origin masterに成功。
権限とかもっと厳密にやるべきではありますが…とりあえず動けばよいということで。