トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

サポート掲示板

ページの作成や編集にはユーザ登録が必要です。

FSWikiサポート掲示板

  • 設置に関するトラブルや要望などがあれば書き込んでください。
  • 記事のタイトル一覧をサポート掲示板一覧で見る事ができます。それ以前の過去ログは[サポート掲示板]から参照できます。
  • 投稿する前に
    • Tips、FAQ、サポート掲示板の過去ログに同様の内容がないかを確認してください。
    • バグ報告に関してはバグトラックのほうにお願いします。
    • 機能拡張のためのパッチやプラグインの投稿はプラグイン投稿にお願いします。
      • パッチは本体にあてるものの場合はGPL、プラグインにあてるものの場合はプラグインのライセンスにしたがうものとします。
    • 開発に関するご意見、質問等はメーリングリストにお願いします。
  • FSWikiとは無関係と思われる投稿、コメントに関しては削除させていただきますのでご了承ください。
  • 特定の設置環境でのみ発生するトラブルがいくつかあります。トラブル報告の際には、「どんな設定の」「どのサーバ/レンタルスペースに」「どうやって」設置したかを詳しく書くと、返事がもらいやすいですよ
  • どういうことを書けば回答を得やすいか判らない方は、こちらのページをご一読ください。
お名前
件名
本文

plugin/162のインストールエラー - NORI (2008年07月01日 13時46分53秒)

現在BIGLOBEのサーバーでFSWiki3.6.2を利用している者です。テーブルのカラムを任意のサイズに編集できるようにとBugTrack-plugin/162をインストールしたのですが、プラグイン設定にチェックを入れて保存すると、エラーが発生してページが表示されなくなってしまいました。そこで、プラグインを削除してから再度ページを表示させたところ、下記の赤文字のメッセージが表示されました。

_ex_tableプラグインがインストールできません。Can't locate plugin/_ex_table/Install.pm in @INC (@INC contains: . ./lib /usr/local/pkg/perl/5.8.7/lib/i386-linux-thread-multi /usr/local/pkg/perl/5.8.7/lib /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl .) at (eval 17) line 1.

このエラー発生の原因について、心当たりや解決方法をご存知の方がいらっしゃいましたらご教示願えないでしょうか。

  • _ex_table プラグインの情報が config/plugin.dat に残っているので、Install.pm を呼び出そうとして、エラーが発生しているものと思われます。plugin.dat から _ex_table の行を削除すれば解決できると思われます。 - KG (2008年07月01日 16時01分31秒)
  • KGさん、早速のご返信ありがとうございます。先ほどの説明では書き漏らしてしまいましたが、赤文字のエラーメッセージに関しては、bugtrackプラグインのチェックを一旦外して保存し、再度チェックを入れることで、エラーメッセージが表示されていない元の状態に戻せています。ただ、ex_tableプラグインをインストールするとページが表示されなくなるエラーに関しては、自分なりにいろいろと試みましたが、お手上げの状態です。 - NORI (2008年07月01日 18時05分01秒)
  • 上記エラーメッセージは、_ex_table を有効にした際のものではないということですよね?有効にした場合に表示されるエラーメッセージはわかりますでしょうか?上記エラーメッセージがそうであるならば、_ex_table および Install.pm のアクセス権限が間違っているかと思われます。 - KG (2008年07月01日 18時37分59秒)
  • KGさん、その通りです。上記の赤文字のエラーメッセージは_ex_tableプラグインを有効にした際に表示されるものではなく、元の状態に戻そうと_ex_tableプラグインを削除した後に再度ページにアクセスすると表示されるものです。プラグインを有効にした際に表示されるエラーメッセージは次のとおりです。

- NORI (2008年07月01日 19時01分42秒)

  • これは、どうしようもないですねぇ・・・。もしかして、pdfプラグインディレクトリ(plugin/pdf)自体を削除してたりしますか?_ex_table プラグインでは、内部で plugin::pdf::PDFParser モジュールを使用(オーバーライド)しているので、ファイルが見つからないとエラーになると思います。 - KG (2008年07月01日 19時25分44秒)
  • BIGLOBEではPDFプラグインを有効にしても、添付画像と同じエラーが発生するので無効にしていましたがプラグイン自体は削除していないので、BIGLOBEサーバー固有の問題である可能性が高いですね・・・。.htaccsessも使えない仕様のBIGLOBE、だんだん捨てたくなってきました(笑)KGさん、迅速に対応して下さって本当にありがとうございました。なにか他の手段を考えてみます。 - NORI (2008年07月01日 19時42分31秒)
  • とりあえず、TableEx.pm の PDF部分を削除したものを作成しましたので、試してみてください。TableEx_20060808_NotPDF.pm(587) ファイル名は TableEx.pm に変更して _ex_table ディレクトリ内の同一ファイルと置き換えてください。PDFが問題であれば、これで解決するかもしれません。 - KG (2008年07月01日 19時51分18秒)
  • 早速添付して頂いたファイルに差し替えてみたところ、無事にプラグインを有効にできました。あーうれしい!これからこのプラグインでいろいろ試してみようと思います。KGさん、有難うございました。本当に助かりました。 - NORI (2008年07月01日 20時03分31秒)
お名前: コメント:

ヘルプです。 - guest (2008年06月23日 17時43分11秒)

ログインできなくなってしまいました。パスワードは間違っていないのですが。どうすればいいでしょうか?

お名前: コメント:

テーブル内でカンマの使用 - can (2008年06月23日 00時31分09秒)

テーブル内で枠を変えずにカンマを使用するにはそうすればいいのでしょうか例)「青森、北海道」(次の枠→)「大阪、東京」

  • 「、」じゃなくて「,」ですよね?「カンマ」と書いてあるし。
,"青森,北海道","大阪,東京 "
青森,北海道 大阪,東京

 この質問、何回目でしょうか。- 名無しさん (2008年06月23日 07時05分58秒)

  • どなたかも書かれていたように思うのですが、サポート掲示板から知りたい情報を探すのはなかなか大変なので、仕方がないかもしれません。Helpに書くというのはいかがでしょうか。 - 名無しさん (2008年06月23日 12時02分03秒)
  • 希望通りの記述が出来ました!ありがとうございます。例の間違えで逆にややこしくしてしましもうしわけございません。 - can (2008年06月25日 15時55分47秒)
お名前: コメント:

表について - ミグ (2008年06月16日 13時38分06秒)

突然の質問で申し訳ありません。Wikiで表を作るとします。そのときヘッダ部分だけ固定してスクロールする表内スクロールをしたいのですが、それはFsWikiで可能なのでしょうか?

  • 可能といえば可能。お望みのことがやりたいのであれば、FS-Wikiでなく、CSSで実現できます。 - 通りすがり (2008年06月18日 09時56分37秒)
  • 助かりました ありがとうございます - ミグ (2008年06月24日 16時58分37秒)
お名前: コメント:

編集できない - けんた (2008年06月16日 07時59分52秒)

XPでMicrosoft Internet Explorerを使っています。今までWiki は問題なく動いていたのですが、このところ、ログインして、編集しようとすると、編集画面にかわりません。他のホームページは問題なく動きますが、wiki の編集や時に一覧のリンクが動作しなくなります。同じことを別のパソコンのほかのブラウザ,Windows Internet Explorer でやると動きます。どのように改善すればいいのでしょうか?

  • 他のPCやブラウザで動くのならご使用環境の問題では・・・。キャッシュやcookieでダメならブラウザ入れ直すとか・・・。 - 名無しさん (2008年06月18日 09時54分37秒)
  • 文字コードは確認されましたか? - 名無しさん (2008年06月18日 11時07分56秒)
  • 回答、ありがとうございました。どういうわけか突然、動くようになりました。しばらく様子を見てみます。 - けんた (2008年06月24日 07時48分17秒)
お名前: コメント:

また質問させてください - ムラ (2008年06月13日 16時58分31秒)

前の投稿(表内の文字を中央寄せ)は実現できました。ありがとうございました。しかしまたわからないことが発生したのですが、Wiki内である部分だけ編集する部分編集の方法がわからないのですがどうすれば実現できますか? 大変申し訳ないんですがまた御教授願います。

  • 「管理→環境設定→パート編集」で「パート編集モードを有効にする」にチェックをすると、この公式サイトのように各パート毎に「編集」のリンクが出ます(このサイトでは右端に)。 - 菜梨 (2008年06月13日 19時42分07秒)
  • できました ありがとうございました - ムラ (2008年06月16日 13時33分50秒)
お名前: コメント:

表内の文字について - ムラ (2008年06月11日 19時13分04秒)

どうしてもわからないことがあるのですがWikiで表内の文字の中央寄せの方法がわからないのですどなたか御教授願います

  • 普通は出来ません。BugTrack-plugin/162を入れれば出来るようになるかと思います。 - 名無しさん (2008年06月11日 19時22分07秒)
  • ありがとうございました - ムラ (2008年06月12日 09時47分36秒)
お名前: コメント:

calendar プラグイン - けんた (2008年06月11日 15時57分20秒)

を使ってみたのですが、カレンダーの日付をクリックするとページが見つかりませんとなります。ふつうなら、その日の記事を書く画面になると思うのですが。url の最後が、g/のようになって、見つかりませんとなります。

お名前: コメント:

ランダムに include できますか? - けんた (2008年06月11日 15時14分54秒)

よろしくお願いいたします。Aというページを作って、そのページ内にいろいろなページをランダムに include することはできますか? Fortune を使いましたが、うまくできません。何かいい方法があれば教えてください。

  • includeプラグインが多すぎますの制限があるようです。 - 名無しさん (2008年06月11日 15時25分27秒)
  • 他の方法を探ってみます。なにかいい方法があれば教えてください。 - けんた (2008年06月11日 20時59分29秒)
お名前: コメント:

SUSE LinuxでPermission denied at lib/Wiki/DefaultStorage.pm line 99 - J (2008年06月10日 17時38分29秒)

こんにちは.SUSE Linux上でapache+FSWikiを運用しているのですが,一部のページを編集しようとするとInternal Server Errorが出てしまいます.Apacheのエラーログを見ると

wiki.cgi: Permission denied at lib/Wiki/DefaultStorage.pm line 99.

malformed header from script. Bad header=<pre>Permission denied at lib/: /usr/local/apache/htdocs/flabwiki/wiki.cgi

となっていました.過去ログやWebで調べたところDefaultStorage.pmの99行目はbackupファイルを開く操作のようで,backupディレクトリのパーミッションを変更することで対処できる とのことですが777,707,755など試してみましたが効果はありませんでした.

また,すべてのページで上記のようなエラーが出るわけではなく,問題なく編集できるページとそうでないページの差がなぜ生まれるのかも不明です.

同じような症状が出たことがある方や対処方法をご存知の方はアドバイスをお願いします.

  • とりあえず基本情報として、FSWiki と perl のバージョンを記載してみるというのいかがでしょう? 解決につながるという保証はできませんが。 - ななし (2008年06月14日 00時26分50秒)
  • FSWikiのバージョンを3.5.6から3.6.3にバージョンアップしたところ、不具合がなくなりました。ver3.6.3で編集したデータを3.5.6に移したのがまずかったようです。アドバイスありがとうございます。 - J (2008年06月18日 13時59分34秒)
お名前: コメント:

mod_perlでthemeが反映されない - ryu (2008年06月09日 09時22分54秒)

プライベート情報の統一管理と複数PCでの共有のためにFSWikiを構築中です。debian+open_sshの環境で通常のperl CGIではhttpsアクセスで問題なく動いたのですが、動作が遅いためにmod_perl化したところ、themeフォルダをアクセスできなくなり、cssが反映されなくなりました(コンテンツは表示される)。不思議なことにローカルPCのブラウザから直接IP指定すると、問題なく表示されるのですが、外部からアクセスしたり(NAT)、ローカルPCでホスト名でアクセス(hostsファイルで名前解決)すると、themeフォルダ内のcssが読めない(Internal Server Error発生)のです。

themeフォルダを別に場所にして、setup.dat内のTHEME_URIを変更(相対、絶対とも)してみても状況変わらずです。ちなみにブラウザはIE6, FireFox, Safariを試してみましたが、いずれも同じ結果でした。

何かアドバイスいただけないでしょうか。

お名前: コメント:

infoseekでログイン状態がすぐに外れてしまう - SAT (2008年06月07日 19時57分51秒)

二つ下のゆうさんの状態に似ているのですが、アドバイスをいただけると助かります。

infoseekでfswikiを使用させていただいています。テンプレートは「ブログライクなテンプレート(第2版)」を使用させていただいています。

これまで問題なく使用できていたのですが、最近になって下記の症状に陥り、更新がままならず困っております。

具体的な症状は、管理者でログインしてもすぐに(編集画面に移動したりすると)ログアウト状態に戻されてしまいます。場合によってはしばらくログイン状態が続くこともあります。どのようなタイミングでログアウトになってしまうのか再現方法は不明です。セッションタイムは30分に設定しています。時間は関係ないようです。

二つ下の情報を参考にタイムゾーンを変更したりしてみたのですが、上手く行きませんでした。変更前はJST-9です。試した設定はGMT-0,GMT-9,GMT+9です。

ブラウザ側のクッキーや、キャッシュを削除してもダメでした。

アドバイスをお願いいたします。

  • BEGIN {$ENV{'TZ'}="Asia/Tokyo";}ではどうでしょうか。既出にタブとクッキーがかみ合っていない場合もあるようです。 - 名無しさん (2008年06月10日 12時16分32秒)
  • コメントありがとうございます。BEGIN〜をwiki.cgiに書き加えればよいのでしょうか?それでやってみたのですがやはりログアウトしてしまいました。 - SAT (2008年06月10日 14時09分14秒)
  • 自分も同時期ぐらいからinfoseekは調子悪いです。ログインは3回に1回成功ぐらいで、ログインできても記事を保存しようとすると強制タイムアウトしてしまいます。timeout=600とかにもしてますが、何が悪いか分かりません。自分も情報欲しいです - kimukou (2008年08月18日 08時11分36秒)
  • 同じく調子悪いです。気になったことを2点ほど。1つめ、CGISESSIDが毎回変わってるのがおかしいような気もします。2つめ、レスポンスヘッダの時刻とcookieの有効期限がGMTで帰ってきている(自分のPC時間の9時間前)。ただ2点共に正常な状態でどうなのかわかりませんが、ここらへんが何か変わったのではないかと。 - 名無しさん (2008年08月20日 00時59分29秒)
  • サーバの時刻がUTCになっている気もしないでもないですが、他のサーバだとJSTで設定されているので問題になっていないとか? - 名無しさん (2008年08月20日 01時18分09秒)
  • FireFoxでみると、レスポンスヘッダ Date:Wed, 27 Aug 2008 08:34:02 GMT/Set-Cookie:expires=Wed, 27-Aug-2008 18:34:03 GMT なんですけどね。ログインエラーすら出ないのはどうしたら直せるんでしょうか・・。 - kimukou (2008年08月27日 17時42分33秒)
  • 8/20頃にサーバメンテナンスがあって、その後は暫くだいじょぶでしたが、今はまた駄目になってますな - 名無しさん (2008年08月30日 21時42分37秒)
  • logディレクトリに空のセッションファイルができて、消されずに残ってしまいます。この辺が関係してるのでしょうか。 - あ (2008年11月26日 11時41分31秒)
  • @PAGESでも同様の現象が発生しています - 名無しさん (2009年05月27日 15時09分43秒)
お名前: コメント:

RSSファイルが作成できない - sabo (2008年06月04日 08時42分48秒)

FreeStyleWiki3.6.2を使っています。

ページを編集して保存をしようとすると、次のようなエラーが出ます。「Software Error:RSSファイルの作成に失敗しました。 at plugin/rss/RSSMaker10.pm line 108. at lib/Util.pm line 683. 」。RSSファイルの作成に失敗しているだけで、編集結果は反映されています。しかし、毎回エラー表示になる現象に困っています。どうすればRSSファイルの作成がうまくいくようになるのでしょうか。

ちなみに、以前wikiの設置ディレクトリを変更したときに、wiki自体が閲覧不可になっていたのですが、こちらはパーミッション変更が原因でした。BBS-サポート掲示板/781

ご教授よろしくお願いいたします。

  • log/rss10.cacheが開けないとエラーになるようなので、このファイルを消すか、ログ周りのパーミッションを確認するか、そのあたりをごらんになってはいかがでしょうか。 - 名無しさん (2008年06月04日 14時27分04秒)
  • log/rss10.cacheを削除することで、エラーが出なくなりました。ありがとうございました。 - sabo (2008年06月04日 15時30分29秒)
お名前: コメント:

正しいID、passでログイン画面がループする - ゆう (2008年05月14日 20時52分18秒)

fswikiを使い始めてしばらく経つのですが、突然ログインできなくなりました。ログインを必要としないページは今までどおり表示・更新出来ていますが、ログインしていないと閲覧できないページは(ログイン出来ないので)見られません。

具体的な事象としては、ログイン画面でIDとパスワードを入力するとページが切り替わり、、、またログイン画面に戻ります。不正なIDやパスワードを入力するとエラー画面になりますので、user.datがおかしいとか入力を間違えているわけではなさそうです。念のためuser.datを初期化してみましたが、事象は変わりません。ログインできなくなった前後で新たにソース修正したり、pluginを追加したりはしていないはずですが、定かではないです。

どのようなことが原因として考えられますでしょうか?どなたか教えて下さい。よろしくお願い申し上げます。

環境は以下のとおりです。

  • turboLinux
  • Apache 1.3.19
  • ActivePerl5.00503
  • FreeStyleWiki3.6.2
  • 各種ブラウザの挙動を確かめられてみては。 で、いちどとりあえずcookie削除をしてみる。- 名無しさん (2008年05月17日 09時01分40秒)
  • 私も以前同じ経験をしました。私の場合、原因はサーバのクロックが大きく狂っていたことでした。サーバの時間設定を調べてみてはいかがでしょう? - zoo (2008年05月19日 08時36分56秒)
  • 返事が遅れましたが、zooさんのご指摘どおりサーバの時計が20分ほど狂ってました。これを直したら元通りになりました。どうもありがとうございました。 - ゆう (2008年05月21日 12時15分22秒)
お名前: コメント:

ログ・キャッシュファイルの設定 - 名無しさん (2008年05月05日 12時09分11秒)

管理人でログイン後設定の画面でアクセスログ・添付ファイルのログの容量が多くなりすぎてすぐ容量がいっぱいになってしまいます。

どこかの設定で上限などを変更できる所はありますか?わかる方がいましたら教えてください。よろしくお願いします。

  • BugTrack-plugin/220とかBugTrack-plugin/222とかは? - 名無しさん (2008年05月05日 14時35分36秒)
  • 質問者ではありませんが同様の問題で悩んでいました。ありがとうございます。 - 名無しさん (2008年05月08日 02時25分00秒)
  • 添付ファイルのログについては、たとえばBugTrack-plugin/222と同じような修正をplugin/attach/AttachHandler.pmに行う必要があります。 - 名無しさん (2008年05月09日 13時41分57秒)
お名前: コメント:

左右別々のスクロール - 名無しさん (2008年04月19日 05時23分45秒)

メニューバーで下の方へスクロールしてリンクを開いた時、新しいページが右の本文に表示されますが、この時メニューバーの方の位置が一番上まで戻ってしまいます。(おそらくデフォルト動作だと思いますが)

この動作を切り離して、メニューバーの下の方でクリックした時でも、メニューバーの位置は固定させて、本文(右側)の部分のみ新ページを表示させるにはどうしたらよろしいでしょうか?

  • フレーム使うのが手っ取り早いんじゃないかな。Menuページの名前を変えて左のフレームに表示すればいい。ああでもメニューページに<BASE TARGET="右のフレーム名">を入れとく必要が。 - 名無しさん (2008年04月20日 02時42分42秒)
お名前: コメント:

メニューバーとrolloutプラグイン - 名無しさん (2008年04月16日 16時39分44秒)

メニューバーにrolloutプラグインを使いたいのですが、たまに開かないことがあって困ってます。本文の方にrolloutを使っている場合は、メニューバーのrolloutも開くのですが、本文にrolloutを使っていないページではメニューバーのrolloutが開かない状況になっています。あと、あまり関係ないと思うのですが open.pngやclose.pngのイメージが取得できていませんでした。

導入するにあたりBugTrack-plugin/203の複数行プラグインをWikiのHomeディレクトリにuploadしました。BugTrack-plugin/286にある最新のプラグインとテンプレートをサーバーのWikiのHomeディレクトリにuploadしました。wikiのプラグイン設定でチェックしたあと、メニューバーの編集をしました。メニューバーにはシンプルにrolloutしか書いていません。画像がでなかったので、画像ファイルの権限を755にしました。でも画像は取得できていません。なにか設定漏れがあるのでしょうか?

  • 確かに、Menuページにだけ rollout が存在する場合に動作しませんね。 roll というのもありますので、そちらは大丈夫だと思いますよ。rolloutではHEADタグ内にjavascriptを挿入しているのですが、HEADタグ内へ挿入されるのは Menu を生成する前なのです(FSWikiの仕様)。その為、Menu ページにだけ rollout がある場合に動作しなくなります。この辺りは何とか改善したいところですね。roll と同じ方法にテンプレートを修正すれば直ると思いますが・・・その内やってみますね。 - KG (2008年04月16日 22時12分40秒)
  • 画像が表示されない件はアクセス権限が問題ではないでしょうか?画像への直URL( http://hostname/fswiki/layout/rollout/open.png ) という具合に入力して画像が参照できるかどうか確認してみてください。 - KG (2008年04月16日 22時16分13秒)
  • 回答ありがとうございます。思ったより複雑そうですね。書き忘れましたが roll とregion は問題なく動作しました。 - 名無しさん (2008年04月17日 17時51分15秒)
  • 画像の方は直リンはHTTP403エラーが出ています。権限変更してもアクセスできないのはサーバーの設定あたりが悪い気がしてきました。 - 名無しさん (2008年04月17日 17時53分08秒)
お名前: コメント:

Woot, I will cterinaly put this to good use!

携帯での表示の際にフォントサイズを小さくしたい。 - へたれ (2008年04月07日 16時27分25秒)

携帯で自分のWikiを表示した際に、表示できる文字数が少ないので、何だか読みにくく感じています。フォントサイズを小さくして、一画面に表示できる文字数を増やしたいと思っているのですが、どのような方法がありますか?自分で試したのは以下の二点ですが、どちらもうまくいきませんでした。どなたかお知恵を貸してください。

  • 実験的にtmplファイルのbody部分にfontタグを入れてみたんですが、部分的にしか適用されていないようでした。
  • 「ユーザー定義スタイル」で設定する実験もしてみたのですが、基本的にCSSがわかっていないので、全然うまくいきませんでした。
お名前: コメント:

FSWiki 高速化提案 - ぐうます (2008年04月05日 18時36分33秒)

FSWiki の高速化について、下記の通り提案致します。

前置き:Wiki ページ数の増加に伴って実行時間が長くなる処理:Wiki::get_page_list()

Wiki::get_page_list() は、FSWiki に存在する Wiki ページ名をリストで返す処理です。したがって、その FSWiki に存在するページ数が多くなると、それに比例して処理時間が長くなります。これを使用している処理としては下記リストのような箇所になりますが、毎回のページ表示にかかわる処理(下記 1 は必ず、そして Menu 等で使われる場合の下記 12 {{recentdays}}プラグインなど)もありますので、たった 1 ページの表示についても Wiki ページ数の影響を受けることになり、サイト規模の増大に伴うページ表示時間の増加が懸念されます。

  1. wiki.cgi
    • template に対して、存在する全ページ名について template 変数 EXIST_PAGE_(ページ名) を定義する処理。
  1. lib/Wiki/Keyword.pm
    • ページ名のオートリンク処理。
  1. plugin/admin/AdminPageHandler.pm
    • 管理メニュー/ページ管理のページ名一覧の表示。
  1. plugin/bbs/BBS2Handler.pm
    • BBS の新規投稿記事のページ番号を決める処理。
  1. plugin/bbs/BBS2List.pm
    • BBS での記事一覧の表示。
  1. plugin/bugtrack/BugList.pm
    • バグレポート一覧の表示。
  1. plugin/bugtrack/BugTrackHandler.pm
    • 新規バグレポートのページ番号を決める処理。
  1. plugin/calendar/CalendarHandler.pm
    • カレンダーでの最新x件の表示処理。
  1. plugin/category/CategoryCache.pm
    • カテゴリキャッシュの作成・更新処理。
  1. plugin/core/ListPage.pm
    • ページ一覧の表示。
  1. plugin/recent/Recent.pm
    • 最近更新されたページの一覧表示。
  1. plugin/recent/RecentDays.pm
    • 最近更新されたページの日付ごとの一覧表示。
  1. plugin/rss/RSSMaker.pm
    • RSS の作成処理。
  1. plugin/rss/RSSMaker10.pm
    • RSS の作成処理。
  1. plugin/search/SearchHandler.pm
    • Wiki ページ検索処理。

検討

Wiki ページ数が増えてもページ表示が遅くならないようにするには、次の 2 つの方向性が考えられます。

そこでここでは上記リストの 1 の処理について、Wiki::get_page_list() を代替処理に置き換えることを考えてみました。

リストの 1 に挙げた template 変数 EXIST_PAGE_(ページ名) を定義する処理をみると、「存在する全ページ名のリストを取得し、その中で閲覧可能なページについて EXIST_PAGE_(ページ名) を定義する」という内容になっています。しかしながらここで必要なのは、「テンプレート上で参照されている各 EXIST_PAGE_(ページ名) について、該当するページが閲覧可能な場合には EXIST_PAGE_(ページ名) を定義すること」です。したがって、全ページについて EXIST_PAGE_(ページ名) を定義する必要は無く、テンプレートが参照している template 変数を知る方法があれば、Wiki::get_page_list() を使用せずに済みます。

改善案

wiki.cgi の中で template 変数を定義するために使用されている HTML::Template::param() メソッドは、引数を与えずに使用すると、そのテンプレートが参照している template 変数名の一覧をリストで返してくれます。この機能を用いることにより、wiki.cgi での EXIST_PAGE_(ページ名) の定義処理を次のように書き換えることができます。

--- ../wiki3.6.3dev3orig/wiki.cgi	Mon Dec 31 12:05:29 2007
+++ wiki.cgi	Sat Apr  5 15:47:26 2008
@@ -266,10 +266,11 @@
 		
 		# ページ名をEXIST_PAGE_ページ名というパラメータにセット
 		# ただし、スラッシュを含むページ名はセットしない
-		my @pagelist = $wiki->get_page_list();
-		foreach my $page (@pagelist){
-			if(index($page,"/")==-1 && $wiki->can_show($page)){
-				$template->param("EXIST_PAGE_".$page=>1);
+		foreach my $param ($template->param()) {
+			next if (substr($param, 0, 11) ne 'EXIST_PAGE_');
+			my $page = substr($param, 11);	
+			if($page ne '' && index($page,"/")==-1 && $wiki->can_show($page)){
+				$template->param($param=>1);
 			}
 		}
 		

この変更(パッチ wiki.cgi.patch(1065))により、毎回のページ表示時に実行する Wiki::get_page_list() を 1 つ減らすことができました。

適用可能な FreeStyle Wiki バージョン

FreeStyle Wiki 3.5.0 を含む、それ以降の全バージョン(それ以前は、SourceForge の CVS リポジトリに入っていないので不明)。

備考

本提案による変更は、プラグインからのオーバーライドができない(ですよね?) wiki.cgi に対するものでありますので、可能であれば今後の版でご採用いただきたいという主旨でここに提案させていただきました。

  • 良いですね。僕はfswikiをMLのアーカイブ閲覧用に使いたいと思っているのですが、現状のスケーラビリティでは30000ページぐらいあると動かないのではないかと思います。高速化に期待しています。 - matto (2008年06月10日 23時15分09秒)
  • 少なくとも何度も読み込まない様にして欲しいですね。 - suzukimitsuru (2008年06月10日 23時53分32秒)
  • 最近のバージョンではget_page_list()はインデックスファイルを読むようになっているので以前と比べると相当速くなっていると思います(毎回インデックスファイルを読み込むのは確かに無駄ですが)。実際この対応でどのくらい性能が向上するのかベンチマークなどがあると参考になるのですが…。高速化については以前から取り組んでいて、インデックスファイルを作ったり、1回のリクエストで複数回使うような値についてはメモリ上にキャッシュするなどあれこれ工夫をしています。なので、Storageクラスを作りかえるくらいの改造をしないと今後劇的に高速化するのはちょっと難しいかなぁと思っています。 - たけぞう (2008年06月11日 00時30分01秒)
お名前: コメント:

[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 ]

最終更新時間:2011年08月03日 23時16分46秒