Debian 8でNginxを使用するHTTP Gitサーバー

Gitは、コードの変更の追跡を可能にするバージョン管理システム(VCS)です。このチュートリアルでは、HTTP(S)Gitサーバーのインストールと、ユーザー名/パスワード認証の追加について説明します。

前提条件

  • Debian 8(ジェシー)。
  • 須藤
  • 任意のテキストエディタ(nanovim)。

必要なソフトウェアのインストール

私たちは、必要があるでしょうnginxgitfcgiwrapとApache httpdのutilsの。端末に入力してください。

sudo apt-get install nginx git fcgiwrap apache2-utils

dpkg 別のプロセス(Apacheなど)がすでにポート80にバインドされている場合、Nginxのインストールに失敗します。

Gitディレクトリの作成

でgitディレクトリを作成する場合/var/www/git、次のコマンドを実行する必要があります。

mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.

Nginxの構成

次に、GitトラフィックをGitに渡すようにNginxを構成する必要があります。これは、デフォルトの構成、カスタムserver {}at /etc/nginx/conf.dまたはに追加できます/etc/nginx/sites-enabled

構成ファイルのパラメーターとディレクティブは、以下にリストされている順序で追加する必要があります。

location ~ (/.*) {
    client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
    auth_basic "Git Login"; # Whatever text will do.
    auth_basic_user_file "/var/www/git/htpasswd";
    include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
    fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
    fastcgi_param GIT_HTTP_EXPORT_ALL "";
    fastcgi_param GIT_PROJECT_ROOT /var/www/git; # /var/www/git is the location of all of your git repositories.
    fastcgi_param REMOTE_USER $remote_user;
    fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
    fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}

gitリポジトリをサブディレクトリに置きたい場合は、http://your-domain.com/repos最初の行を作るlocation ~ /repos(/.*) {、それは正規表現です。

server_nameディレクティブがserver {}他のものと衝突しないことを確認してください。そうしないと、Nginxがリクエストを渡さなくなります。

パスワード認証の追加

NginxはApache htpasswdファイルを受け入れ、それらを作成するには、次のコマンドを実行する必要があります。

htpasswd -c /var/www/git/htpasswd <your username>

パスワードの入力を求められます。さらにユーザーを追加するには、次のようにします。

htpasswd /var/www/git/htpasswd <another username>

最後の一歩

次のコマンドを実行して、すべての変更を適用するためにNginxをリロードしてください。

sudo service nginx reload

これでプライベートGitサーバーができました!楽しい。

(オプション)Gitリポジトリを初期化するスクリプトを作成する

www-data(FastCGIを実行するユーザーアカウント)には、Gitリポジトリへの読み取りおよび書き込みアクセス権が必要であることに注意してください。スクリプトを作成すると、後で頭痛の種を減らすことができます。

スクリプトファイルを開きます。/var/www/git/gitinit.sh以下を貼り付けます:

#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare

次のようにスクリプトを実行できます。

cd /var/www/git
./gitinit.sh repo-name

以下を実行して実行を許可することを忘れないでください:

chmod +x /var/www/git/gitinit.sh


Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。