Showing posts with label mac. Show all posts
Showing posts with label mac. Show all posts

Aug 18, 2011

OSX に、Mercurial のリポジトリを構築

macports を使って、mercurial をインストール
sudo port install mercurial


リポジトリの作成
※ パーミッション等、Apacheのユーザが書き込めるようにしておく
mkdir -p /path/to/hg/repo

cd /path/to/hg/repo
hg init someproject


hgrc の設置
vi /path/to/hg/repo/someproject/.hg/hgrc


# こんな感じ
[web]
contact = me@me.com
description = Some Project

allow_push = *
allow_archive = zip
push_ssl = true

# 詳しくは
man hgrc


hgweb.config の設置
vi /path/to/hg/hgweb.config


# こんな感じ
[paths]
/ = /path/to/hg/repo/*


hgweb.cgi の設置
cp /opt/local/share/mercurial/hgweb.cgi /path/to/hg/

vi /path/to/hg/hgweb.cgi

# 設定ファイルのパスを修正
config = "/path/to/hg/hgweb.config"

# 文字化けする場合は以下を追加
import os
os.environ["HGENCODING"] = "UTF-8"

# 以下必要に応じて書き換え
import sys; sys.path.insert(0, "/opt/local/Library/Frameworks/Python.framework/Versions/Current/lib/python2.6/site-packages")


Apacheの設定
sudo vi /etc/apache2/other/hg.config


# こんな感じ
Alias /hg /path/to/hg

<Directory "/path/to/hg">
Options ExecCGI FollowSymLinks
DirectoryIndex hgweb.cgi
AddHandler cgi-script .cgi

AuthType Basic
AuthName "Repository"
AuthUserFile /private/etc/apache2/.htpasswd
AuthGroupFile /dev/null

Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx/24

Require valid-user
</Directory>

# Apache再起動
sudo /usr/sbin/apachectl restart


参考サイト

http://www.neutralworks.com/blog/osx/mecurial-on-mac.html
http://blog.bluegold.me/2010/02/setup-mercurial-hgwebdir-fcgi-on-nginx/
http://d.hatena.ne.jp/eldesh/20110125/1295938971
http://www.proton.jp/main/programming/mercurial.html

Mar 2, 2011

自宅のMac から、会社のWindows を経由して、IP制限のかかった環境へSSH

会社のPCから、自宅の環境へVPNで接続し、会社のPCに立てた HTTP Proxyを介して、
IP制限された接続環境へ、http, https, ssh するようにしてみました。

VPN 接続

まず、自宅に、Linux でVPNサーバを立ち上げます。
PPTP接続の環境は簡単に構築できます。
「 CentOS pptpd 」などで検索すると色々出てきます。
私の自宅の環境は、だいぶ前に作って、詳細を掘り起こすのが、、、割愛します。
会社PC --->  自宅VPNサーバ

HTTP Proxy の設定

会社のPCに、Free Proxy などを使って、HttpProxy を立ち上げます。
自宅Mac -- (VPN) --> 会社Win (Http Proxy) --> (http, https, ssh) --> 目的サーバ

プロキシ構成ファイルの作成

http, https のアクセスは、制限のあるサーバだけをプロキシ経由にします。
そのため、例えば Mac の場合だと、以下にプロキシ構成ファイルを設定します。

システム環境設定 -> ネットワーク -> 詳細 -> プロキシ -> 自動プロキシ構成

プロキシ構成ファイル(.pac)の例
function FindProxyForURL(url, host) {
    var proxy = "PROXY mypc.at.office:8080";
    if (isPlainHostName(host)
        || shExpMatch(host,"client.server")) {
        return proxy;
    }
    return "DIRECT";
}


sshに、ProxyCommand の設定

まず、connect.c をインストールします。
curl http://www.meadowy.org/~gotoh/ssh/connect.c > connect.c
gcc connect.c -o connect -lresolv

~/.ssh/config の設定をします。
Host *.client.server
    ProxyCommand /path/to/connect -H mypc.at.office:8080 %h %p


参考サイト

http://www.gcd.org/sengoku/docs/NikkeiLinux00-12/config.ja.html
http://dsas.blog.klab.org/archives/50765770.html
http://bent.latency.net/bent/darcs/goto-san-connect-1.85/src/connect.html
http://findproxyforurl.com/