DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:farms

DokuWiki 牧場

wiki 牧場は、同じ Web サーバー上で動き一つの親 wiki エンジンを共有する wiki の集合です。 一つの親 wiki を動かすことで、数百もの独立した別の wiki ウィキ(別名「動物」)を稼働させることができます。 すべての動物は、プラグインやテンプレートの設定を共有しますが、各動物は個別に異なる有効化プラグインの設定・異なるテンプレート・異なる設定を持つことができます。 牧場の概念は、他の CMS の文脈内では「マルチサイト」「マルチドメイン」「サブサイト」と呼ばれます。

wiki 牧場の動作を実現する方法は複数あります。 おそらく最も簡単な方法は、牧場主プラグインを使用することです。 このプラグインは牧場を設定し、動物を作成・管理する手段を提供します。

このページでは DokuWiki で wiki 牧場を手動で実行する最も簡単で率直な方法を説明します。 より高度な設定やヒントは別のページで説明します。

用語集

  • 牧場の話をする場合、以下のすべてを含む全体の設定について説明します。通常、サーバー毎に一つだけ牧場があります。
  • 牧場主(別名「親 wiki」)は実際の DokuWiki のインストールです。すべてのコードが存在する場所、プラグインやテンプレートをインストールする場所、新しいリリースで更新するものです。牧場毎に一つだけ牧場主がいます。
  • 牧場の開始時に牧場ディレクトリの設定が必要です。これはサーバー上のすべての動物の物理的な親ディレクトリです。牧場サーバー上に一箇所しかありません。
  • 動物(別名「子 wiki」)は、個々の wiki インスタンスです。動物が多くなっても各々は wiki データと動物固有の設定しか持たず重複したコードを持たないことを意味します。

ディレクトリの設定

以下の例は、最も一般的なディレクトリの設定で、この文書全体で使用します。 しかし、全然異なる設定を持つことも可能です。

  • /var/www/dokuwiki – DokuWiki エンジン。ウェブからアクセス可能でなければなりません。
  • /var/www/farm – すべての動物が含まれている DokuWiki 牧場ディレクトリ

牧場ディレクトリ内には自由に多くの動物を持つことができます。例:

  • /var/www/farm/animal – 一個目の wiki
  • /var/www/farm/example.com – 二個目の wiki

二種類の設定方法

二種類の設定方法があります: 仮想ホスト方式と.htaccess方式の二種類の設定方法があります。

仮想ホスト(または仮想ウェブサーバー)方式は、使用されるホスト名に基づいて wiki 牧場内の異なる動物へのアクセスを提供するために、ウェブサーバーの機能と名前を IP アドレスに変換する方法を組み合わせます。 この場合、複数のホスト名は、同じウェブサーバーを参照します。 “wiki.mydomain.net” は牧場主 wiki へのアクセスを提供し、“programming.mydomain.net” はプログラムチュートリアルの wiki へのアクセスを提供しますが、両方共物理的には同じサーバーに接続します。

.htaccess(またはサーバースクリプト)方式は、異なるファイルパスが個別の wiki を参照するという Web サーバーの機能だけが必要です。 小さなスクリプトの指示に従って、Web サーバーは個々の wiki の最上位ディレクトリを別々に処理します。 これで wiki の独立性を維持します。 この場合、“www.mydomain.net/dokuwiki/”が牧場主 wiki の開始ページであり、”www.mydomain.net/programming“ がプログラムチュートリアルの wiki へのアクセスになります。

どちらの方式にせよ、サーバー設定の並べ替えが必要です。

仮想ホスト方式の設定

  • 設定先:Apache の httpd.conf またはレンタルサーバの管理画面を使った バーチャルホスト
  • 結果の URL:なんでもあり。例:example.comsubdomain.example.nettest.example.org:8080/foo/bar/
  • 長所:元になるファイル構成とは無関係にはるかに柔軟な URL を作成できる。
  • 短所:仮想ホストの設定可である可能性が低い。一部の(特に安価な)レンタルサーバーは許可していない。

他の場所からアクセスしたいシステムの場合、Web サーバーの新しいホスト名を公開する必要があります。 この設定をする場合、牧場にアクセス可能な任意のマシンに新しいホスト名を提供する必要があります。 通常、DNS サーバを設定します。 よくわからない場合、具体的な手順についてはシステム管理者またはサービスプロバイダにお問い合わせください。

ローカルマシンからアクセスするには、コンピュータがその新しい名前を知っていることを確認するために、ローカルの 'hosts' ファイルを編集する必要があります。 :!: 同じマシンから接続する場合しかこの方法は動作しません。 他のシステムは、マシンの追加名を知りません。

Windows の場合、”C:\Windows\System32\Drivers\etc\hosts“ ファイルの変更が必要です。 ほとんどの設定では、このファイルの編集のために administrator 権限が必要です。

Linux や Unix 類似のシステムの場合、”/etc/hosts“ ファイルの編集が必要です。

どちらの場合も、以下を追加します:

127.0.0.1	farm-animal.mydomain.net

(farm-animal が新しいウィキの名前で、mydomain.net は自分のシステムに合わせます)

.htaccess 方式の設定

  • 設定先:.htaccess。Apache の htaccess 設定を許可する必要があります。
  • 結果の URL:一つのドメイン・牧場の「サブディレクトリ」のみ。例:example.com/farm/catexample.com/farm/dogより複雑な設定を使えば、他の設定とほぼ同様な柔軟性が可能です。
  • 長所:レンタルサーバーが仮想ホストに対応していない場合、これが唯一の可能な解決策です。
  • 短所:レンタルサーバーが必ず .htaccess ファイルに対応しているわけではありません。しかし、仮想ホストよりも対応している可能性は高いです。

牧場の作成方法

0. 前提条件

以下の手順では、すでに標準の DokuWiki をインストールしていると仮定します。 適切にインストールし正常な wiki として動作しているか、またはセキュリティ上の理由から install.php を削除するかを確認してください。

1. 牧場ディレクトリの作成

/var/www/farm という名前の空のディレクトリを作成します。 牧場ディレクトリになる予定で、Web サーバーから書き込み可能である必要があります。 通常の DokuWiki を保護するのと同じ方法で保護すべきです。

2. 牧場の有効化

牧場主のディレクトリ内で ./inc/preload.php.dist./inc/preload.php にコピー、 ./inc/preload.php の関連する二行のコメントを解除、 牧場ディレクトリに配置します。 こんな感じです:

// set this to your farm directory
if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/var/www/farm');
 
// include this after DOKU_FARMDIR if you want to use farms
include(fullpath(dirname(__FILE__)).'/farm.php');

注: DokuWiki の Adora Belle (2012-10-13) 版以降でない場合、二つのファイルがありません。 この場合、ここから二つのファイルをコピーして下さい: farm.phppreload.php.dist

注: DOKU_FARMDIR として入力したパスは、(PHP 変数 $_SERVER['DOCUMENT_ROOT'] で公開される)サーバーディレクトリーの絶対パスを基準にする必要があるかもしれません。 シンボリックリンクを使用する場合動かないことがあります。 例えば、/public_html/farm として牧場サーバーディレクトリにアクセスする場合でも、/home/<htmlusername>/public_html/farm のように入力する必要がある場合があります。

3. 動物の追加

牧場ディレクトリにこの動物テンプレートを展開します。 空の data ディレクトリと予め補充された conf ディレクトリが入った(_animal という名称の)ディレクトリです。

展開したディレクトリの名前を変更する必要があります。 動物のファイルをすべて格納するディレクトリの名前の付けるルールは設定によって異なります:

  • 仮想ホスト方式は動物ディレクトリ名に URL を反映する必要があります。例:subdomain.example.comsubdomain.example.com という名前のディレクトリで動作します。1)
  • .htaccess 方式は URL で表示されたままの動物ディレクトリ名を必要とします。例:example.com/farm/catcat という名前の動物ディレクトリが必要です。動物毎に独立したの .htaccess ファイルを使用している場合、そこで動物の名前を指定できます。

.htaccess 方式の場合、conf/local.protected.php 内の $conf['basedir'] をコメント解除し、動物がアクセスできる URL 内のパスに変更する必要があります。 (例:http://example.com/animal でアクセスできる '/animal/' – /var/www/farm/animal に格納可能)

4. 必要なサーバー設定の追加

サーバー設定に慣れていない場合、これだけがちょっと難しいです。 FIXME ここ以下を詳細にする必要があります。

a. 仮想ホスト方式の設定

Apache の httpd.conf またはレンタルサーバの管理画面を使った バーチャルホスト

この設定のために、レンタルサーバの管理画面や httpd.conf で新しい動物毎にバーチャルホストを設定する必要があります。 これが subdomain.example.com 用の httpd.conf です:

NameVirtualHost *
 
<VirtualHost *>
    ServerName subdomain.example.com    # this is the URL of your wiki animal
    DocumentRoot /var/www/dokuwiki/     # the document root always needs to be the DokuWiki *farmer* directory
</VirtualHost>

共有ホスト環境のほとんどでは、管理画面から ServerName(サブドメインの有無にかかわらずご希望のドメイン)と DocumentRoot(常に牧場主ディレクトリを指す)を追加する必要があるだけです。

b. .htaccess 方式の設定

この .htaccess ファイルは、牧場ディレクトリに置く必要があります。 Apache の設定で .htaccess を有効にすることを忘れないでください(AllowOverride All)。

.htaccess
RewriteEngine On
 
RewriteRule ^/?([^/]+)/(.*)  /dokuwiki/$2?animal=$1 [QSA]
RewriteRule ^/?([^/]+)$      /dokuwiki/?animal=$1 [QSA]
Options +FollowSymLinks

/dokuwiki/ 部分を牧場主へのパスに変更します。

5. 管理者パスワードの変更

設定を完了すると、動物 URL にアクセスできるようになります(設定に応じてsubdomain.example.comexample.com/farm/animal/ )。

:!: 動物テンプレートには、パスワードが「admin」のデフォルトの「admin」ユーザーアカウントが含まれています。 できるだけ早く管理者パスワードを変更してください。 admin/admin でログイン、”Admin“ > “User Manager” メニューを選択、admin ユーザーをクリック、下にあるパスワードを変更します。 admin の電子メールアドレスも変更して下さい。

動物の追加方法

初期設定後、動物の追加必要なサーバー設定の追加(仮想ホスト方式の場合のみ)、各々新しい動物のための管理者パスワードの変更を繰り返す必要があるだけです。

議論

discussion page に質問や要望を追加できます。

1)
以下のディレクトリ名のどちらかでも動作します:example example.com
ja/farms.txt · 最終更新: 2016-09-05 10:05 by sawachan

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki