WebTrack/28

サマリPukiWikiの隠蔽および共有の方法(3分割インストールの方法)
お名前tomix
優先度
状態完了
カテゴリー質問箱
投稿日2004-10-26 (火) 14:15:47
担当者

メッセージ

結構探したのですけど、具体的にどうすればよいのか分かりませんでした。 インストールマニュアルに追加するのはどうでしょう

*1 *2



  • データ、スキン&イメージ、スクリプトの分離ですよね。問題点もあるので整理がちょっと大変。CVS版でまたかなり変わるのでどこかで解説が必要でしょうね。 -- merlin 2004-10-26 (火) 15:50:15
  • なんて名付けるかは 議論を呼ぶと思いますが、"3分割 インストール"は誤解を呼びかねないと思います -- merlin 2004-10-26 (火) 15:51:25
  • 以下に草案作成場所を作ったのでどんどん入れて見ましょう -- merlin 2004-10-28 (木) 07:55:07
  • むぉ、一夜でページが成長していますね (^^; 拝見します。 -- henoheno 2004-10-28 (木) 22:28:00
  • pluginの部分(PukiWiki一本ごとに固有のデータとして扱われます) とスキンに関して(スキンファイル自体は隠蔽されます)修正して、その後考えましたが、ちょっと下記の三分類は複数本を扱いたい方に誤解を与えそうです。実際にやってみるとわかると思いますよ>複数本構成 -- henoheno 2004-10-28 (木) 22:41:42
  • ということでひとまず箸を置いて*6、こちらの想定していた事項を tomix さん向けにコメントします。すいません (^^; -- henoheno 2004-10-28 (木) 22:44:15

概略

  • PukiWiki/Download/1.4.4 に挙げた通り、1.4.4からは内部を大雑把に分割しました。こうした分割は今後もほぼ間違いなく維持します。なにしろ、そうしないと運用が面倒ですから (^^; -- henoheno 2004-10-28 (木) 22:47:54
    • 1. Webサイトに露出しなければならないプレゼンテーション部分 (index.php/pukiwiki.php, IMAGE_DIR, *.css および *.js)
    • 2. 複数のPukiWikiで共有可能な部分 (LIB_DIR以下)
    • 3. PukiWiki一本ごとに固有のデータ (DATA_HOME以下)

PukiWikiの隠蔽

  • PukiWikiを隠蔽する場合の例を示します。例えばhtdocs (あるいはpublic_html、/var/wwwなど) というディレクトリの下に置いたファイルがWebサーバーから公開されるとき、とりあえず一本のPukiWikiを htdocs というディレクトリの下に隠すには、以下のように配置して下さい。 -- henoheno 2004-10-28 (木) 22:53:20
      htdocs/index.php   <= DATA_HOME は '../pukiwiki-1.4.4/'、LIB_DIRは '../pukiwiki-1.4.4/lib/' とします
      htdocs/skin/*.css  <= CSSファイルは外部に必要 (無くとも動きます)
      htdocs/skin/*.js   <= JavaScriptファイルは(使っているならば)外部に置く (無くとも動きます)
      htdocs/image/*     <= image ディレクトリ以下は全て外部に必要 (無くとも動きます)
      pukiwiki-1.4.4/    <= その他全てのPukiWiki
  • 最終的にこうなればいいわけなので、はじめに htdocs と同じ場所に PukiWiki 1.4.4 を展開して、その後でindex.phpを外にコピーして、DATA_HOME と LIB_DIR を修正して動作確認をし、その後で適当に image ディレクトリやcssなどのファイルをコピーするのが楽でしょう。 -- henoheno 2004-10-28 (木) 22:58:23
  • 隠すだけなら、これでおしまいです。その後のメンテナンスの仕方は全く変わりません -- henoheno 2004-10-28 (木) 22:59:20

複数本のPukiWikiのコードを共有する

  • つぎに複数本のPukiWikiを同じコードで動かす方法ですが、こちらはPHPやPukiWikiに慣れていないのであればお勧めしません。3本? 以上のPukiWikiをメンテナンスする or 既にしていて、メンテナンス負荷を下げたいと思っており、PHPやPukiWikiをそれなりに知っている or 勉強するつもりのある管理者向けのものだと思ってください。 -- henoheno 2004-10-28 (木) 23:07:46
    • そうですね・・・3本を一度にメンテナンスする時の苦労が2本分くらいになるような、そういう感じです。 -- henoheno 2004-10-28 (木) 23:09:51
  • 設置の一例を示します。この場合、henoheno, merlin, tomix というそれぞれのテーマごとにPukiWikiを用意するとします。理由は訊かないで下さい。誰だってたまには一人になりたい時があるのです。この例ではLIB_DIRと、cssおよびJavaScriptファイルを共有しています。 -- henoheno 2004-10-28 (木) 23:15:09
      htdocs/henoheno.php   <= DATA_HOME は '../pukiwiki-henoheno/'、LIB_DIRは '../pukiwiki-1.4.4/lib/' とします
      htdocs/merlin.php     <= DATA_HOME は '../pukiwiki-merlin/'、LIB_DIRは '../pukiwiki-1.4.4/lib/' とします
      htdocs/tomixphp       <= DATA_HOME は '../pukiwiki-tomix/'、LIB_DIRは '../pukiwiki-1.4.4/lib/' とします
      htdocs/skin/*.css  <= CSSファイルは外部に必要 (無くとも動きます)
      htdocs/skin/*.js   <= JavaScriptファイルは(使っているならば)外部に置く (無くとも動きます)
      htdocs/image/*     <= image ディレクトリ以下は全て外部に必要 (無くとも動きます)
      pukiwiki-1.4.4/    <= PukiWiki-1.4.4のlibディレクトリ
          (中身が全部あっても問題ありませんから、今後も子を増やす時のために
           そのまま残しておくと楽でしょう)
      pukiwiki-henoheno/ <= PukiWiki-1.4.4のコピー
      pukiwiki-merlin/   <= PukiWiki-1.4.4のコピー
      pukiwiki-tomix/    <= PukiWiki-1.4.4のコピー
  • このように構成することで、個々のcss, JavaScript、画像ファイル、libディレクトリ以下のプログラムは共有されます(共有している部分については、一つのファイルを修正すれば、全ての挙動が変わります)。台所と風呂場とトイレは共有なんです。しかし、それぞれのコピーがどのCSSファイルを選択するのか、どのスキンを使うのか、どのプラグインを搭載しているのか、どのような設定であるのか(例えばWikiNameを無効にしたり、携帯電話onlyであったり)はコピーごとに自由に調整できます。ペットは没収されます -- henoheno 2004-10-28 (木) 23:20:19
  • 気をつけるべきは新しいリリースと入れ替えるときですが、その時は、例えばpukiwiki-1.4.5を展開したものを用意して、一つづつ移行させましょう。大家さんにとって、二件目以降の対処はちょっぴり楽になるはずです。 -- henoheno 2004-10-28 (木) 23:26:30
  • 動作確認は、index.php を適当な名前で適当な場所にコピーして DATA_HOME と LIB_DIR を書き換え、それに対して行うと良いでしょう。(ベーシック認証で守るなど、それは自由です) -- henoheno 2004-10-28 (木) 23:34:40

  • こんなところです :) 疑問点などがあればここに追記して下さい。 -- henoheno 2004-10-28 (木) 23:42:18
  • おおおお ありがとうございます。でも結構大変そうですね。もちろん目的はコードとスキンの共有。相手別に複数のwikiを立ち上げていてそれぞれのメンテナンスが大変だったので...チトがんばってやってみます -- tomix 2004-10-29 (金) 11:59:35
  • pluginは各wiki固有データーになるんですね。うーん -- tomix 2004-10-29 (金) 12:24:36
  • さっそくやってみました。なかなかいい感じです。でも分割方法ってケースバイケースですね。たとえば個々のWikiでスキン+プラグインを共有したい場合、したくない場合などSKIN_DIRをlib側に持ってくるか、data側にもってくるかも変えられるかな -- tomix 2004-10-29 (金) 13:14:39
  • そうですね、ケースバイケースです。シンボリックリンクやハードリンクを使う方法もありますね。プラグインがDATA_HOMEに入っているのは今々の現実解としてそうしています。何でもかんでも入ってしまっている現在のデフォルト設定をどのPukiWikiにも開放するのは危ないですからね。 -- henoheno 2004-10-30 (土) 01:02:12
  • 手もとで頻繁に使っているやつ(6本のWiki)を共通で設定してみました。skinはそれぞれに設置しました。その際にpukiwiki.skin.phpを変えなければなりませんでしたが... PukiWiki-Plusのように cssとjsを最初から別に分けた方がいいかも。 -- merlin 2004-11-25 (木) 18:08:04
  • default.ini.php で指定するスキンファイルの名前を6本それぞれ別に設定してやれば解決したりしませんか? -- henoheno 2004-11-25 (木) 21:21:47
    • それでも解決できますね。>default.ini.phpのスキンファイルの名前。 でも、cssを切替えるには、結局 pukiwiki.skin,php のスキンを relしている所を書き換えないと決め打ちなのでだめですね。 -- merlin 2004-11-25 (木) 21:46:06
  • 自分の場合は、ルートディレクトリのWikiからある程度まとまったコンテンツを分割するという思考でやったので、基本的に子Wikiには、libとpluginとimagesが含まれないこと以外はほとんど一緒ですね。で、サブドメインで見かけ上完全に切り離しています。この方法だと普通に使う分にはpukiwiki.ini.phpのpluginの指定先とindex.php、スキンやamazon.inc.phpの画像表示部を絶対指定にする修正だけで済みますし、初心者には割と勧められる方法かも。ただ、実際にはmod_rewrite改造してるのでそういう意味ではややこしいです。 -- Logue 2005-07-07 (木) 17:56:42
  • 質問箱3/207 -- 2006-01-04 (水) 15:36:26
  • 質問箱3/182 -- 2006-01-04 (水) 15:43:59

草案 by merlin


PukiWiki-1.4.4 のカスタマイズ

PukiWiki-1.4.4からは、スクリプト部、データ部、スキン&イメージ部の分離をより進め、不必要な部分をネット上に公開しないように構成できるようになりました。また、複数のPukiWikiを同一のスクリプトで動作させることができるようになりました。

スキン&イメージ部
PukiWikiの外観を作るのに必要なスクリプト、CSSファイル、イメージデータ - 具体的には、skin/ 以下のいくつかのファイル (skin/*.css, skin/*.js), image/ 以下の画像ファイルです。*7
スクリプト部
PukiWikiを動作させるに必要なPHPスクリプト群 - 具体的には lib/ 以下のファイルです。
データ部
一本のPukiWikiのコンテンツとその性格付けに関わるデータ - 上に挙げていないファイルやディレクトリ、具体的には、attach/, backup/, cache/, diff/, trackback/, wiki/, plugin/, 設定ファイル(*.ini.php, *.lng), スキンファイル (skin/*.skin.*.php) などです。
(--- 続く ---)

参考 (PukiWikiのファイル構成)

accessability from Net is neededEntry Pointindex.php
pukiwiki.php
Access control.htaccess
Skinsimage/
skin/
accessability from Net is NOT neededSettingspukiwiki.ini.php
rules.ini.php
default.ini.php
keitai.ini.php
Scriptslib/
plugin/
Language fileen.lng
ja.lng
Data Filesattach/
backup/
cache/
counter/
diff/
trackback/
wiki/
wiki.en/
Not needed for operationDocumentsCOPYING.txt
README.en.txt
README.txt
UPDATING.en.txt
UPDATING.txt

設定場所

index.php と pukiwiki.ini.php の以下の部分を変更することで設定いたします。

index.php(pukiwiki.php)

<?php
// PukiWiki - Yet another WikiWikiWeb clone.
// $Id: index.php,v 1.3 2004/08/01 01:54:35 henoheno Exp $

// Directory definition
// (Ended with a slash like '../path/to/pkwk/', or '')
define('DATA_HOME',     '');
define('LIB_DIR',       'lib/');

require(LIB_DIR . 'pukiwiki.php');
?>

pukiwiki.ini.php

<?php
/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
//
// $Id: pukiwiki.ini.php,v 1.79 2004/09/04 00:02:03 henoheno Exp $
//
// PukiWiki setting file

/////////////////////////////////////////////////
// ディレクトリ指定 最後に / が必要 属性は 777

// データ格納ディレクトリ
define('DATA_DIR',      DATA_HOME . 'wiki/');   // 最新のデータ
define('DIFF_DIR',      DATA_HOME . 'diff/');   // 差分ファイル
define('BACKUP_DIR',    DATA_HOME . 'backup/'); // バックアップ
define('CACHE_DIR',     DATA_HOME . 'cache/');  // キャッシュ
define('UPLOAD_DIR',    DATA_HOME . 'attach/'); // 添付ファイル
define('COUNTER_DIR',   DATA_HOME . 'counter/');        // カウンタ
define('TRACKBACK_DIR', DATA_HOME . 'trackback/');      // TrackBack
define('PLUGIN_DIR',    DATA_HOME . 'plugin/'); // プラグインファイル

/////////////////////////////////////////////////
// ディレクトリ指定 最後に / が必要
//
//  PukiWiki本体をWebブラウザからアクセスできない
//  場所に設置するときは、以下のディレクトリにある
//  ファイルの一部を Webブラウザからアクセスできる
//  場所に設置する必要があります。
//  (無くとも動作はしますが、少々味気なくなるでしょう) 

// スキン/スタイルシートファイル格納ディレクトリ
define('SKIN_DIR', 'skin/');
//  このディレクトリ以下のスキンファイル (*.php) は
//  PukiWiki本体側(DATA_HOME/SKIN_DIR) に必要ですが、
//  CSSファイル(*.css) およびJavaScriptファイル( *.js)
//  はWebブラウザから見える場所(./SKIN_DIR)に配置
//  して下さい 

// 画像ファイル格納ディレクトリ
define('IMAGE_DIR', 'image/');
//  このディレクトリ以下の全てのファイルは
//  Webブラウザから見える場所(./IMAGE_DIR)に配置
//  して下さい
(--- 続く ---)

構成例

  • [参考] デフォルト構成
  • www root 以下に構成した例
  • スクリプト部を ネットからアクセスできない部分に置いた例
  • 複数のWikiを設置する構成
(--- 続く ---)

注意

  • デフォルトの構成でPukiWikiがちゃんと動作することを確認してから、カスタマイズ行ってください。問題が発生した時の切り分けができなくなります。

*1 メッセージ以前に何か書いちゃだめですぅ:Trackerが認識しなくなります
*2 ごめんなさい。WebTrackで表示が変だったのですが、なぜか*3正常に表示されるようになりました。
*3 trackerのpage設定に** メッセージまで入っているのでそれ以前の形式を変更するとダメなんですぅ*4-というわけで #contentsを移動しました。*5
*4 trackerのFAQなんですぅ
*5 なるほど。誰かが#contentsを** メッセージの上に入れていたんですね。それに気がつかなかった私は括弧が問題かなと数値参照文字にしてしまいました。
*6 食べるのかよ!
*7 face/ ディレクトリは PukiWiki 1.4.4で image/face/ に移動しました

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-01-10 (土) 19:04:34
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.306 sec.

OSDN