何年も前にブログ投稿[WindowsシステムでのApacheGitサーバーの構成](https://beginor.github.io/2013/03/01/config-apache-git-server-on-windows.html)を公開しました。これは主に、Apacheの基本認証+ git-http-backendで実装されました。今度は、同様の単純なものを会社のvpsにデプロイする必要があります。 git server、今回のソフトウェア環境は以下の通りです。
git-http-backend
を使用してgitサービスを構築する原理は似ており、主にユーザー認証にWebサーバー(apache / nginx)を使用し、ユーザー情報をCGIプログラム git-http-backend
に渡して実現します。 httpを介してgit操作を完了します。
次のコマンドを入力して、3つの必要なパッケージをインストールします。
apt-get install git-core nginx fcgiwrap
私の目的は、nginxのデフォルトWebサイトの下に仮想ディレクトリ / git /
を追加し、変更が必要な / git / xxx.git
の形式にアクセスして、サーバー上の xxx.git
コードベースにアクセスすることです。 nginxのデフォルトのWebサイト構成ファイル / etc / nginx / sites-available / default
に、次の情報を追加します。
# で構成/gitで始まる仮想ディレクトリ
location ~/git(/.*){
# 基本認証を使用する
auth_basic "Restricted";
# 認証されたユーザーファイル
auth_basic_user_file /etc/nginx/passwd;
# FastCGIパラメータ
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
# サーバー上のgitライブラリのルートディレクトリ
fastcgi_param GIT_PROJECT_ROOT /var/git-repos;
fastcgi_param PATH_INFO $1;
# 認証されたユーザー情報をfastcgiプログラムに渡します
fastcgi_param REMOTE_USER $remote_user;
# デフォルトのfastcgiパラメーターを含めます。
include fastcgi_params;
# クライアントの最大許容ポストを100メガバイトに調整します
max_client_body_size 100M;}
nginx [ngx http auth basic module](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html)を参照してください。ユーザー認証ファイルの形式は、次のとおりです。
# comment
name1:password1
name2:password2:comment
name3:password3
htpasswd
コマンドを使用してユーザーを作成できます。サーバーにそのようなコマンドがない場合は、コマンド apt-get install apache2-utils
を入力してこのコマンドをインストールできます。このコマンドをインストールした後、このコマンドを使用して認証済みユーザーを作成できます。たとえば、ユーザーuser1を作成するには、次のようにコマンドを入力します。
htpasswd /etc/nginx/passwd user1
次に、プロンプトに従ってパスワードを入力します。
上で構成されたgitとディレクトリは / var / git-repos
です。このディレクトリの空のコードベースを初期化します。コマンドは、次のとおりです。
cd /var/git-repos
git init --bare test.git
test.gitの権限を確認するように注意してください。権限が不十分な場合は、次のコマンドを使用して権限を設定します。
chmod a+rw -R test.git
次のコマンドを入力してnginxを再起動し、gitサービスをテストします。
nginx -s reload
git clone https://server-name/git/test.git
Recommended Posts