PukiWiki/WikiFarm



WikiFarm の実装について考える (2003/08)

PukiWiki2 から引っ越してきました。

関連項目

複数のPukiWikiを飼育する方法

複数飼うということは、以下のニーズから発生すると考えている。

  • 設置者が意味のある分類から、文書を分けて設置したいという(文書の二重化)
  • 開発者がテストなどの観点から、プログラムを分けて設置したいという(プログラムの二重化)
    • 複数プロジェクトに対してWikiを設置したい場合に、管理者のバージョンアップなどの手間を少なくしたい場合もありうる。

また、このことは、以下のメリデメが発生する。

二重化メリットデメリット
文書URIから分離した分類ができる各PukiWiki本体と密結合
プログラム複数バージョンのPukiWikiが同居できる保守が面倒

プログラムの二重化

この場合の目的としては、文書に比重があるわけではないので、PukiWiki を単純に、二重設置すればよく、また、この手の用途がある場合の設置者は、それ相応の知識・技術を持ち合わせていると考えるので、あえて、細かく説明するまでもないのであろう。

文書の二重化

これに相当する考え方が、WikiFarm である。文書のみならず、スキンも二重化するという考え方が適切であろう。また、文書の管理方法によっては、国際化とも関連する。

収容ディレクトリ構成(案)

./wiki/ に、各農場毎にサブディレクトリを作成するのかなぁ?と思っていましたが、 スキンを各農場毎に対応することを考慮すると、文書とスキンが同居なの?という ことになるので、やはり、現在あるサブディレクトリの下に各農場毎に必要となる ファイルを、更にサブディレクトリを作成して管理する。というイメージかなぁ?

./
│
BASE_DIR (default 農場)
││
│├─attach
│├─backup
│├─cache
││  └─html
│├─counter
│├─devel [B]
│├─diff
│├─face [B]
│├─image [B]
│├─plugin [B]
│├─schedule
│├─skin
│├─trackback
│└─wiki
│
BASE_DIR (別農場...)
││
│├─attach
│├─backup
│├─cache
││  └─html
│├─counter
│├─diff
│├─schedule
│├─skin
│├─trackback
│└─wiki
│

みたいな。
物理構成と論理構成(仮想ディレクトリ)とは、イコールじゃないので、 どう見せるか?なども、まぁ、あるものの、最終的にはスマートかつ 最適な設置を考えていかないと。


前々から、複数飼うことを考えていましたが、農場という考え方が既にあったのねぇ。ということで分離させていただきました。-- upk 2003-08-19 (火) 01:00:11

参考

状況

  • WikiFarm の機能が欲しいなぁ。そうするとどうしても管理画面あたりがあってそこから作れるようにしないとだめだけど. -- merlin 2003-08-18 (月) 16:28:14
    • ここで議論するのもなぁと思いますし、掘り下げて考えたいので PukiWiki/WikiFarm を作りました。-- upk 2003-08-19 (火) 00:30:37
  • 国際化を考えると、この逆で、内容は同じ(LANGが違うので仕方が無い)なんだけど、違うページ名(LANGが違うんだから仕方が無いけど)で管理したい。みたいな感じを、どうしたもんか?と悩んでいました。-- upk
  • 管理画面が必要というところを理解していないんでした。なぜ?(あってもたいしたもんじゃないと思うけど)ただ、PukiWiki が1匹なのに、./wiki/ をいっぱい持ちたいだけ。と理解していますが。-- upk
  • 手元にサーバがあったりsshやtelnetできるときはいいんですが、FTPだけだと結構面倒。 FSWiki みたいに管理画面から作れるとインストールは一回なので便利だ思いました。 -- merlin 2003-08-18 (月) 19:24:31
  • 入り口(URL)と skin,pukiwiki.ini.phpとデータ( ./wiki/)を自由に関連づけて配置できればいいのかな?各サイト側にpukiwiki.ini.phpとskinとwikiを置いて、本体 pukiwiki.phpはシンボリックリンクにして ./pukiwiki.ini.phpを読むようにしたらだめだろうか? -- merlin 2003-08-18 (月) 19:32:47
    • シンボリックリンクは、駄目です。プラットフォーム依存しますからねぇ。 -- upk 2003-08-19 (火) 00:48:19
    • ぐはっ。プラットホーム考えてませんでした。やはり pukiwiki.phpはコピーかぁ。 -- merlin 2003-08-19 (火) 11:00:00
  • 設置者に関して : 企業内で使われるWebアプリの場合、往々にして設置者と管理者が別になることが多い。其の場合には、管理者は、Serverの構造にうとい場合が多いため Webからの管理などが必要とされる。サーバやWebアプリの構造知識が管理者に要求されると管理者と設置者を分離しにくくなり自由度が低下する。そのような用途においては直接設定ファイルをいじるのではなく管理ページから設定することが望まれると考えられる。 -- merlin 2003-08-19 (火) 02:23:46
    • すいません。設置者と管理者を何も考えずに使っていましたね。認識あわせの上では、用語の定義も重要ですからねぇ。-- upk
      • いえいえ 確かに 用語定義って重要ですね。そこでも Wikiの強みが発揮されるような気がしています。 -- merlin 2003-08-19 (火) 11:12:35
  • TeamにいるmizkazさんがWikiRoomっていうPukiWikiによるWikiFarmのサービスを結構前からやっていますね。タレこんじゃいます。勝手にすいません>mizkazさん。あ、今見ようとしたら見れないです。落ちてるのかな・・・?自分のせいっぽいです。失礼しました。 -- tpircs? 2003-08-19 (火) 16:22:16
  • ディレクトリ構成なんですが、backupや diff や cacheなんかもあるので、Farmごとにフォルダがある方が楽なのでは? で、プログラム本体とPluginを共用するしくみと新たなFarmを作るしくみを付け加えればいいのかなぁ? -- merlin 2003-08-19 (火) 18:34:23
    • BASE_DIRのような定数を作って、DATA_DIRなどはdefine('DATA_DIR',BASE_DIR.'wiki/')みたいにしておくと楽ですね。 -- ぱんだ 2003-08-19 (火) 20:44:14
  • WikiRoom ではどうやっているかといいますと、各店子ごとにディレクトリを作り、php プログラムの方はシンボリックリンク、face, image, plugin, skin ディレクトリはシンボリックリンク、attach, backup, cache, counter, diff, wiki ディレクトリは店子ごとに作っています。そのうちソースを公開したいと思います。ちょっと数日待ってください。 -- mizkaz 2003-08-19 (火) 22:43:32
    • pukiwiki.ini.php をいじれば シンボリックリンクで無くてもいけますよね。本体にあまり手をいれずに思い付くのは mizkazさんの方法ですよね。それが、コマンドなんかで簡単に作れる(認証はいるけど)しくみができるといいなぁなんて思ってます。店子(子wiki - child wikiというらしい)間の関連が容易に付けられるようにするとか(自動でInterwikinameへ登録する) 横断的検索とか、コンテンツ的には標準的ポリシーの提供とか一歩踏み込んで検討するのもいいかもしれませんね。 -- merlin 2003-08-19 (火) 22:51:29
    • 設定ファイルを分離してpukiwiki.php外部から指定させられれば、複数の./wiki/を設置しても本体・ライブラリは分離してひとつになりえますよね、pukiwiki.phpがwrapperになる感じで。ちょっと逆の、ひとつの./wiki/を2つのpukiwiki.phpから使うようカスタマイズした*1時に思いました。plugin は define じゃなく、:config 標準にしなきゃ駄目でしょうけれど。手順はそんな難しくなく、大体次のような感じでした。 -- morikawa 2003-09-08 (月) 08:57:37
      • attache, counter の define 行をpukiwiki.ini.php で行っておく。
      • ディレクトリ定義に、HOME_DIR, DATA_DIR, LIB_DIR をくっつける。define("PLUGIN_DIR",LIB_DIR."/plugin");みたく。*2
      • wrapper から上記の HOME_DIR 等を定義してからpukiwiki.phpを読み込んでやる。もしくはpukiwiki.phpの先頭で定義する。
      • 余談。pukiwiki.php で閲覧認証かけても ./wiki/ が公開されてると意味ないので、DATA_DIRはごっそり上位へ移動できるべきという考え方もあるんじゃないかと。./data/wiki, ./data/bacup, ./data/diff など。そうするとWikiFarm的にもやりやすいですかね~。
      • Farmで検討すべきことじゃないでしょ。そもそも漏れているなら、そこから正さないとと思いますよ。つまり、現実装に問題があるので、Farm の検討を待たずして考えないと駄目よねぇ。ということではありませんか?-- upk
      • すみません、端折り発言で。そういう対策が必要なら現実装でも設定で上位に移動させればいいだけの話で、何も問題はありません。漏れてるよって言った覚えはないのであしからず。ただ、./wiki/が公開されてると意味ないの~と気づいて非公開にしたとして、でもdiffやbackupがそのままだったりするとどうよ?ってところから、その場合にどれがデータDirとして非公開ディレクトリ上に行くべきかという点では、データ関連だけをまとめといたら楽なんじゃん?という考え方もあるんじゃん?と思ったわけで。*3 ただの配置上の問題ですが、はじめからそういう設定であれば、ついでにWikiFarm的にやりやすいんじゃ?という程度のことです。実際、どれが共通でどれが個別でと考えながら設置しているもんですから。*4このページにふさわしくなかったならごめんなさい。断言されたので移動させたいんですが、適切なページがあれば教えてください。 -- morikawa 2003-09-13 (土) 00:30:37
      • ちょっと違うような?とも思いますが、PukiWiki/権限/参照 としました。-- upk 2003-09-13 (土) 16:08:49
  • 大して参考にはならないかもしれませんが、BugTrack/147 で、ちょっと関連したことをやってます。あと、jcode_1.34 の jcode_wrapper.php でやっているように、他ファイルをインクルードする際に、require(dirname(__FILE__) . '/included_file.php'); とするようにしておくと、WikiFarm 化する際に便利だと思います。 -- 三浦克介 2003-08-22 (金) 16:05:58
  • 使い方からの考えなのですが、WikiFarm って 小Wiki自体でRecentChangesや一覧が独立するので、BLOG 実装や用語集実装に役立つような気がしています。InterWikiがあるのでBLOG用プラグインやカテゴリで検索するRecentChanges や一覧という機能の実装*5よりは、見通し良くなるような.. 小Wiki間の連携の問題もありますが、すでに msearchなんてpluginもあるのでなんとかなりそうな感あり..(というか 欲しいんですよね BLOGや用語集 :) ) -- merlin 2003-09-22 (月) 09:27:21

WikiFarm

しばらく議論停滞の後、再考察 & 叩き台 (2004/07)

  • しばらく、議論が停滞していましたが、最近、henohenoさんの活躍で開発が活発化して来ましたので、再度、考えてみたいと思います。まだまだ、議論しないと行けない部分が多いですが、議論だけだとなかなかイメージしにくいので、作って見ました。filepukiwikifarm_alpha1.tgzサンプル。以下の様なディレクトリ構成にしてみました。関連: BugTrack/509, BugTrack/147 -- 三浦克介 2004-07-04 (日) 15:30:55
トップディレクトリサブディレクトリ内容
index.php最初に読込むPHP
config/設定関連ディレクトリ
pukiwiki.ini.php主な初期設定ファイル
contents/コンテンツ関連ディレクトリ
attach添付
backupバックアップ
cacheキャッシュ
counterカウンタ
diff差分
trackbackトラックバック
wikiWikiテキスト(主要言語)
wiki.enWikiテキスト(英語)
design/デザイン関連ディレクトリ
faceフェイスマーク
imageアイコン、イメージ
lang言語ファイル
skinスキン
program/プログラム関連ディレクトリ
core本体
pluginプラグイン
  • おおー、すごい、動いているサンプルまであるんですね :D こうして見ると、index.php あるいはコンフィギュレーションのレベルでプラグインの on/off(禁止) ができた方が便利そうですね。・・・いや、PLUGIN_DIRをcontents/ に移して、個別コントロール(不要なプラグインを個別に削除)する解もありますから、今の時点でも実現できるか :) -- henoheno 2004-07-04 (日) 16:54:41
    • henohenoさんの整理(BugTrack/509)のおかげで、変更点は驚くほどわずかでしたよ。 -- 三浦克介 2004-07-04 (日) 17:18:35
  • lngファイルを共有データにするかどうかは私も悩んだのですが、現状はconfig/あるいはcontents/のような(役割の)場所に置くべきかと思っています。といいますのは、どのようなメッセージを出すのかもPukiWiki1本ごとのカスタマイズ対象になりえるという点(中身の問題)。もう一つは、jaでもenでもない言語の登場を困難にしてしまう懸念です(外側の問題)。lngがカスタマイズ可能であれば、多少強引あっても、どちらのニーズもこなせるのではないかと思うのです。 -- henoheno 2004-07-04 (日) 17:05:39
    • コンテンツ(上の例で contents/ にある物)の一部を共有できる仕組みがあればいいんですかね。例えば、:config や ヘルプは共有したいといったニーズはありそうですよね。言語ファイルを :config の下に入れてしまい、手軽に各言語向けのカスタマイズができそうですよね。 -- 三浦克介 2004-07-04 (日) 17:27:09
  • 1.4にDATA_HOMEを実装しました。 (開発日記/2004-07-05) -- henoheno 2004-07-05 (月) 20:34:40
  • 単なる思いつきなのですが。
    使い方という点で、一人が一つ子Wikiを持ち blogを書くようになると、PukiWikiがグループウェアになるのではないでしょうか。
    今までPukiWikiはコンテンツドリブンの方向性なので「人の管理」を意識する場合はXOOPSや他のWiki使ってね、という流れでした。
    現状PukiWikiであまたの個人サイトが稼動してる例を見るに、個人を切り口にした管理はできているという認識です。で、あれば。WikiFarmで個人を束ねたグループウェアもさほど無理せずに実現できるんじゃないのかという…。 -- にぶんのに 2004-09-05 (日) 02:53:31

mizkaz版 WikiFarm (2004/07)

  • 前にちょっと作って試していたものを公開します。WikiRoomでやっている方法とは違いシンボリックリンクは使っていません。なので、Windows環境でも動作します。 -- mizkaz 2004-07-07 (水) 01:20:42

設置方法

  1. PukiWiki 1.4.3 をインストールします。*6インストールしたディレクトリを pukiwiki/ とします。
         pukiwiki/*
  2. filefarmkit.tar.gz を解凍します。次のように解凍されます。
         readme.txt
         initial_wiki/*
         pukiwiki/*
  3. 1.4.3 をインストールしたディレクトリ pukiwiki/* に、解凍した pukiwiki/* を上書きして下さい。
  4. ディレクトリ initial_wiki/* を pukiwiki/* と同じディレクトリ(<FARM_DIR>)にコピーします。
         initial_wiki/*
         pukiwiki/*
  5. Web サーバが書き込めるようにディレクトリのパーミッションを変更します。
         chmod 0777 <FARM_DIR>
         chmod 0777 <FARM_DIR>/pukiwiki/shared_cache
  6. 大家の設定。pukiwiki/plugin/regist.inc.php をインストール環境に合わせて編集します。
         // WikiFarm ディレクトリ (編集必須)
         define('FARM_DIR', '/home/hogehoge/public_html/farm/');
         // WikiFarm URL (編集必須)
         define('FARM_URL', 'http://your.wiki.site/~hogehoge/farm/');
  7. 大家にアクセスします。
        http://your.wiki.site/~hogehoge/farm/pukiwki/
  8. regist プラグインを大家の適当なページに設置します。
        #regist

店子のカスタマイズ

各店子のカスタマイズは :config/preference ページからできます。*7


最近の話題: PukiWiki 1.4.4以降 (2004/09~)

  • PukiWiki 1.4.4以降は、「index.phpや画像やCSS(Webサーバーから露出させなければならないもの)」、「プログラム本体」「PukiWiki一本ごとに固有のデータ」を分割・共有しやすい様に再構成されています。
    • official:PukiWiki/Download/1.4.4
    • official:WebTrack/28
    • なおプラグイン(どのプラグインを利用するか)はデフォルトでは「PukiWiki一本ごとに固有のデータ」に分類されています。全てのPukiWikiに同じ plugin ディレクトリを共有させる構成は、管理者の自己責任で行って下さい。

WikiFarmもどき (構成例 by Yoshii)

  • PukiWikiでWikiFarmもどきを作ってみました。希望するWikiFarmとは違うと思いますが、サイト作成者が自分のために複数のWikiに分けたい要望には答えられるかもしれません。第三者に作成させるにはサイトを作る許可をする管理画面や一般ユーザーがブラウザからスキンなどを変更できる管理画面を作る必要があると思いました。 -- Yoshii 2005-06-12 (日) 20:09:46
  • WikiFarmもどき -- Yoshii 2005-06-12 (日) 20:10:47
  • サンプルサイト -- Yoshii 2005-06-12 (日) 20:11:10
  • 更新されたのでついでですが、上記URLのサンプルは容量の関係で削除しました。 -- Yoshii 2006-09-07 (木) 00:08:41

コメント

  • 結局、現在WikiFarmはどういう状態になってるんでしょうか? -- うずまき? 2005-02-28 (月) 12:31:00
  • この件、私も気になっているのですがどういう状態でしょうか? -- ゴン太 2005-05-08 (日) 22:51:17
  • わたしも知りたいです -- はるほ 2005-06-03 (金) 21:49:58
  • とりあえず(このページが)今まで時間を意識していなかったようであり、また途中経過と結果の切り分けができていないようであり・・・要は話を追い辛い形になっていたようなので、まずは見出しの内容と階層を整理してみました。 -- henoheno 2005-06-04 (土) 19:30:37
    • 1.4.4以降の情報を追加しました。 -- henoheno 2005-06-04 (土) 19:55:25
  • お疲れさまです。 -- はるほ 2005-06-04 (土) 21:17:24
  • やっぱりよくわかりません。まず、本体機能で実現する予定はあるのでしょうか? -- まるまる? 2005-06-07 (火) 21:05:16
  • ロードマップによると1.6で実装する予定みたいですよ -- はるほ 2005-06-09 (木) 00:03:08
  • それは、merlin案ですよ。henohenoさんは、特に触れてませんよ。 -- ぷすま? 2005-06-09 (木) 23:05:15
    • 本来のWikiFarmとWikiFarmEngineの関係を誤解されていないのであれば、WikiFarmEngineのような機能は本体と独立して考える(作る)事ができると気付かれると思います。後は、どこまでをWebサイトから許すかという部分のトレードオフ(安全性と危険性、単独の状態との性能的な点や管理の楽さ加減、安易な利用をどのように防ぐか等)を、それぞれがどれだけ考えるかによると思います。 -- henoheno 2005-06-10 (金) 00:25:09
      • ここで危険性と言いますのは、例えば率直に実装したとして、wiki/diff/attach/backup などのディレクトリをPHPから(Web経由で)作成させるようなハックを行った場合、PHPからの操作を許してしまうがゆえに、それらをディレクトリごと削除ないしリネームする攻撃が可能になるというような話です。通常のPukiWikiだとファイル・ディレクトリの所有者が明確に分かれるため、いたずらのできる範囲はより限られています。 -- henoheno 2005-06-10 (金) 00:34:37
    • 上ではるほさんが挙げられているのは PukiWiki による WikiFarmEngineの実装例で、Linkage Noteの leva さんはどういう方かというとFirefoxまとめサイトの管理者の方です。つまり上記 WikiFarmEngine 実装は一時期それらのまとめサイトで利用されていたのですが、若干の負荷的な要因があったようで、現在はそれを利用されていないはずです。当時*9まとめサイトをシェイプアップされる過程でそのようなお話を伺いました。 -- henoheno 2005-06-10 (金) 00:28:25
  • で、結局はWikiFarmは実装されないのでしょうか?危険性に関しては重々理解できますがオプションで選択できるなどの改造は無理かな? -- ゴン太 2005-06-10 (金) 18:02:30
    • 「WikiFarm」に必要な要素は既に実装されています。「WikiFarmEngine」のための外部プログラムは、まず「WikiFarm」を構築するプログラムや手法について検討した上で、必要な人が作って下さい。 -- henoheno 2005-06-13 (月) 00:08:42
  • pkeGhoNqzA -- hauhrts? 2014-06-24 (火) 20:24:32


コメント: 関連性のない複数のWikiを立ち上げる件

  • だれでも作れるのがWikiFarmEngine、通常のwikifarmは管理者のみと理解してたんですけど違いました?たぶん、ほとんどの人は、1つのシステムで関連性のない複数のwikiを立ち上げたいという理由でwikifarmを求めてると思っていたのですが、違うのですか?Pukiwikiの利用は、イントラでもけっこうあるというか私はそうなんですけど。だから、別にweb上でそういった危険な操作を出来るようにすることではないというのが私の意見です。 -- ぷすま? 2005-06-10 (金) 23:12:38
  • >1つのシステムで関連性のない複数のwikiを立ち上げたいという理由でwikifarmを求めてる
    これ、私もです。 -- はるほ 2005-06-11 (土) 00:22:51
    • こんにちは :) 基本的なところから確認しましょう。「関連性のない複数のWikiを立ち上げる」ことは、どんなWiki実装でも、はるか以前から、管理者の責任において自由に実現できます。単純なところでは、複数個Wikiを設置すれば良いのです。既にそうしている方は沢山いらっしゃいます。 そうする行為は、WikiFarmやWikiFarmEngineという語句とは何の関係もなく可能です。 -- henoheno 2005-06-12 (日) 23:53:42
    • とは言っても、丸ごとコピーまたは展開する方法で複数個のWikiの集まりを作るというのは、数個程度であればまだしも、数十個から数百個のレベルともなると面倒です。 (1) プログラム本体など、共通に使えるはずの部分も複数個生じますから、冗長です。 (2) 増築したり、READONLYにしたり、削除するようなことが簡単にできないのは手間です。 -- henoheno 2005-06-12 (日) 23:56:32
    • ですから、 (1) 冗長な部分がなるべく生じない・・・つまり共有できる部分は共有できるように構造を改める のと、 (2) サポートプログラム という二つの改良の余地が見えてくるわけですが、(1) は既に実現しています。(2)はプログラム本体の仕事ではありません。また、どれだけの規模でどの位の事をしたいのかによって手段が変わります(上にある様々な例を参照のこと)。 -- henoheno 2005-06-13 (月) 00:01:26
    • (1) は実現していますから、知っている方なら数個のWikiでも要素を共有できます。 -- henoheno 2005-06-13 (月) 00:04:38
    • というのが現状です。 -- henoheno 2005-06-13 (月) 00:04:56
      • (お、Yoshiiさんとこで、(1)についてほとんど同じ事が書いてあるじゃないか -- henoheno 2005-06-13 (月) 00:24:07
    • 「だれでも作れるのがWikiFarmEngine、通常のWikiFarmは管理者のみ」という認識は正しいと思います。 -- henoheno 2005-06-13 (月) 00:07:13
    • みんな「誰でも別個のWikiが作れるのは便利そうだ」という部分に長い事心を奪われている様ですが、そろそろその安易さ*10と、ソレとは別に「複数のWikiのデータを密に置く」状態の本来の意味と可能性に気付いている管理者の方が出られる事を期待しています。 -- henoheno 2005-06-13 (月) 00:16:46
  • 本来のWikiFarmと目的が異なるのかもしれませんが、スキンとdefaultpageだけを指定して擬似的に分け、コンテンツを共有できるような形にしておいた方がWikiらしく*11て良いような気がしています。 -- teanan 2005-06-14 (火) 03:53:31
    • ・・・簡単に実現できるような気がしますが (^^; -- teanan 2005-06-14 (火) 03:59:13
    • ただ、この「Wikiらしい」というのはあまり必要とされてないんですかね (^^; -- teanan 2005-06-14 (火) 04:01:49
    • デスクトップPCと携帯電話でFrontPageを別のページにするなんてのはそこそこ認識されていると思います。また、特定のグループで共同利用しているWikiで、それぞれの日記ページや、興味のある入り口をそれぞれがブックマークしているというのもあると思います。元々どのページも基本的な立場が同じなので、設定上の $defaultpage という形態かどうかはさておき、そのような使い方はされていると思いますよ :) -- henoheno 2005-06-14 (火) 22:44:22
  • そろそろ、このページも整理してみては?議論の余地なく、Wikifarmが構築できるのであれば、こうすれば出来る!!っていう解説をわかりやすく書けばいいだけだと思うんですけど。 -- 2005-11-11 (金) 19:21:47
    • そうですね。いままでは要求ベースで動いていて、最低限の実装と、質問に対する応答のみになっていますね (^^; (official:WebTrack/28 など)。とりあえず WikiFarm と WikiFarmEngine は違う、という事も含めて全部一箇所にまとめると、とりあえず一山越えますかね :) -- henoheno 2005-11-13 (日) 23:15:47

WikiFarmもどき 1.4.7 出来る限り共用版試験中

pukiwiki.ini.php以外のすべてを共用する方針で検討中

  • ディレクトリ構成
    ./
    ├common
    │├─image
    │├─lib
    │├─plugin
    │├─skin
    │├.htaccess
    │├default.ini.php
    │├keitai.ini.php
    │├rules.ini.php
    │├en.lng.php
    │└ja.lng.php
    ├wiki1
    │├─attach
    │├─backup
    │├─cache
    │├─counter
    │├─diff
    │├─trackback
    │├─wiki
    │├.htaccess
    │├.htpasswd
    │├index.php
    │└pukiwiki.ini.php
    ├wiki2
    │├─attach
    │├─backup
    │├─cache
    │├─counter
    │├─diff
    │├─trackback
    │└─wiki
  • ../common/を追加
    • index.ini.php 2箇所
      define('COMMON_DIR','../common/'); // Common directory
      define('LIB_DIR',	COMMON_DIR . 'lib/');
  • COMMON_DIRを追加
    • pukiwiki.ini.php 3箇所
      define('PLUGIN_DIR',    DATA_HOME . COMMON_DIR . 'plugin/'   ); // Plugin directory
      	
      /////////////////////////////////////////////////
      // Directory settings II (ended with '/')
      
      // Skins / Stylesheets
      define('SKIN_DIR', COMMON_DIR . 'skin/');
      // Skin files (SKIN_DIR/*.skin.php) are needed at
      // ./DATAHOME/SKIN_DIR from index.php, but
      // CSSs(*.css) and JavaScripts(*.js) are needed at
      // ./SKIN_DIR from index.php.
      
      // Static image files
      define('IMAGE_DIR', COMMON_DIR . 'image/');
      // Keep this directory shown via web browsers like
      // ./IMAGE_DIR from index.php.
    • pukiwiki.skin.php 2箇所
      <link rel="stylesheet" href="<?php echo SKIN_DIR ?>pukiwiki.css.php?charset=<?php echo $css_charset 
      ?>" type="text/css" media="screen" charset="<?php echo $css_charset ?>" />
      <link rel="stylesheet" href="<?php echo SKIN_DIR ?>pukiwiki.css.php?charset=<?php echo $css_charset 
      ?>" type="text/css" media="print" charset="<?php echo $css_charset ?>" />
    • lib/init.php 4箇所
      define('LANG_FILE_HINT', DATA_HOME . COMMON_DIR . LANG . '.lng.php');	// For encoding hint
      define('LANG_FILE',      DATA_HOME . COMMON_DIR . UI_LANG . '.lng.php');	// For UI resource
      
      define('UA_INI_FILE', DATA_HOME . COMMON_DIR . UA_PROFILE . '.ini.php');
      
      // 初期設定(ユーザ定義ルール読み込み)
      require(DATA_HOME . COMMON_DIR . 'rules.ini.php');
  • 少しためしてみたのですが、wikifarmってこういうことでいいんでしょうか?たしかに、結構簡単でした。ただ、このパターンの場合、書き換える場所が分散してるなぁって感じもしました。あと、lngファイルなんかも共用させたいんですけど、いじる場所が。。。 -- うずまき? 2005-11-14 (月) 13:01:49
  • 以前に見たときは良く理解できませんでした。ソース部分を分離したいな、と思い分けたところ、そう言えばと思い見返しますと、そう、これでFarmが実現できるじゃないですか。後は設定関連ですねぇ。ちょっとトライしてみようかな。 -- Yoshii 2006-01-10 (火) 23:51:57
  • 言語ファイルの共用化とCOMMON_DIRを追加。でも、ぜんぜんスマートじゃない。あとは、iniファイル関係かな -- うずまき? 2006-01-17 (火) 19:23:39
  • 一応完了。COMMON_DIRにこだわらず、ライブラリ関係(lib,plugin)ディレクトリとwiki1ディレクトリが同一階層にしとけば、こんなに面倒にならなかったと後で気づきましたが、1つのディレクトリにまとめたかったという好みの問題です。 -- 2006-01-30 (月) 14:25:22
  • こっそりと1.4.7に対応。 -- 2006-09-05 (火) 16:33:29
  • ↑thx!! -- 2006-09-21 (木) 21:17:10
  • ってやってみたらエラーが・・。上のpukiwiki.skin.php 2箇所のとこ記述がおかしかったので訂正しておきました。 -- yamasan? 2006-09-21 (木) 21:45:15


WikiFarmEngine

1.4.6 で WikiFarmEngine を作成したい!

Yoshiiです。PukiWiki 1.4.6 でWikiFarmEngineを作成したいと思い、同サイトに公開されている情報とmizkazさんのソースを元に作成してみました。詳細とファイルは申し訳ありませんが、以下の私のサイトをご参照ください。

PukiWikiでWikiFarmEngineを考える。

結論としては入力したID名で子供サイトを作成する事が出来るようになりました。プログラム部分とデータ部分をうずまきさんの説明のように分離しています。

課題は子供サイトの設定をどうやって変更しようか?と言う部分です。どなたかご協力いただけますと幸いです。

  • よろしくお願いします。 -- Yoshii 2006-01-12 (木) 00:46:11
  • 良く見たらmizkazさんのWikiFarmに管理部分がありました。そのままでは動かなかったのでちょいと手直し。(PukiWikiの仕様変更による為みたい)でも、管理画面が丸見えです。管理ページにアクセスするときに認証できるようにしたいなぁ。あとパスワードをmd5で渡したいのと、パスワードを変更できるようにしたいなぁ。 -- Yoshii 2006-01-13 (金) 23:29:40
  • 管理画面を作成する事ができました。サイト別の設定は最低限となっています。次はスキンだ。 -- Yoshii 2006-01-15 (日) 17:35:51
  • 私が欲しかった機能は一通り実装しました。日曜プログラマレベルですが。。サンプルサイトも公開しています。ただ、いつ閉鎖するかわからないサイトなので上記URLより飛んだ中ほどにリンクがあります。なくなっていたら閉鎖したって事です。ごめんなさい。 -- Yoshii 2006-01-17 (火) 23:56:42

WikiFarmEngineを作成してみました。

http://netmemo.ath.cx/

kawと申します。なぜか突然WikiFarmEngineを作ってみました。

  • PukiWikiを用いてますが、WikiFarmEngine自体はPukiWikiとは独立した別個のPHPプログラムです。
  • 複数Wikiで共有できる部分はシンボリックリンクで共有しています。
  • PHPで書いてるとタルい部分はシェルスクリプトで書いてあります。よって、プラットフォーム依存しまくりです。
  • 作成されたURLの一部には入力情報のハッシュから生成された文字列を含みます(よって非公開サイトを総当たり的に探すのは、ちょっとだけ困難です*12)。
  • ユーザが入力した情報を忘れてしまった場合のリマインダを実装しています。
  • ユーザの希望により、あるいは長期間放置されているサイトに対して、サイト全体を自動削除する機能があります(この部分もUnixのcron使ってますのでバリバリ環境依存です)。
  • サイト作成時、スキンを選択できます。

プログラム書いてから、こことかを見に来たのですが、みなさんの目指してるものとはちょっと違うのかな。でも一応紹介させて頂きました。 URLは、http://netmemo.ath.cx/ です。

  • こんにちは。既に存在するWikiを見ることはできないのですね。ある意味(運営側も利用者も)まったりできるかもしれませんね。既存の3rd partyのスキンや、tDirayスキンを使うとデザインのバリエーションが増やせますよ。 -- henoheno 2006-02-26 (日) 17:39:06
  • サンプルで作成しようとしたのですが「メールアドレスが正しく記入されていません。」と表示されて登録できませんでした。 。・゚・(ノД`)・゚・。 -- Yoshii 2006-02-27 (月) 19:28:10
  • >henohenoさま; コンセプトとしては、「ネット上で気軽に作って使える雑記帳。個人のメモや覚書にも、みんなが書き込める寄せ書きとしても使えます」みたいな感じです。作成したWikiのFrontPageには、管理用のサイトのURLが紹介されているので、自分のURLを公開したい人は、そこに書くことができます。3rd partyのスキンについては、pukiwiki.ini.phpを書き換えちゃうものとかあるみたいですね。あと、スキンの数が多いと、登録時、サムネイルをスマートに表示するのが結構むずかしそうなので、現在様子見です。もうすこし増やそうとは思ってますが‥。 -- kaw? 2006-03-02 (木) 00:44:45
  • >Yoshiiさま; メールアドレスをチェックするための正規表現に誤りがありました。修正しましたのでご確認いただけますか。 -- kaw? 2006-03-02 (木) 00:47:38


*1 公開ディレクトリはread-only、別途制限ディレクトリから編集など。
*2 DATA_DIR が ./wiki/ とかぶるので、DATAHOME_DIR とかだけど。
*3 例えば他のアプリケーションで./data/ディレクトリ以下にデータをまとめて収めているように。
*4 非公開でよい./wiki類と、公開されてなきゃいけない./skin, ./attach類の分けとかも。
*5 これはこれでいいかも
*6 最近のCVSは追いかけていなかったので、1.4.3をインストールしてください。
*7 pukiwiki.ini.php で設定できる項目そのまんまなので、分かり難いと思います。今後の課題かな。
*8 設定ファイルに関する議論も興味深いと思います
*9 まとめサイトが別件+αでダウンした当時
*10 単純な実装ほどケアが足りないので、安易な行為・又貸し・無管理・逃避・脆弱な体制を助長する
*11 BracketNameを他の誰かが定義してくれたり、AutoLinkされる、等
*12 秘匿性が担保されているわけではないのは勿論ですが

添付ファイル: filefarmkit.tar.gz 1104件 [詳細] filepukiwikifarm_alpha1.tgz 1022件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-06-24 (火) 20:24:33
Site admin: PukiWiki Development Team

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

OSDN