差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン | |||
|
programming:python:mercurial:web:start [2021/05/22 18:26] yuki 削除 |
— (現在) | ||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| - | ====== Web経由のアクセス設定 ====== | ||
| - | |||
| - | <note> | ||
| - | * Ubuntu Server 10.04 | ||
| - | * apt-getした場合のmercurialは1.4.3 | ||
| - | * apache2は導入済みと仮定 | ||
| - | * Mercurial Webサイトのディレクトリ : /var/hg/ | ||
| - | * プロジェクトAのリポジトリ : /var/hg/project-a | ||
| - | * プロジェクトBのリポジトリ : /var/hg/project-b | ||
| - | </note> | ||
| - | |||
| - | - 必要モジュールの入手 | ||
| - | * <code>apt-get install mercurial libapache2-mod-wsgi</code> | ||
| - | - cgiの設置 | ||
| - | * <code>mkdir /var/hg | ||
| - | cd /var/hg | ||
| - | cp /usr/share/doc/mercurial/examples/hgwebdir.cgi . | ||
| - | chmod 700 hgwebdir.cgi</code> | ||
| - | - apacheの設定 | ||
| - | * <code>vi /etc/apache2/sites-available/default | ||
| - | |||
| - | ScriptAlias /hg /var/hg/hgwebdir.cgi | ||
| - | <Directory /var/hg> | ||
| - | AuthType Basic | ||
| - | AuthName "Mercurial repositories" | ||
| - | AuthUserFile /etc/apache2/hgusers | ||
| - | Require valid-user | ||
| - | </Directory></code> | ||
| - | * Digest認証の場合は、AuthTypeをDigestに。 | ||
| - | - apacheの認証設定 | ||
| - | * <code>htpasswd -mc /etc/apache2/hgusers admin | ||
| - | htpasswd -m /etc/apache2/hgusers onechan | ||
| - | htpasswd -m /etc/apache2/hgusers imoto</code> | ||
| - | * Diegst認証の場合は、こんな感じか。 | ||
| - | * <code>htdigest -m /etc/apache2/hgusers 'Mercurial repositories' admin</code> | ||
| - | * Ubuntuのapache2はauth_digestが有効になっていないかもしれないので、必要なら有効にする。 | ||
| - | * <code>a2enmod auth_digest enable</code> | ||
| - | - apacheの再起動 | ||
| - | * <code>service apache2 restart</code> | ||
| - | - リポジトリの作成 | ||
| - | * <code>mkdir /var/hg/project-a | ||
| - | cd /var/hg/project-a | ||
| - | hg init | ||
| - | mkdir /var/hg/project-b | ||
| - | cd /var/hg/project-b | ||
| - | hg init</code> | ||
| - | - リポジトリの登録設定 | ||
| - | * <code>cd /var/hg | ||
| - | echo "[collections]" >> hgweb.config | ||
| - | echo "/var/hg/project-a = project-a" >> hgweb.config | ||
| - | echo "/var/hg/project-a = project-b" >> hgweb.config | ||
| - | chown -R www-data.www-data /var/hg</code> | ||
| - | * 1.6以降では、[collecttions]は[paths]と書く必要があると思う。 | ||
| - | - おしまい。 | ||
| - | * 例えばこんな。 | ||
| - | * <code>hg clone http://www.example.com/hg/project-a</code> | ||
| - | |||
| - | * おまけ | ||
| - | * 特定のユーザからのアクセスを弾きたい時 | ||
| - | * hgrcの[web]セクションに"deny_read = <username>"と書けば、一覧からも消えるしアクセスしたら"read not authorized"にできる。 | ||
| - | * こういうのを書いて、引数に付けた名前のプロジェクトをクイックスタート!ってな感じで。 | ||
| - | * <code>#!/bin/sh | ||
| - | mkdir /var/www/hg/$1 | ||
| - | cd /var/www/hg/$1 | ||
| - | hg init | ||
| - | cd .hg | ||
| - | |||
| - | echo "[web]" >> hgrc | ||
| - | echo "push_ssl = false" >> hgrc | ||
| - | echo "allow_push = root" >> hgrc | ||
| - | echo "contact = root@example.com" >> hgrc | ||
| - | echo "name = $1" >> hgrc | ||
| - | echo "description = None" >> hgrc | ||
| - | |||
| - | echo "/var/www/hg/$1 = $1" >> /var/www/hg/hgweb.config | ||
| - | |||
| - | chown -R www-data.www-data /var/www/hg/$1 | ||
| - | |||
| - | ls -l /var/www/hg | grep $1</code> | ||
| - | |||
