Changes between Version 1 and Version 2 of TracCgi


Ignore:
Timestamp:
08/27/15 23:20:06 (2 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracCgi

    v1 v2  
    1 = CGI として Trac をインストールする =
     1= Installing Trac as CGI
     2[[TracGuideToc]]
     3[[PageOutline]]
    24
    3 Trac を CGI スクリプトとしてインストールするために、 Web サーバが `trac.cgi` を CGI として実行できるようにする必要があります。
    4 
    5   ''Trac を CGI 経由で使用するのは、他のメソッド [TracModPython mod_python] や [TracFastCgi FastCGI] よりも極めて遅いということに注意して下さい。''
    6 
    7 [http://httpd.apache.org/ Apache HTTPD] を使用している場合、設定方法は 2 通りあります:
    8 
    9  1. `ScriptAlias` を使用し、 `trac.cgi` スクリプトを URL にマップする。
    10  2. CGI プログラムが実行可能な、Web サーバ上のディレクトリ (通常は `cgi-bin` が使用される) に `trac.cgi` ファイルをコピーする。シンボリックリンクでも代用できますが、その場合 `cgi-bin` ディレクトリでは `FollowSymLinks` オプションを有効にして下さい。
    11 
    12 CGI を分かりやすい URL にマッピングできるので、 1 番目のオプションを推奨します。
    13 
    14 それでは、 Apache の設定ファイルに以下のブロックを追記し、ファイル名とロケーションを変更してください:
    15 {{{
    16 ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
     5{{{#!div class=important
     6 ''Please note that using Trac via CGI is the slowest deployment method available. It is slower than [TracModPython mod_python], [TracFastCgi FastCGI] and even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
    177}}}
    188
    19  ''このディレクティブを使用するには `mod_alias` モジュールをインストールし、有効にしておく必要があります。''
     9CGI script is the entrypoint that web-server calls when a web-request to an application is made. The `trac.cgi` script can be created using the `trac-admin <env> deploy <dir>` command which automatically substitutes the required paths, see TracInstall#cgi-bin. Make sure the script is executable by your web server.
    2010
    21 Trac のプロジェクトが 1 つの場合、 `TRAC_ENV` 環境変数を使用してプロジェクトへのパスを指定する必要があります:
    22 {{{
     11== Apache web-server configuration
     12
     13In [http://httpd.apache.org/ Apache] there are two ways to run Trac as CGI:
     14
     15 1. Use a `ScriptAlias` directive that maps an URL to the `trac.cgi` script (recommended)
     16 1. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory.
     17
     18To make Trac available at `http://yourhost.example.org/trac` add `ScriptAlias` directive to Apache configuration file, changing `trac.cgi` path to match your installation:
     19{{{#!apache
     20ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.cgi
     21}}}
     22
     23 ''Note that this directive requires enabled `mod_alias` module.''
     24
     25If you're using Trac with a single project you need to set its location using the `TRAC_ENV` environment variable:
     26{{{#!apache
    2327<Location "/trac">
    2428  SetEnv TRAC_ENV "/path/to/projectenv"
     
    2630}}}
    2731
    28 もしくは、複数のプロジェクトを扱うために、それらの親ディレクトリを `TRAC_ENV_PARENT_DIR` を使用して設定することができます。
    29 {{{
     32Or to use multiple projects you can specify their common parent directory using the `TRAC_ENV_PARENT_DIR` variable:
     33{{{#!apache
    3034<Location "/trac">
    3135  SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir"
     
    3337}}}
    3438
    35  ''`SetEnv` ディレクティブを使用するには `mod_env` モジュールをインストールし有効にしておく必要があります。''
     39 ''Note that the `SetEnv` directive requires enabled `mod_env` module. It is also possible to set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":''
    3640
    37 `http://yourhost.example.org/trac` のような URL で Trac が使用できるようになります。
    38 
    39 [http://httpd.apache.org/docs/suexec.html Apache suEXEC] 機能を使用している場合、 [http://trac.edgewall.org/wiki/ApacheSuexec ApacheSuexec] を参照して下さい。
    40 
    41 システムによっては、`trac.cgi` ファイルの shebang 行を編集して、実際に Python がインストールされているパスを指すように修正する必要がある ''かもしれません''。 Windows システム上では、 Windowsが .cgi ファイルを実行できるように設定する必要があるでしょう。 (エクスプローラ -> ツール -> フォルダオプション -> ファイルの種類 -> CGI を Python と関連付ける)
    42 
    43 == 静的なリソースをマッピングする ==
    44 
    45 このままでも Trac はスタイルシートや画像ファイルなどの静的なリソースを扱えますが、 CGI のセットアップとしては妥当な設定とは言えません。 Web サーバ自身がはるかに効率良くに直接扱うことができるドキュメントまで、 CGI スクリプトとして呼び出してしまうという結果になるからです。
    46 
    47 [http://httpd.apache.org/ Apache HTTPD] のような Web サーバはリソースに対して "Alias" を設定することで仮想の URL を与え、サーバのファイルシステムのレイアウトとは異なる位置にマップすることができます。すでに CGI スクリプトに対して `ScriptAlias` を定義していますので、ファイルシステム上の静的リソースを含んだコンテンツをマッピングすることで CGI スクリプトの要求を回避します。
    48 
    49 Apacheの設定ファイルを再び編集して、 CGI スクリプトの `ScriptAlias` を追記したブロックより '''上に''' 以下のブロックを追記します。ファイル名とロケーションは適宜変更してください:
    50 {{{
    51 Alias /trac/chrome/common /usr/share/trac/htdocs
    52 <Directory "/usr/share/trac/htdocs">
    53   Order allow,deny
    54   Allow from all
    55 </Directory>
     41{{{#!python
     42    import os
     43    os.environ['TRAC_ENV'] = "/path/to/projectenv"
    5644}}}
    5745
    58 `trac.cgi` スクリプトにどんな URL をマッピングしたとしても、 `/chrome/common` というパスでは静的リソースのロケーションを使用するようになります。
     46 '' Or for TRAC_ENV_PARENT_DIR: ''
    5947
    60 例えば、Trac が `/cgi-bin/trac.cgi`にマッピングされているとしたら、AliasのURLは `cgi-bin/trac.cgi/chrome/common` となります。
    61 
    62 代わりに、[wiki:TracIni trac.ini] のオプションで `htdocs_location` を設定することができます:
    63 {{{
    64 [trac]
    65 htdocs_location = /trac-htdocs
     48{{{#!python
     49    import os
     50    os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
    6651}}}
    6752
    68 Trac は HTML ページに静的リソースを組み込むときに、この URL を使用するようになります。もちろん、それでも、特定の URL が指定されたときに 例えば、 Web サーバーのドキュメントルートにディレクトリをコピーするなり、シンボリックリンクを張るなりして、Web サーバ経由で、 Trac が `htdocs` ディレクトリを利用できるようにしておく必要があります:
    69 {{{
    70 $ ln -s /usr/share/trac/htdocs /var/www/your_site.com/htdocs/trac-htdocs
    71 }}}
     53If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature please see [trac:ApacheSuexec].
    7254
    73 == 認証を追加する ==
     55On some systems, you ''may'' need to edit the shebang line in the `trac.cgi` file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a .cgi file (Explorer -> Tools -> Folder Options -> File Types -> CGI).
    7456
    75 Apache で認証を追加する最も単純な方法はパスワードファイルを作ることです。 `htpasswd` プログラムを使用してパスワードファイルを作成します:
    76 {{{
    77 $ htpasswd -c /somewhere/trac.htpasswd admin
    78 New password: <type password>
    79 Re-type new password: <type password again>
    80 Adding password for user admin
    81 }}}
     57=== Using WSGI
    8258
    83 一番最初のユーザ以外は "-c" オプションは必要ありません:
    84 {{{
    85 $ htpasswd /somewhere/trac.htpasswd john
    86 New password: <type password>
    87 Re-type new password: <type password again>
    88 Adding password for user john
    89 }}}
     59You can run a [http://henry.precheur.org/python/how_to_serve_cgi WSGI handler] [http://pythonweb.org/projects/webmodules/doc/0.5.3/html_multipage/lib/example-webserver-web-wsgi-simple-cgi.html under CGI].  You can [wiki:TracModWSGI#Thetrac.wsgiscript write your own application function], or use the deployed trac.wsgi's application.
    9060
    91   ''`htpasswd` についての詳細は man を見てください。''
     61== Mapping Static Resources
    9262
    93 ユーザを作成した後、 TracPermissions の記述通りユーザに権限を設定することができます。
     63See TracInstall#MappingStaticResources.
    9464
    95 Apache の設定ファイルの中にパスワードファイル名を記述し、認証を有効にする必要があります:
    96 {{{
    97 <Location "/trac/login">
    98   AuthType Basic
    99   AuthName "Trac"
    100   AuthUserFile /somewhere/trac.htpasswd
    101   Require valid-user
    102 </Location>
    103 }}}
     65== Adding Authentication
    10466
    105 複数のプロジェクトを持っている場合でも、パスワードファイルはプロジェクトで共通なものを使用することができます:
    106 {{{
    107 <LocationMatch "/trac/[^/]+/login">
    108   AuthType Basic
    109   AuthName "Trac"
    110   AuthUserFile /somewhere/trac.htpasswd
    111   Require valid-user
    112 </LocationMatch>
    113 }}}
    114 
    115 より堅固なセキュリティのために、 SSL を有効にするか、少なくとも "基本認証" の代わりに "ダイジェスト認証" を使用することを推奨します。より詳しい情報については [http://httpd.apache.org/docs/2.0/ Apache HTTPD documentation] を参照して下さい。
     67See TracInstall#ConfiguringAuthentication.
    11668
    11769----
    118 See also:  TracGuide, TracInstall, TracFastCgi, TracModPython
     70See also:  TracGuide, TracInstall, [wiki:TracModWSGI], TracFastCgi, TracModPython