** [[WebTrack/28]] [#ucb2783c] |~サマリ|PukiWikiの隠蔽および共有の方法(3分割インストールの方法)| |~お名前|[[tomix]]| |~優先度|低| |~状態|完了| |~カテゴリー|質問箱| |~投稿日|2004-10-26 (火) 14:15:47| |~担当者|| ** メッセージ [#zd0c21b6] 結構探したのですけど、具体的にどうすればよいのか分かりませんでした。 インストールマニュアルに追加するのはどうでしょう - ''参考'' -- [[PukiWiki/Install/インストール方法]] -- [[dev:PukiWiki/WikiFarm]] - よくきた wiki: PukiWikiの簡易的forkのやりかた -- http://wiki.poyo.jp/read/PHP/PukiWiki/fork_friendly ((メッセージ以前に何か書いちゃだめですぅ:Trackerが認識しなくなります)) ((ごめんなさい。[[WebTrack]]で表示が変だったのですが、なぜか((trackerのpage設定に** メッセージまで入っているのでそれ以前の形式を変更するとダメなんですぅ((trackerのFAQなんですぅ))-というわけで #contentsを移動しました。((なるほど。誰かが#contentsを** メッセージの上に入れていたんですね。それに気がつかなかった私は括弧が問題かなと数値参照文字にしてしまいました。))))正常に表示されるようになりました。)) ---- #contents //#contents ---- -データ、スキン&イメージ、スクリプトの分離ですよね。問題点もあるので整理がちょっと大変。CVS版でまたかなり変わるのでどこかで解説が必要でしょうね。 -- [[merlin]] &new{2004-10-26 (火) 15:50:15}; -なんて名付けるかは 議論を呼ぶと思いますが、"3分割 インストール"は誤解を呼びかねないと思います -- [[merlin]] &new{2004-10-26 (火) 15:51:25}; -以下に草案作成場所を作ったのでどんどん入れて見ましょう -- [[merlin]] &new{2004-10-28 (木) 07:55:07}; -むぉ、一夜でページが成長していますね (^^; 拝見します。 -- [[henoheno]] &new{2004-10-28 (木) 22:28:00}; -pluginの部分(PukiWiki一本ごとに固有のデータとして扱われます) とスキンに関して(スキンファイル自体は隠蔽されます)修正して、その後考えましたが、ちょっと下記の三分類は複数本を扱いたい方に誤解を与えそうです。実際にやってみるとわかると思いますよ>複数本構成 -- [[henoheno]] &new{2004-10-28 (木) 22:41:42}; -ということでひとまず箸を置いて((食べるのかよ!))、こちらの想定していた事項を [[tomix]] さん向けにコメントします。すいません (^^; -- [[henoheno]] &new{2004-10-28 (木) 22:44:15}; ---------------------------------------- *** 概略 [#c693eb6e] -[[PukiWiki/Download/1.4.4]] に挙げた通り、1.4.4からは内部を大雑把に分割しました。こうした分割は今後もほぼ間違いなく維持します。なにしろ、そうしないと運用が面倒ですから (^^; -- [[henoheno]] &new{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の隠蔽 [#q2633138] -PukiWikiを隠蔽する場合の例を示します。例えばhtdocs (あるいはpublic_html、/var/wwwなど) というディレクトリの下に置いたファイルがWebサーバーから公開されるとき、とりあえず一本のPukiWikiを htdocs というディレクトリの下に隠すには、以下のように配置して下さい。 -- [[henoheno]] &new{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]] &new{2004-10-28 (木) 22:58:23}; -隠すだけなら、これでおしまいです。その後のメンテナンスの仕方は全く変わりません -- [[henoheno]] &new{2004-10-28 (木) 22:59:20}; *** 複数本のPukiWikiのコードを共有する [#a3169afe] -つぎに複数本のPukiWikiを同じコードで動かす方法ですが、こちらはPHPやPukiWikiに慣れていないのであればお勧めしません。3本? 以上のPukiWikiをメンテナンスする or 既にしていて、メンテナンス負荷を下げたいと思っており、PHPやPukiWikiをそれなりに知っている or 勉強するつもりのある管理者向けのものだと思ってください。 -- [[henoheno]] &new{2004-10-28 (木) 23:07:46}; --そうですね・・・3本を一度にメンテナンスする時の苦労が2本分くらいになるような、そういう感じです。 -- [[henoheno]] &new{2004-10-28 (木) 23:09:51}; -設置の一例を示します。この場合、henoheno, merlin, tomix というそれぞれのテーマごとにPukiWikiを用意するとします。理由は訊かないで下さい。誰だってたまには一人になりたい時があるのです。この例ではLIB_DIRと、cssおよびJavaScriptファイルを共有しています。 -- [[henoheno]] &new{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]] &new{2004-10-28 (木) 23:20:19}; -気をつけるべきは新しいリリースと入れ替えるときですが、その時は、例えばpukiwiki-1.4.5を展開したものを用意して、一つづつ移行させましょう。大家さんにとって、二件目以降の対処はちょっぴり楽になるはずです。 -- [[henoheno]] &new{2004-10-28 (木) 23:26:30}; -動作確認は、index.php を適当な名前で適当な場所にコピーして DATA_HOME と LIB_DIR を書き換え、それに対して行うと良いでしょう。(ベーシック認証で守るなど、それは自由です) -- [[henoheno]] &new{2004-10-28 (木) 23:34:40}; ----------------------- -こんなところです :) 疑問点などがあればここに追記して下さい。 -- [[henoheno]] &new{2004-10-28 (木) 23:42:18}; -おおおお ありがとうございます。でも結構大変そうですね。もちろん目的はコードとスキンの共有。相手別に複数のwikiを立ち上げていてそれぞれのメンテナンスが大変だったので...チトがんばってやってみます -- [[tomix]] &new{2004-10-29 (金) 11:59:35}; -pluginは各wiki固有データーになるんですね。うーん -- [[tomix]] &new{2004-10-29 (金) 12:24:36}; -さっそくやってみました。なかなかいい感じです。でも分割方法ってケースバイケースですね。たとえば個々のWikiでスキン+プラグインを共有したい場合、したくない場合などSKIN_DIRをlib側に持ってくるか、data側にもってくるかも変えられるかな -- [[tomix]] &new{2004-10-29 (金) 13:14:39}; -そうですね、ケースバイケースです。シンボリックリンクやハードリンクを使う方法もありますね。プラグインがDATA_HOMEに入っているのは今々の現実解としてそうしています。何でもかんでも入ってしまっている現在のデフォルト設定をどのPukiWikiにも開放するのは危ないですからね。 -- [[henoheno]] &new{2004-10-30 (土) 01:02:12}; -手もとで頻繁に使っているやつ(6本のWiki)を共通で設定してみました。skinはそれぞれに設置しました。その際にpukiwiki.skin.phpを変えなければなりませんでしたが... PukiWiki-Plusのように cssとjsを最初から別に分けた方がいいかも。 -- [[merlin]] &new{2004-11-25 (木) 18:08:04}; -default.ini.php で指定するスキンファイルの名前を6本それぞれ別に設定してやれば解決したりしませんか? -- [[henoheno]] &new{2004-11-25 (木) 21:21:47}; --それでも解決できますね。>default.ini.phpのスキンファイルの名前。 でも、cssを切替えるには、結局 pukiwiki.skin,php のスキンを relしている所を書き換えないと決め打ちなのでだめですね。 -- [[merlin]] &new{2004-11-25 (木) 21:46:06}; -自分の場合は、ルートディレクトリのWikiからある程度まとまったコンテンツを分割するという思考でやったので、基本的に子Wikiには、libとpluginとimagesが含まれないこと以外はほとんど一緒ですね。で、サブドメインで見かけ上完全に切り離しています。この方法だと普通に使う分にはpukiwiki.ini.phpのpluginの指定先とindex.php、スキンやamazon.inc.phpの画像表示部を絶対指定にする修正だけで済みますし、初心者には割と勧められる方法かも。ただ、実際にはmod_rewrite改造してるのでそういう意味ではややこしいです。 -- [[Logue]] &new{2005-07-07 (木) 17:56:42}; - [[質問箱3/207]] -- &new{2006-01-04 (水) 15:36:26}; - [[質問箱3/182]] -- &new{2006-01-04 (水) 15:43:59}; #comment //#comment ----------------------- ** 草案 by [[merlin]] [#o3deda04] ---- *** PukiWiki-1.4.4 のカスタマイズ [#m19b1f28] PukiWiki-1.4.4からは、スクリプト部、データ部、スキン&イメージ部の分離をより進め、不必要な部分をネット上に公開しないように構成できるようになりました。また、複数のPukiWikiを同一のスクリプトで動作させることができるようになりました。 ::スキン&イメージ部| PukiWikiの外観を作るのに必要なスクリプト、CSSファイル、イメージデータ - 具体的には、skin/ 以下のいくつかのファイル (skin/*.css, skin/*.js), image/ 以下の画像ファイルです。((face/ ディレクトリは PukiWiki 1.4.4で image/face/ に移動しました)) ::スクリプト部| PukiWikiを動作させるに必要なPHPスクリプト群 - 具体的には lib/ 以下のファイルです。 ::データ部| 一本のPukiWikiのコンテンツとその性格付けに関わるデータ - 上に挙げていないファイルやディレクトリ、具体的には、attach/, backup/, cache/, diff/, trackback/, wiki/, plugin/, 設定ファイル(*.ini.php, *.lng), スキンファイル (skin/*.skin.*.php) などです。 CENTER:(--- 続く ---) *** 参考 (PukiWikiのファイル構成) [#z312edce] |accessability from Net is needed|Entry Point|index.php|| |~|~|pukiwiki.php|| |~|Access control|.htaccess|| |~|Skins|image/|| |~|~|skin/|| |accessability from Net is ''NOT'' needed|Settings|pukiwiki.ini.php|| |~|~|rules.ini.php|| |~|~|default.ini.php|| |~|~|keitai.ini.php|| |~|Scripts|lib/|| |~|~|plugin/|| |~|Language file|en.lng|| |~|~|ja.lng|| |~|Data Files|attach/|| |~|~|backup/|| |~|~|cache/|| |~|~|counter/|| |~|~|diff/|| |~|~|trackback/|| |~|~|wiki/|| |~|~|wiki.en/|| |Not needed for operation|Documents|COPYING.txt|| |~|~|README.en.txt|| |~|~|README.txt|| |~|~|UPDATING.en.txt|| |~|~|UPDATING.txt|| *** 設定場所 [#lf68d83f] 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)に配置 // して下さい CENTER:(--- 続く ---) *** 構成例 [#lc46e084] -[参考] デフォルト構成 - www root 以下に構成した例 - スクリプト部を ネットからアクセスできない部分に置いた例 - 複数のWikiを設置する構成 CENTER:(--- 続く ---) *** 注意 [#a5b5ee62] -デフォルトの構成でPukiWikiがちゃんと動作することを確認してから、カスタマイズ行ってください。問題が発生した時の切り分けができなくなります。