displayHTTPSでプライベートCA使用時にアクセスできないコメントgitの環境を整えてみた最近、バージョン管理システムとして流行のgitを使う環境を整えてみましたので記録。GitLabをインストールする?リモートリポジトリ職場からも自宅からもリポジトリにアクセスできるようにしたかったので、リモートリポジトリを作成しました。HTTP職場のファイアウォールがきつく、HTTPおよびHTTPSしか使えないのでHTTPアクセスを確保することにしました。以前はWebDAVがよく使われていたようですが、その方法だと速度が遅いそうな。HTTPとのことです(たぶん)。http://progit.org/2010/03/04/smart-http.html高速化の方法は上記のブログを確認していただけると分かると思いますが(読んでない)、CGIを使っているので設定は簡単でした。設定はブログの通りですが、ちょっと解説を付けておきます。最低限のapacheの知識はあるものとします。aptでインストール関連パッケージをインストールしておきます。これはVine6の例です。valid-user</Location>こんな感じです。青色の部分はgitweb用の設定なので使わない場合は不要です。上の例では/var/git/reposがリポジトリのディレクトリなので、そこにプロジェクトを作成してみます。initきちんと理解していませんが、リモートリポジトリの場合は--bareオプションを付けて作成します。これでmyprojectプロジェクトが作成されました。最低限myprojectディレクトリにapacheのユーザーが読み書き可能である必要があるのでパーミッションを変更しておきます。/var/git/repos/myprojectこの辺は環境に合わせて適宜行って下さい。gitwebの設定Webブラウザでリポジトリを閲覧できるようにgitwebの設定を行います。gitweb.cgiはPerlスクリプトです。設定ファイルは/etc/gitweb.confを参照するようなので、作成します。ここでは最低限の設定のみを行います。$ENV{GIT_PROJECT_ROOT};これだけです。ここでは環境変数GIT_PROJECT_ROOTを指定していますが、直接指定でも可能です。通常はapacheで設定したディレクトリと同じはずなので、こうしておけばapache側の設定を変更した際にいちいち修正しなくて済みます。アクセス方法gitリポジトリへのアクセスリポジトリへは、http://myserver/git/myprojectのように指定します。gitwebへのアクセスgitwebは、http://myserver/gitwebでアクセスできます。'refuse'.この場合、リモート側のリポジトリがbareになっていません。初期化時には--bareを付ける必要があります。trueこれで使用可能になります。libcurlのデバッグ環境変数GIT_CURL_VERBOSE=1でverboseモードになるのでエラーの特定がしやすくなるかも。200いくら探しても見つからなかったのでメモ。大きなファイル(15MBぐらい)をHTTP経由でpushするときに発生しました。cURLのエラー(55)はネットワーク接続が切られた、のようなエラーのようです。POSTデータが多くてゲートウェイプロキシで切られてました・・・そんな落とし穴・・・そんなわけでHTTPSなら大丈夫なようでした。display:というエラーが出てコンソールからログインできない場合があります。これは環境変数SSH_ASKPASSに/usr/libexec/openssh/gnome-ssh-askpassといったようなGUIが指定されているために起こるみたいです。単純にアンセットすればOKです。SSH_ASKPASShttp://kartzontech.blogspot.com/2011/04/how-to-disable-gnome-ssh-askpass.htmlHTTPSでプライベートCA使用時にアクセスできないプライベートサーバなどではHTTPS使用時にCAが信頼できない、ということでエラーが出ます。failedその時は、http.sslcainfoを設定します。