Sophie

Sophie

distrib > Mageia > 7 > aarch64 > by-pkgid > 7e647d9940d31b34c253e6f71c416c4b > files > 3471

bzr-2.7.0-6.mga7.aarch64.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Apache を使って Bazaar サーバーをたてる &#8212; Bazaar 2.7.0 ドキュメント</title>
    <link rel="stylesheet" href="../_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <script type="text/javascript" src="../_static/translations.js"></script>
    
    <link rel="shortcut icon" href="../_static/bzr.ico"/>
    <link rel="search" title="検索" href="../search.html" />
    <link rel="next" title="プラグインを書く" href="writing_a_plugin.html" />
    <link rel="prev" title="Eメールを設定する" href="setting_up_email.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="writing_a_plugin.html" title="プラグインを書く"
             accesskey="N">次へ</a></li>
        <li class="right" >
          <a href="setting_up_email.html" title="Eメールを設定する"
             accesskey="P">前へ</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Bazaarユーザーガイド</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="apache-bazaar">
<h1>Apache を使って Bazaar サーバーをたてる<a class="headerlink" href="#apache-bazaar" title="このヘッドラインへのパーマリンク">¶</a></h1>
<p>このドキュメントでは、 Apache 2.0 と FastCGI, mod_python, mod_wsgi の
どれかを利用して Bazaar の HTTP スマートサーバーをセットアップする方法を
説明します。</p>
<p>スマートサーバーに関する詳細な情報とそれを設定する他の方法に関しては、
<a class="reference external" href="server.html">スマートサーバーのドキュメント</a> を参照してください。</p>
<div class="section" id="id2">
<h2>例<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>プレーンなHTTPで <cite>/srv/example.com/www/code</cite> を <cite>http://example.com/code/...</cite> として
すでに公開しているとします。これはbzrのブランチと <cite>/srv/example.com/www/code/branch-one</cite>
と <cite>/srv/example.com/www/code/my-repo/branch-two</cite> のようなディレクトリを含みます。
既存のHTTP形式のアクセス権限に加えてリードオンリーのスマートサーバーのアクセス権限を
これらのディレクトリに提供したい場合を考えます。</p>
</div>
<div class="section" id="apache-2-0">
<h2>Apache 2.0を設定する<a class="headerlink" href="#apache-2-0" title="このヘッドラインへのパーマリンク">¶</a></h2>
<div class="section" id="fastcgi">
<h3>FastCGI<a class="headerlink" href="#fastcgi" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>最初に、mod_fastcgiを設定します。たとえば次の行をhttpd.confに追加します:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">LoadModule</span> <span class="n">fastcgi_module</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">apache2</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">mod_fastcgi</span><span class="o">.</span><span class="n">so</span>
<span class="n">FastCgiIpcDir</span> <span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">apache2</span><span class="o">/</span><span class="n">fastcgi</span>
</pre></div>
</div>
<p>我々の例では、<cite>http://example.com/code</cite> で <cite>/srv/example.com/www/code</cite> をすでに提供しているので
既存のApacheの設定は次のようになります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Alias</span> <span class="o">/</span><span class="n">code</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">code</span>
<span class="o">&lt;</span><span class="n">Directory</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">www</span><span class="o">/</span><span class="n">code</span><span class="o">&gt;</span>
    <span class="n">Options</span> <span class="n">Indexes</span>
    <span class="c1"># ...</span>
<span class="o">&lt;/</span><span class="n">Directory</span><span class="o">&gt;</span>
</pre></div>
</div>
<p>.bzr/smartの形式で終わるURLに対するすべてのリクエストを扱うために
次のように変更する必要があります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>Alias /code /srv/example.com/www/code
&lt;Directory /srv/example.com/www/code&gt;
    Options Indexes FollowSymLinks
    RewriteEngine On
    RewriteBase /code
    RewriteRule ^(.*/)?\.bzr/smart$ /srv/example.com/scripts/bzr-smart.fcgi
&lt;/Directory&gt;

# bzr-smart.fcgiはDocumentRootの元に存在しないので、実行されるように
# AliasはこれをURLの名前空間のエイリアスにする。
Alias /srv/example.com/scripts/bzr-smart.fcgi /srv/example.com/scripts/bzr-smart.fcgi
&lt;Directory /srv/example.com/scripts&gt;
    Options ExecCGI
    &lt;Files bzr-smart.fcgi&gt;
        SetHandler fastcgi-script
    &lt;/Files&gt;
&lt;/Directory&gt;
</pre></div>
</div>
<p>この設定はFastCGIを通して <cite>/code</cite> 内部の <cite>/.bzr/smart</cite> で終わるURLに対する
Bazaarのスマートサーバーへのリクエストを扱うようにApacheに指示します。</p>
<p>詳細な情報は <a class="reference external" href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> と <a class="reference external" href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html">mod_fastcgi</a> のドキュメントを参照してください。</p>
</div>
<div class="section" id="mod-python">
<h3>mod_python<a class="headerlink" href="#mod-python" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>最初に、次のようなコードを httpd.conf に追加して mod_python を設定します:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">LoadModule</span> <span class="n">python_module</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">apache2</span><span class="o">/</span><span class="n">modules</span><span class="o">/</span><span class="n">mod_python</span><span class="o">.</span><span class="n">so</span>
</pre></div>
</div>
<p>FastCGI と同じ方法で mod_rewrite を用いて書き換えルールを定義します:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>RewriteRule ^(.*/)?\.bzr/smart$ /srv/example.com/scripts/bzr-smart.fcgi
</pre></div>
</div>
<p>変更は次のようになります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>RewriteRule ^(.*/)?\.bzr/smart$ /srv/example.com/scripts/bzr-smart.py
</pre></div>
</div>
<p>mod_fastcgi のように、スクリプトがどのように扱われるのかも定義します:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Alias</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">scripts</span><span class="o">/</span><span class="n">bzr</span><span class="o">-</span><span class="n">smart</span><span class="o">.</span><span class="n">py</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">scripts</span><span class="o">/</span><span class="n">bzr</span><span class="o">-</span><span class="n">smart</span><span class="o">.</span><span class="n">py</span>
<span class="o">&lt;</span><span class="n">Directory</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">scripts</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">Files</span> <span class="n">bzr</span><span class="o">-</span><span class="n">smart</span><span class="o">.</span><span class="n">py</span><span class="o">&gt;</span>
        <span class="n">PythonPath</span> <span class="s2">&quot;sys.path+[&#39;/srv/example.com/scripts&#39;]&quot;</span>
        <span class="n">AddHandler</span> <span class="n">python</span><span class="o">-</span><span class="n">program</span> <span class="o">.</span><span class="n">py</span>
        <span class="n">PythonHandler</span> <span class="n">bzr</span><span class="o">-</span><span class="n">smart</span><span class="p">::</span><span class="n">handler</span>
    <span class="o">&lt;/</span><span class="n">Files</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">Directory</span><span class="o">&gt;</span>
</pre></div>
</div>
<p>この設定は mod_python を通して <cite>/code</cite> 内部の <cite>/.bzr/smart</cite> で終わるURLに対するリクエストを
Bazaar のスマートサーバーに渡すように指示します。</p>
<p>注: bzrlib が PATH の中に存在しない場合、次の行を変更する必要があります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PythonPath</span> <span class="s2">&quot;sys.path+[&#39;/srv/example.com/scripts&#39;]&quot;</span>
</pre></div>
</div>
<p>変更後は次のようになります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">PythonPath</span> <span class="s2">&quot;[&#39;/path/to/bzr&#39;]+sys.path+[&#39;/srv/example.com/scripts&#39;]&quot;</span>
</pre></div>
</div>
<p>詳細な情報は <a class="reference external" href="http://www.modpython.org/">mod_python</a> のドキュメントを参照してください。</p>
</div>
<div class="section" id="mod-wsgi">
<h3>mod_wsgi<a class="headerlink" href="#mod-wsgi" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>最初に、 a2enmod wsgi などで mod_wsgi を有効にしておきます。
次に、 <cite>.bzr/smart</cite> で終わる全ての URL に対するリクエストを mod_wsgi 経由
で処理するように設定します。設定例は次のようになります。</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>WSGIScriptAliasMatch ^/code/.*/\.bzr/smart$ /srv/example.com/scripts/bzr.wsgi

#The three next lines allow regular GETs to work too
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/code/.*/\.bzr/smart$
RewriteRule ^/code/(.*/\.bzr/.*)$ /srv/example.com/www/code/$1 [L]

&lt;Directory /srv/example.com/www/code&gt;
    WSGIApplicationGroup %{GLOBAL}
&lt;/Directory&gt;
</pre></div>
</div>
<p>この設定では、 Apache は <cite>/code</cite> 以下の <cite>/.bzr/smart</cite> で終わる URL に
対する全てのリクエストを WSGI 経由で Bazaar のスマートサーバーに渡し、
それ以外の全てのリクエストは Apache が直接扱うようにしています。</p>
<p>詳細は <a class="reference external" href="http://code.google.com/p/modwsgi/">mod_wsgi</a> のドキュメントを参照してください。</p>
</div>
</div>
<div class="section" id="bazaar">
<h2>Bazaarを設定する<a class="headerlink" href="#bazaar" title="このヘッドラインへのパーマリンク">¶</a></h2>
<div class="section" id="id5">
<h3>FastCGI<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p><cite>/srv/example.com/scripts/bzr-smart.fcgi</cite> でスマートサーバーを実行するためにApacheを設定しました。
これはスマートサーバーを設定するために書く必要のある単なるシンプルなスクリプトで
サーバーをFastCGIのゲートウェイに結びつけます。次のようになります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">fcgi</span>
<span class="kn">from</span> <span class="nn">bzrlib.transport.http</span> <span class="k">import</span> <span class="n">wsgi</span>

<span class="n">smart_server_app</span> <span class="o">=</span> <span class="n">wsgi</span><span class="o">.</span><span class="n">make_app</span><span class="p">(</span>
    <span class="n">root</span><span class="o">=</span><span class="s1">&#39;/srv/example.com/www/code&#39;</span><span class="p">,</span>
    <span class="n">prefix</span><span class="o">=</span><span class="s1">&#39;/code/&#39;</span><span class="p">,</span>
    <span class="n">path_var</span><span class="o">=</span><span class="s1">&#39;REQUEST_URI&#39;</span><span class="p">,</span>
    <span class="n">readonly</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    <span class="n">load_plugins</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    <span class="n">enable_logging</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>

<span class="n">fcgi</span><span class="o">.</span><span class="n">WSGIServer</span><span class="p">(</span><span class="n">smart_server_app</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
</pre></div>
</div>
<p> <cite>fcgi</cite> のモジュールはhttp://svn.saddi.com/py-lib/trunk/fcgi.pyで見つかります。
これは <a class="reference external" href="http://www.saddi.com/software/flup/">flup</a> の一部です。</p>
</div>
<div class="section" id="id6">
<h3>mod_python<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p><cite>/srv/example.com/scripts/bzr-smart.py</cite> でスマートサーバーを実行するためにApacheを設定しました。
これはスマートサーバーを設定するために書く必要のあるシンプルなスクリプトでサーバーをmod_pythonの
ゲートウェイに結びつけます。次のようになります:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">modpywsgi</span>
<span class="kn">from</span> <span class="nn">bzrlib.transport.http</span> <span class="k">import</span> <span class="n">wsgi</span>

<span class="n">smart_server_app</span> <span class="o">=</span> <span class="n">wsgi</span><span class="o">.</span><span class="n">make_app</span><span class="p">(</span>
    <span class="n">root</span><span class="o">=</span><span class="s1">&#39;/srv/example.com/www/code&#39;</span><span class="p">,</span>
    <span class="n">prefix</span><span class="o">=</span><span class="s1">&#39;/code/&#39;</span><span class="p">,</span>
    <span class="n">path_var</span><span class="o">=</span><span class="s1">&#39;REQUEST_URI&#39;</span><span class="p">,</span>
    <span class="n">readonly</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    <span class="n">load_plugins</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    <span class="n">enable_logging</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>

<span class="k">def</span> <span class="nf">handler</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;Handle a single request.&quot;&quot;&quot;</span>
    <span class="n">wsgi_server</span> <span class="o">=</span> <span class="n">modpywsgi</span><span class="o">.</span><span class="n">WSGIServer</span><span class="p">(</span><span class="n">smart_server_app</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">wsgi_server</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">request</span><span class="p">)</span>
</pre></div>
</div>
<p><cite>modpywsgi</cite> モジュールは
<a class="reference external" href="http://ice.usq.edu.au/svn/ice/trunk/apps/ice-server/modpywsgi.py">http://ice.usq.edu.au/svn/ice/trunk/apps/ice-server/modpywsgi.py</a> で見つかります。
これは <a class="reference external" href="http://dev.pocoo.org/projects/pocoo/">pocoo</a> の一部でした。 modpywsgi.py を bzr-smart.py と同じディレクトリ
(すなわち/srv/example.com/scripts/)に設置していることを確認してください。</p>
</div>
<div class="section" id="id7">
<h3>mod_wsgi<a class="headerlink" href="#id7" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>We've configured Apache to run the smart server at
<cite>/srv/example.com/scripts/bzr.wsgi</cite>.  This is just a simple script we need
to write to configure a smart server, and glue it to the WSGI gateway.
Here's what it looks like:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">bzrlib.transport.http</span> <span class="k">import</span> <span class="n">wsgi</span>

<span class="k">def</span> <span class="nf">application</span><span class="p">(</span><span class="n">environ</span><span class="p">,</span> <span class="n">start_response</span><span class="p">):</span>
    <span class="n">app</span> <span class="o">=</span> <span class="n">wsgi</span><span class="o">.</span><span class="n">make_app</span><span class="p">(</span>
        <span class="n">root</span><span class="o">=</span><span class="s2">&quot;/srv/example.com/www/code/&quot;</span><span class="p">,</span>
        <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;/code&quot;</span><span class="p">,</span>
        <span class="n">readonly</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
        <span class="n">enable_logging</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">app</span><span class="p">(</span><span class="n">environ</span><span class="p">,</span> <span class="n">start_response</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="id8">
<h2>クライアント<a class="headerlink" href="#id8" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>これで <cite>bzr+http://</cite> 形式のURLやただの <cite>http://</cite> のURLを利用できます:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bzr</span> <span class="n">log</span> <span class="n">bzr</span><span class="o">+</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">code</span><span class="o">/</span><span class="n">my</span><span class="o">-</span><span class="n">branch</span>
</pre></div>
</div>
<p>プレーンなHTTP形式のアクセスも持続します:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bzr</span> <span class="n">log</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">code</span><span class="o">/</span><span class="n">my</span><span class="o">-</span><span class="n">branch</span>
</pre></div>
</div>
</div>
<div class="section" id="id9">
<h2>高度な設定<a class="headerlink" href="#id9" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>BazaarのHTTPスマートサーバーはWSGIアプリケーションなので、
WSGI標準に準拠するサードパーティのWSGIのミドルウェアもしくはサーバーで利用できます。
唯一の要件は以下のとおりです:</p>
<blockquote>
<div><ul class="simple">
<li><cite>SmartWSGIApp</cite> をコンストラクトするためには、それが提供する <strong>root transport</strong> を指定する必要があります。</li>
<li>それぞれのリクエストの <cite>environ</cite> dict は <strong>'bzrlib.relpath'</strong> 変数の設定を持たなければなりません。</li>
</ul>
</div></blockquote>
<p>この例で使われている <cite>make_app</cite> ヘルパーは それに渡される <cite>root</cite> パスに基づいたトランスポートを伴う
<cite>SmartWSGIApp</cite> をコンストラクトし、引数 <cite>prefix</cite> と`path_var` に基づくそれぞれのリクエストに対する
 <cite>bzrlib.relpath</cite> を算出します。
上記の例において、これは (Apacheによって設定される)'REQUEST_URI' を取り、接頭辞の '/code/' と接尾辞の '/.bzr/smart'
をはぎ取り、それを 'bzrlib.relpath' として設定するので、 '/code/foo/bar/.bzr/smart' に対するリクエストは
'foo/bzr' の 'bzrlib.relpath' になります。</p>
<p><cite>SmartWSGIApp</cite> を直接コンストラクトすることで、ローカルではないトランスポートに対して
スマートサーバーを設定するもしくは任意任意のパスの変換を行うことは可能です。
詳細な情報に関しては <cite>bzrlib.transport.http.wsgi</cite> のdocstringsと <a class="reference external" href="http://www.python.org/dev/peps/pep-0333/">WSGI標準</a> を参照してください。</p>
<div class="section" id="http-push">
<h3>HTTP スマートサーバー経由で push する<a class="headerlink" href="#http-push" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>HTTP スマートサーバーを通してデータをプッシュすることは可能です。
これを行うための最も簡単な方法は、 <code class="docutils literal notranslate"><span class="pre">wsgi.make_app()</span></code> コールに <code class="docutils literal notranslate"><span class="pre">readonly=False</span></code> を
提供するだけです。ただし、スマートプロトコルは認証機能が含まれないので注意してください。
書き込みのサポートを有効にする場合、
実際にシステム上のデータを書き込みできる人を制限するために、 <code class="docutils literal notranslate"><span class="pre">.bzr/smart</span></code>
URLへの権限を制限するとよいでしょう。例えば Apache で次のような設定を
します。</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">&lt;</span><span class="n">Location</span> <span class="o">/</span><span class="n">code</span><span class="o">&gt;</span>
    <span class="n">AuthType</span> <span class="n">Basic</span>
    <span class="n">AuthName</span> <span class="s2">&quot;example&quot;</span>
    <span class="n">AuthUserFile</span> <span class="o">/</span><span class="n">srv</span><span class="o">/</span><span class="n">example</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">conf</span><span class="o">/</span><span class="n">auth</span><span class="o">.</span><span class="n">passwd</span>
    <span class="o">&lt;</span><span class="n">LimitExcept</span> <span class="n">GET</span><span class="o">&gt;</span>
        <span class="n">Require</span> <span class="n">valid</span><span class="o">-</span><span class="n">user</span>
    <span class="o">&lt;/</span><span class="n">LimitExcept</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">Location</span><span class="o">&gt;</span>
</pre></div>
</div>
<p>現時点では、同じURLに対して読み込み限定の人と読み込みと書き込みの人を
分けることはできません。
(認証を行う)HTTPレイヤーにおいて、すべては単なるPOSTリクエストだからです。
しかしながら、HTTPSアクセスの場合に認証が必要な書き込みサーバーを使い、
プレーンなHTTPは読み込み限定のアクセスを許可することはできます。</p>
<p>HTTPS サイトに対してアクセスしたときに bzr が次のようなエラーを表示する
場合:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bzr</span><span class="p">:</span> <span class="n">ERROR</span><span class="p">:</span> <span class="n">Connection</span> <span class="n">error</span><span class="p">:</span> <span class="n">curl</span> <span class="n">connection</span> <span class="n">error</span> <span class="p">(</span><span class="n">server</span> <span class="n">certificate</span> <span class="n">verification</span> <span class="n">failed</span><span class="o">.</span>
<span class="n">CAfile</span><span class="p">:</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span><span class="n">ca</span><span class="o">-</span><span class="n">certificates</span><span class="o">.</span><span class="n">crt</span> <span class="n">CRLfile</span><span class="p">:</span> <span class="n">none</span><span class="p">)</span>
</pre></div>
</div>
<p>You can workaround it by using <code class="docutils literal notranslate"><span class="pre">https+urllib</span></code> rather than <code class="docutils literal notranslate"><span class="pre">http</span></code> in your
URL, or by uninstalling pycurl.  See <a class="reference external" href="https://bugs.launchpad.net/bzr/+bug/82086">bug 82086</a> for more details.</p>
<p>URL に <code class="docutils literal notranslate"><span class="pre">https</span></code> の代わりに <code class="docutils literal notranslate"><span class="pre">https+urllib</span></code> を使うことで問題を回避
できます。
詳細については <a class="reference external" href="https://bugs.launchpad.net/bzr/+bug/82086">bug 82086</a> を参照してください。</p>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Apache を使って Bazaar サーバーをたてる</a><ul>
<li><a class="reference internal" href="#id2">例</a></li>
<li><a class="reference internal" href="#apache-2-0">Apache 2.0を設定する</a><ul>
<li><a class="reference internal" href="#fastcgi">FastCGI</a></li>
<li><a class="reference internal" href="#mod-python">mod_python</a></li>
<li><a class="reference internal" href="#mod-wsgi">mod_wsgi</a></li>
</ul>
</li>
<li><a class="reference internal" href="#bazaar">Bazaarを設定する</a><ul>
<li><a class="reference internal" href="#id5">FastCGI</a></li>
<li><a class="reference internal" href="#id6">mod_python</a></li>
<li><a class="reference internal" href="#id7">mod_wsgi</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">クライアント</a></li>
<li><a class="reference internal" href="#id9">高度な設定</a><ul>
<li><a class="reference internal" href="#http-push">HTTP スマートサーバー経由で push する</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>前のトピックへ</h4>
  <p class="topless"><a href="setting_up_email.html"
                        title="前の章へ">Eメールを設定する</a></p>
  <h4>次のトピックへ</h4>
  <p class="topless"><a href="writing_a_plugin.html"
                        title="次の章へ">プラグインを書く</a></p>
  <div role="note" aria-label="source link">
    <h3>このページ</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/user-guide/http_smart_server.txt"
            rel="nofollow">ソースコードを表示</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>クイック検索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="検索" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>ナビゲーション</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="writing_a_plugin.html" title="プラグインを書く"
             >次へ</a></li>
        <li class="right" >
          <a href="setting_up_email.html" title="Eメールを設定する"
             >前へ</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >Bazaarユーザーガイド</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2009-2011 Canonical Ltd.
      このドキュメントは <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.4 で生成しました。
    </div>
  </body>
</html>