example
example.com
wiki 牧場は、同じ Web サーバー上で動き一つの親 wiki エンジンを共有する wiki の集合です。 一つの親 wiki を動かすことで、数百もの独立した別の wiki ウィキ(別名「動物」)を稼働させることができます。 すべての動物は、プラグインやテンプレートの設定を共有しますが、各動物は個別に異なる有効化プラグインの設定・異なるテンプレート・異なる設定を持つことができます。 牧場の概念は、他の CMS の文脈内では「マルチサイト」「マルチドメイン」「サブサイト」と呼ばれます。
wiki 牧場の動作を実現する方法は複数あります。 おそらく最も簡単な方法は、牧場主プラグインを使用することです。 このプラグインは牧場を設定し、動物を作成・管理する手段を提供します。
このページでは DokuWiki で 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 へのアクセスになります。
どちらの方式にせよ、サーバー設定の並べ替えが必要です。
example.com
・subdomain.example.net
・test.example.org:8080/foo/bar/
他の場所からアクセスしたいシステムの場合、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 は自分のシステムに合わせます)
以下の手順では、すでに標準の DokuWiki をインストールしていると仮定します。
適切にインストールし正常な wiki として動作しているか、またはセキュリティ上の理由から install.php
を削除するかを確認してください。
/var/www/farm
という名前の空のディレクトリを作成します。
牧場ディレクトリになる予定で、Web サーバーから書き込み可能である必要があります。
通常の DokuWiki を保護するのと同じ方法で保護すべきです。
牧場主のディレクトリ内で ./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.php・preload.php.dist
注:
DOKU_FARMDIR
として入力したパスは、(PHP 変数 $_SERVER['DOCUMENT_ROOT']
で公開される)サーバーディレクトリーの絶対パスを基準にする必要があるかもしれません。
シンボリックリンクを使用する場合動かないことがあります。
例えば、/public_html/farm
として牧場サーバーディレクトリにアクセスする場合でも、/home/<htmlusername>/public_html/farm
のように入力する必要がある場合があります。
牧場ディレクトリにこの動物テンプレートを展開します。
空の data ディレクトリと予め補充された conf ディレクトリが入った(_animal
という名称の)ディレクトリです。
展開したディレクトリの名前を変更する必要があります。 動物のファイルをすべて格納するディレクトリの名前の付けるルールは設定によって異なります:
subdomain.example.com
は subdomain.example.com
という名前のディレクトリで動作します。1)example.com/farm/cat
は cat
という名前の動物ディレクトリが必要です。動物毎に独立したの .htaccess ファイルを使用している場合、そこで動物の名前を指定できます。
.htaccess 方式の場合、conf/local.protected.php
内の $conf['basedir']
をコメント解除し、動物がアクセスできる URL 内のパスに変更する必要があります。
(例:http://example.com/animal でアクセスできる '/animal/' – /var/www/farm/animal に格納可能)
サーバー設定に慣れていない場合、これだけがちょっと難しいです。 ここ以下を詳細にする必要があります。
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(常に牧場主ディレクトリを指す)を追加する必要があるだけです。
この .htaccess
ファイルは、牧場ディレクトリに置く必要があります。
Apache の設定で .htaccess を有効にすることを忘れないでください(AllowOverride All)。
RewriteEngine On RewriteRule ^/?([^/]+)/(.*) /dokuwiki/$2?animal=$1 [QSA] RewriteRule ^/?([^/]+)$ /dokuwiki/?animal=$1 [QSA] Options +FollowSymLinks
/dokuwiki/
部分を牧場主へのパスに変更します。
設定を完了すると、動物 URL にアクセスできるようになります(設定に応じてsubdomain.example.com
か example.com/farm/animal/
)。
動物テンプレートには、パスワードが「admin」のデフォルトの「admin」ユーザーアカウントが含まれています。 できるだけ早く管理者パスワードを変更してください。 admin/admin でログイン、”Admin“ > “User Manager” メニューを選択、admin ユーザーをクリック、下にあるパスワードを変更します。 admin の電子メールアドレスも変更して下さい。
初期設定後、動物の追加、必要なサーバー設定の追加(仮想ホスト方式の場合のみ)、各々新しい動物のための管理者パスワードの変更を繰り返す必要があるだけです。
discussion page に質問や要望を追加できます。
example
example.com