私はdomain.frにCentOS 5サーバーを持っています。 gitで使用できるようにサブドメインを設定しようとしています:git.domain.fr
私のリポジトリは/ home/gitにあります(例/home/git/repos.git)
git-http-backend
とNginxをインストールしました。私はこのようにリポジトリを設定しました:
cd /home/git/repos.git && git --bare init
git.conf
(nginx.conf
に含まれる)を以下のように設定しました。
ただし、クライアントシェルで「リポジトリが見つかりません」という致命的なエラーが発生します:git clone http://git.domain.fr/repos.git
誰か私が何をすべきか知っていますか?それはとても単純に思えます、それが何もないと確信しているので私はイライラしています。
server {
listen 80;
server_name git.domain.fr;
root /home/git;
location ~ /(/.*) {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/bin/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL true;
fastcgi_param GIT_PROJECT_ROOT /home/git;
fastcgi_param PATH_INFO $1;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
}
私はこのスニペットをSO Q&Aタイトル: ユーザー/パスワードを使用してNGINX経由でHTTP経由でGITを提供する方法? で見つけました。
http {
...
server {
listen 80;
server_name git.mydomain.com;
location ~ /git(/.*) {
# fcgiwrap is set up to listen on this Host:port
fastcgi_pass localhost:9001;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
# export all repositories under GIT_PROJECT_ROOT
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /srv/git;
fastcgi_param PATH_INFO $1;
}
}
}
私はあなたのセットアップがこれをできるだけミラーリングすることを確認します。また、Apacheが/home/git
ディレクトリにアクセスしていると思いますので、このユーザーがアクセスできるように注意する必要があります。さらに、SELinuxを使用している場合は、プロセス(httpd)が/home
に適切なコンテキストを追加していることを確認して、このディレクトリにもアクセスできるようにする必要があります。
Apacheが作動する場所の詳細については、/var/log/httpd/error_log
ログファイルを参照してください。