= Trac Environment = #TracEnvironment Trac はプロジェクトのデータを保存するために、ディレクトリ構造とデータベースを使用します。このディレクトリを "Environment" と呼びます。 == Environment の作成 == #CreatinganEnvironment 新しい Trac Environment を作成するには、 [wiki:TracAdmin trac-admin] コマンドを使用します: {{{ $ trac-admin /path/to/myproject initenv }}} [wiki:TracAdmin trac-admin] はプロジェクトの名前、 データベースに接続するための文字列 (後で説明します) 、 ソースコードリポジトリの種類とパスを尋ねてきます。 ''Note: Environment のディレクトリ配下は、 Web サーバの実行ユーザに書き込みパーミッションを 与える必要があります。適切なパーミッションの付与を忘れないようにしてください。 同じことが Subversion リポジトリにも当てはまります。 ただし、 Subversion リポジトリに Barkley DB のファイルシステムを使用していない場合は、 Trac は読み取りパーミッションしか必要としません。また、プロジェクト名に空白文字が混じっていると認証で問題が生じることがありますので注意してください (See [http://trac.edgewall.org/ticket/7163 #7163])。'' == データベースに接続するための文字列 == #DatabaseConnectionStrings バージョン 0.9 以降、 Trac は [http://sqlite.org/ SQLite] と [http://www.postgresql.org/ PostgreSQL] データベースバックエンドの両方をサポートします。 [http://mysql.com/ MySQL] のサポートは 0.10 で加えられました。 デフォルトでは SQLiLte を使用します。 (ほとんどのプロジェクトは SQLite で十分です)。データベース ファイルは Environment ディレクトリに保存されますので、 Environment の残りと共に容易に [wiki:TracBackup バックアップ] することができます。 === SQLite の接続文字列 === #EmbeddedSQLiteConnectionString SQLite データベースに接続するための文字列は以下の通りです: {{{ sqlite:db/trac.db }}} === PostgreSQL の接続文字列 === #PostgreSQLConnectionString PostgreSQL や MySQL を代わりに使用する場合、異なる接続用文字列を 使用しなければなりません。 例えば PostgreSQL に接続するとき、 ユーザ名 `johndoe` でパスワード `letmein` で 同じマシンの `trac` と呼ばれるデータベースに接続するには以下のように指定します: {{{ postgres://johndoe:letmein@localhost/trac }}} ''"/" 及び "@" はパスワードの一部として使用出来ないので注意してください'' PostgreSQL がデフォルト以外のポート番号 (例えば、 9432) で起動しているときはこのようにします: {{{ postgres://johndoe:letmein@localhost:9342/trac }}} UNIX ホストでは、 UNIX ソケットで接続するように設定できます。 この場合、環境変数 PGHOST に定義されたデフォルトソケットを使用します: {{{ postgres://user:password@/database }}} ソケットを特定する場合はこうです: {{{ postgres://user:password@/database?host=/path/to/socket/dir }}} PostgreSQL を使用するとき、 `trac-admin initenv` を実行する前に データベースを作成しなければいけません。 [http://postgresql.org PostgreSQL] の詳細設定の方法については [http://www.postgresql.org/docs/ PostgreSQL ドキュメント] を参照してください。 下記は `tracuser` という名のデータベースユーザ及び `trac` という名のデータベースを作成します。 {{{ createuser -U postgres -E -P tracuser createdb -U postgres -O tracuser -E UTF8 trac }}} `createuser` を実行する時、'tracuser' のパスワードの入力を促されます。この新しいユーザはスーパーユーザではないので、他のデータベースを作ったり、他の role (訳注: PostgreSQL でのユーザ) を作る権限を与えられていません。これらの権限は trac のインスタンスを実行する為には必要ではありません。ユーザにパスワードを付与したくない場合、 `createuser` コマンドから `-P` と `-E` オプションを取り除いてください。また、データベースが UTF8 で作成する必要があることに注意してください。 LATIN1 のエンコードが原因のエラーを引き起こします。 SQL_ASCII でも同様です。 デフォルト設定 (debian) の下では、 `postgres` ユーザとして `createuser` と `createdb` スクリプトを実行してください。 例えば: {{{ sudo su - postgres -c 'createuser -U postgres -S -D -R -E -P tracuser' sudo su - postgres -c 'createdb -U postgres -O tracuser -E UTF8 trac' }}} Trac はデフォルトで `pu