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

サポート掲示板

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

FSWikiサポート掲示板

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

編集中に時間がかかると消えてしまう - あきら (2008年11月17日 21時09分43秒)

ページの編集に時間をかけていると、保存する前に自動的に更新されてしまって、結局、それまで書いていたものが保存されずに消えてしまいます。どのようにすればこれを解決できますか? よろしくお願いいたします。

  • おそらく「気をつける」が最善の手じゃないでしょうか・・・ ヒント程度に、ブラウザに寄るかもしれませんが基本的に「戻る」で編集画面に戻ると、編集内容も戻ってきます(とりあえず愛用の火狐はできます)。そのあと何度書き込みしても更新できませんので、編集内容を丸ごとコピー(場合によってはテキストファイルなどにペーストまで)して、一度編集したいページに戻って再度「編集」から編集画面に行き、ソースをごっそり入れ替えでどうでしょうか。 - とおりすがり (2008年11月19日 09時09分26秒)
  • 「AreaEditor」というソフトが便利かも。 - 7743 (2008年11月19日 13時36分15秒)
  • [ログインメニュー]->[環境設定]->[セッションタイムアウト]を設定できます。あとは BugTrack-plugin/69 というのもありますよ。ご自身が管理者でなければ管理者に確認してください。という意味でよかったでしょうか? - kta (2008年11月21日 01時19分35秒)
  • サーバーの時間が大幅に狂っていることもあるかも。タイムアウトのエラーとして詳細がでてくると有難いような。この問題で悩みたくないものですねぇ。 - 名無しさん (2008年11月21日 19時10分37秒)
  • みなさん、ありがとうございました。その後いろいろと試してみたのですが、同じような現象は現れません。もう少し様子を見てみます。 - あきら (2008年11月26日 22時24分35秒)
お名前: コメント:

整形済テキストの文字色について - コツ (2008年11月11日 12時25分37秒)

行頭をスペースorタブにて整形済テキストとした場合、整形済テキストの文字色を変える方法はありますでしょうか?同一テキスト内で2色以上使えると良いのですが。ご教授のほど宜しくお願いいたします。

  • 補足です。整形済みテキスト内の特定の文字列の色を変更したいという趣旨になります。 - コツ (2008年11月11日 14時42分32秒)
  • テーブルにまとめるのがひとつの答えかもしれません。 - 名無しさん (2008年11月12日 09時25分42秒)
お名前: コメント:

ファイル添付時のInternal Server Errorについて - T (2008年11月06日 18時07分23秒)

第三者が管理しているサーバにFSWikiを設置しました。ページの作成,編集等は普通に行えるのですが、ファイル添付をしようとすると、必ず「500 Internal Server Error」になってしまい、困っています。FSWikiを設置したサーバは通常CGIを許可しておらず、CGIを使用するためには、設置対象ディレクトリに.htaccessを置き、明示的にCGIの使用を許可する必要があります。

.htaccessには

Options ExecCGI
AddType application/x-httpd-cgi .cgi

の2行のみ記載しています。

ファイル添付を実施しようとした際に表示されるエラーは以下の通りです。

The server encountered an internal error or misconfiguration and was unable to complete your request.Please contact the server administrator, admin@XXX.XXX.XX and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apacheのエラーログを確認したいところですが、参照できる権限を与えてもらえていないためそれも叶わず....。

何か設定が悪いのか、どなたかご教授いただけると幸いです。よろしくお願い致します。

  • docs:readme にある通りに、attach ディレクトリが作成されていていますか? また、パーミッションは合っていますか? - 名無しさん (2008年11月06日 18時22分59秒)
  • はい。attachディレクトリも作成してありますし、パーミッションも707になっています。 - T (2008年11月06日 18時59分16秒)
  • 確認できていることは先に書きましょう。その他、確認できていることはありませんか? - 名無しさん (2008年11月06日 20時45分34秒)
  • wiki.cgi の最初の方にある、
#use CGI::Carp qw(fatalsToBrowser);

use CGI::Carp qw(fatalsToBrowser);

に変更すると、エラーメッセージが変わったりしませんか? - 名無し (2008年11月07日 11時52分53秒)

  • 上記変更を実施してみたところ、エラーが「ページを表示できません 検索中のページには問題があるため表示できません。」というHTTP 500 - 内部サーバー エラー に変わりました。 - T (2008年11月07日 14時53分02秒)
  • 参考までに FSWiki のバージョン, Perl のバージョンを教えてください。また、FSWiki初期設置用CGI は既に試されていますでしょうか? - 名無し (2008年11月07日 16時53分43秒)
  • FSWikiのバージョンが3.8.2で、Perlのバージョンが5.8 です。 - T (2008年11月10日 15時59分06秒)
  • attachディレクトリのパーミッションを707以外(777等)で試してみましたか? - 名無しさん (2008年11月22日 00時14分37秒)
お名前: コメント:

添付ファイルの表示 - 超初者 (2008年10月31日 15時19分07秒)

添付ファイルをダウンロード数(ref)をつけないで表示出来る方法を教えて下さい。また、添付ファイル名ではなくタイトルで表示は出来ませんか?

<イメージ>ページ内で「報告書」と表示されている所をクリックすると、添付(attach)した「報告書2008.xls」にリンクする。

  • こちらを見ると、ダウンロード数は表示されちゃいますが、別名指定はできるみたいですね。 - 名無しさん (2008年10月31日 17時59分59秒)
{{ref test.txt,SandBox,テストのファイル}}
  • ファイルが存在しません。 - 名無しさん (2008年10月31日 18時00分57秒)
  • 手っ取り早く,attach内のRef.pmを改造する? - 泰司 (2008年11月19日 11時08分34秒)
  • そうですね。すでに別名指定はできてるので、ダウンロード数を表示しないようにしてしまえばいいだけですね。 - 名無しさん (2008年11月19日 13時03分54秒)
  • 削除依頼 間違ってUPしてしまいました。Ref.pmは,誤りです。お手数かけますが,削除してください。 - 名無しさん (2009年04月25日 13時15分40秒)
  • 削除しておきました。 - たけぞう (2009年04月25日 22時37分45秒)
お名前: コメント:

大文字と小文字を含む1つの単語に対する自動リンク - るーでぃ (2008年10月20日 19時50分08秒)

大文字と小文字を含む単語(DoCoMoやInternetExplorer、FireFoxなど)に対し、自動リンクしようとしてしまいます。そのようなページを作成していないため、背景が黄色で「?」マークが付き、編集ページに飛んでしまいます。なぜこういった状況になるのかわからないのですが、FSWikiの仕様でしょうか?自動リンク機能をオフにしたくはありません。回避策があれば教えて下さい。

宜しくお願い致します。

  • 管理者メニューの環境設定のWikiNameの設定項目にて「WikiNameを使用する」を選択されている場合にそういう動作をします。「WikiNameを使用しない」にすれば解決すると思われます。 - KG (2008年10月20日 20時45分43秒)
  • WikiNameの仕様についての理解が誤っていました。変更したところ、無事直りました。ご回答ありがとうございます。 - るーでぃ (2008年10月20日 23時06分11秒)
お名前: コメント:

パート編集で - あきら (2008年10月07日 10時14分54秒)

パート編集をオンにしてあるのですが、編集をクリックしてもその部分の編集ではなく、その前のパート編集がでてしまったりします。インクルードなどを使っているのが原因なのかわかりませんが、どのような原因が考えられ、修正方法はあるでしょうか? よろしくお願いいたします。

  • いろいろな状況で再現してしまう状況をもうすこし明確にされるといいかと思います。 - 名無しさん (2008年10月07日 14時34分41秒)
  • 回答、ありがとうございました。少し試してみてまとめてみます。ちょっと待ってください。 - あきら (2008年10月09日 10時39分09秒)
  • includeを使用しているとずれる様です。うちでも発生しています。修正方法はわかりません。^^; - 名無しさん (2008年10月09日 11時34分42秒)
  • 単に include を利用するだけであればパート位置がずれることはないはずです(fswiki3.6.2/3.6.3)。他のプラグインを併用して発生するのではないでしょうか? - KG (2008年10月09日 14時00分23秒)
  • 複数行プラグインを使っていませんか?複数行プラグインのソース部分に記述した見出しはパート編集に対応していなかったと思います。複数行プラグインのパース自体、新しい機能ですので、編集パートの抽出方法を再検討しなければならないと思います。 - A_M (2008年10月09日 19時09分50秒)
  • 拙作の複数行プラグインに関しては、一応解決策は用意してあって、process_wiki()ではなく、process_outline()を利用してパースすれば大丈夫なはずです。3.6.3以降の標準実装された複数行プラグインでは get_current_parser()で取得したパーサーでパースすれば良いかと思います。 - KG (2008年10月10日 00時27分36秒)
  • ただ、なんでもかんでも上記処理にすれば良いという訳ではなく、それぞれの複数行プラグインの性質によって使い分けが必要になってきます。 - KG (2008年10月10日 00時31分38秒)
  • いろいろとやってみているのですが、使用しているプラグインは、outline3 と secret と、rolloutの中にmemoと、mediaplayer と、bbs と category と counter です。これから、いずれか消していってどうなるか試してみます。 - あきら (2008年10月12日 07時59分25秒)
  • わかりました。以下のように、
{{layout rollout,title:●●●
!!その1
!!その2
}}
!!!その3

として、その3のパート編集をクリックすると、位置がずれてしまいます。 - あきら (2008年10月12日 08時00分56秒)

  • layout プラグインのパラメータに OUTLINE を追加してみて下さい - KG (2008年10月12日 10時56分39秒)
  • KGさん、layout プラグインのパラメータに OUTLINE を追加してみて下さい ――の意味がわかりません。具体的にどうすればいいのでしょうか? よろしくお願いいたします。 - あきら (2008年10月12日 21時22分29秒)
  • 失礼、小文字の outline でした。このパラメータを使用すると、上記で説明している process_outline() を使用してブロック内のWiki書式をパースします。使用例は以下のとおり。 - KG (2008年10月12日 22時53分27秒)
{{layout rollout,title:●●●,outline
!!その1
!!その2
}}
!!!その3
  • KGさん、ありがとうございました。うまくいきました。 - あきら (2008年10月13日 22時57分10秒)
お名前: コメント:

パート編集モードについて - KU (2008年10月01日 17時34分45秒)

管理画面のほうでパート編集モードにチェックを入れましたが、見出し入れてもパート編集のリンクが表示されません。

何か他に設定するところ、もしくはパート編集にするための書式などあるのでしょうか。

以上、よろしくお願い致します。

  • BBS-サポート掲示板/552とかは参考になりますでしょうか? - ななし (2008年10月01日 18時15分17秒)
  • ななしさん、ありがとうございました。キャッシュのせいだったようで無事解決しましたm(_ _)m - KU (2008年10月02日 14時11分45秒)
お名前: コメント:

Undefined subroutine &Jcode::_Classic::euc_utf8 called at lib/Jcode/_Classic.pm line 255. - sunoko (2008年09月29日 14時04分25秒)

本日、FreeStyleWiki3.6.2 から、3.6.3 dev3 + パッチ に変更してみました。で、編集を行うと以下のエラーが表示されます。

Software Error:
Undefined subroutine &Jcode::_Classic::euc_utf8 called at lib/Jcode/_Classic.pm line 255. 

エラーページは表示されますが、実際には書き込みは終了しているようです。

同じような症状を経験された方はいらっしゃいますか?

ここの sand ページにて書き込みを行っても上記エラーは出ないので、もしかしたら私のところだけなのかもしれませんが、何かしらの解決のヒントでも頂戴できればと投稿させていただきました。

  • 申し訳ありません。自己レスです。BBS-サポート掲示板/759?と同じ現象でした。私も同様の修正にて問題が解決しました。失礼いたしました。- sunoko (2008年09月29日 14時10分51秒)
お名前: コメント:

SIZEでセル幅を広げると自動改行されてしまう - ミグ (2008年09月26日 16時33分13秒)

困っているので投稿させて頂きます。

なぜか、SIZEでセル幅を広げると文字が途中で自動改行されてしまいます。原因が全くわからないので、セル幅を広げても改行されない方法を御存知の方がいらっしゃいましたら御教授願います。

例を示します↓

,{c},{SIZE:11%},{SIZE:89%}
,,
,{TOP}解説, これは、SQL文が注入される原因を作らない実装です。{{br}} バインド機構とは、実際の値がまだ割り当てられていない記号文字(プレースホルダ)を使用してあらかじめ SQL 文の雛形を用意し、後に実際の値(バインド値)を割り当ててSQL文を完成させる、データベースの機能です。バインド値はエスケープ処理されてプレースホルダにはめ込まれるため、利用者に入力された悪意あるSQL文の実行を防ぐことができます。SQL分の実行方式として、SQLのプリペアドステートメント(準備された文)を使用する場合には、結果的にバインド機構を利用することになるので、この脆弱性を防止できます。また、何らかの理由でプリペアドステートメントを使用しない場合でも、プレースホルダによるバインド機構をAPIとして提供している処理系もあるので、その場合はそれを利用します。

↑このように記述すると途中で改行されてしまいます。

  • 試してみましたが、{{br}}プラグインのところでは改行されますけど、それ以外では途中で自動改行されることはないですねぇ。サイト/スタイルは default でもそうなりますか? - KG (2008年09月26日 23時09分18秒)
お名前: コメント:

FSwikiの設置ができない2 - TK (2008年09月23日 00時14分29秒)

tok2無料版は、かなり実績のあるサーバーのようです。
設置できない理由は、おそらくパーミッションの設定の問題だと 思っています。
そこで、やったことないPerlでなんとかtok2用の自動パーミッション設定を作れないかと思い、作ってみたつもりでしたが動作はしませんでした。
http://www42.tok2.com/home/quizlicense/fswiki/per_tok2.cgi.txt (EUC)
参考までにtok2用checker.cgi
http://www42.tok2.com/home/quizlicense/fswiki/tokcheck.cgi.txt (EUC)

突っ込みどころも多いかと思われますが、よろしくお願いします。

  • 2年ほど前に当方もtok2にFSwikiを設置しました。しばらくは問題なく運用できていたのですが、ある日突然「CGI負荷が高いため」との理由で動作停止にさせられました・・・。これはtok2の無料版もtok2.proの有料板も同じです。ただ、MySQLなどを使用するXOOPSなどは問題なく運用できていますので細かいことは不明です。 - 名無しさん (2008年09月23日 10時40分56秒)
  • なお、設置できたとしても、ここのどこかにも書いてありましたがクッキーの処理等がtok2はちょっと違うので、そのままだとログインできなかったはずです。パーミッションはFSwikiに推奨値(tok2の推奨とは違いますが)で問題なかったはずです。いまではどうなんでしょう? - 名無しさん (2008年09月23日 10時42分49秒)
お名前: コメント:

FSwikiの設置ができない   - TK (2008年09月19日 08時02分56秒)

はじめまして、掲示板のCGIレベルなら設置の経験のあるものです。fresesytle wiki 3-6-2をFSWiki初期設置CGIsetup_rev03.zip(360)を用いて、無料レンタルサーバーに設置してみましたが、うまくいきません。

◇iswebベーシック(無料:但し***.at.infoseek.jpに移行前から使用)
perl version: 5.006002 (5.6.2)
# Error:セットアップファイル(./setup.dat)に指定のtheme_uriの指定(./theme)に誤りがあります。

◇aaacafe
perl version: 5.008007 (5.8.7)
# Error:ご利用のサーバ環境では LWP::Simple モジュール内の get メソッドが利用できません。
# セットアップファイル(./setup.dat)に指定のtheme_uriの指定(./theme)の確認ができません。

◇@Pages
perl version: 5.008008 (5.8.8)
# Error:ご利用のサーバ環境では LWP::Simple モジュール内の get メソッドが利用できません。
# セットアップファイル(./setup.dat)に指定のtheme_uriの指定(./theme)の確認ができません。

◇my-sw.net:http://www.my-sv.net/
perl version: 5.008005 (5.8.5)
# Error:ご利用のサーバ環境では LWP::Simple モジュール内の get メソッドが利用できません。
# セットアップファイル(./setup.dat)に指定のtheme_uriの指定(./theme)の確認ができません。

◇e-fpage:http://www.e-fpage.com/
perl version: 5.008008 (5.8.8)
# Error:セットアップファイル(./setup.dat)に指定のtheme_uriの指定(./theme)に誤りがあります。

どの上記サイトでも、下記の結果が出ます。

・tok2用のcheck.cgiの結果

[wiki.cgi:22:die]
「Wiki.pm」が見つかりません in @INC (@INC contains: ./lib /usr/local/perl-5.8.8/lib/5.8.8/i386-freebsd /usr/local/perl-5.8.8/lib/5.8.8 /usr/local/perl-5.8.8/lib/site_perl/5.8.8/i386-freebsd /usr/local/perl-5.8.8/lib/site_perl/5.8.8 /usr/local/perl-5.8.8/lib/site_perl .) 『wiki.cgi』の行:22.
BEGIN failed--compilation aborted 『wiki.cgi』の行:22.
  • 設置場所は、/fswiki/というフォルダを設けて、そこに入れています。 - TK (2008年09月19日 08時03分46秒)
  • 改行が反映されていない(;; - TK (2008年09月19日 08時06分13秒)
  • 初期設置用CGI - ちょっと通りますよ
  • 無料版の制約があったりの対処がいるかもしれなかったり。まず文面のsetup.datの問題からひとつづつでしょうか。# 設置したサーバ は 外から見たルートになってますか? ./theme の部分は ../fswiki/theme がよさそうな気がします。- 名無しさん (2008年09月19日 13時06分46秒)
  • エラーメッセージが読みにくかったので、勝手ながら{{pre }}でくくってみました。theme_uri は URI ですから、http://hogehoge.com/fswiki/theme とかにしてみてもよいかもしれませんね。 - 菜梨 (2008年09月19日 19時22分47秒)
  • あと、話はそれますが、今から設置するなら、せめて 3.6.3dev3 にしといた方がよいかも。3.6.2 にあるたくさんの不具合が改善されていますし、本サイト fswiki.org を見てもお分かりの通り、開発版とはいえ十分安定しています。 - 菜梨 (2008年09月19日 19時26分24秒)
  • /theme.urlはおっしゃるとおりにしたら、解決したようです。 - TK (2008年09月23日 00時06分05秒)
  • 「tok2用のcheck.cgiの結果」を単純に読むと、「lib/Wiki.pmというファイルが存在しない」と読めるのですが、実際にはどうなっていますか? - 菜梨 (2008年09月23日 01時27分12秒)
  • デフォルトのままです。だから/lib直下に存在します。 それと、「/home/menber/あなたの〜/」の意味はよくわかっていません。CGIが直接参照するアドレスはurlとは別だということでしょうか? - TK (2008年09月23日 18時14分51秒)
  • Freestyle wiki liteというものを発見し、試したところ、こちらの設置&動作は確認できました。 - TK (2008年09月23日 21時30分40秒)
  •  解決の糸口: そういえばFTPの設定で、ファイル名などをすべて小文字にするようにしていました。Windowsはアプリによって勝手に大文字小文字を変えられてしまうため。 - TK (2008年09月24日 07時51分07秒)
お名前: コメント:

すべてのページにアウトラインなどのプラグインを - あきら (2008年09月11日 08時43分07秒)

大体ほとんどのページに以下のようなソースを入れています。

{{outline3}}
{{b_secret
{{layout rollout,title:メモ
{{memo}}
}}
}}

新しく作るページもこれをコピペしているのですが、なんとかして、コピペしないでも、テンプレートのようにしておけないでしょうか?

  • {{outline}}についてはHeaderというページを作ってそこに書いておくとよいでしょう。 - 菜梨 (2008年09月11日 08時55分25秒)
  • なるほど、そういう方法があるのですね。メモについてはどうでしょう? ヘッダーに書いたら、おそらくすべてのページで共通のメモということになりますよね? - あきら (2008年09月11日 08時58分51秒)
  • テンプレートについては、BBS-サポート掲示板/675参照。 - 菜梨 (2008年09月11日 09時01分39秒)
  • 再度、ありがとうございます。テンプレートというのはページの色とかだと思っていました。さっそく試してみます。 - あきら (2008年09月11日 09時14分27秒)
  • テンプレートのやりかたがわかりません。sitestyle Wikiの表示を任意のテンプレート/スタイルを使用して表示します。を使うということなのでしょうか? - あきら (2008年09月11日 10時10分10秒)
  • テンプレートは、追加プラグインを必要としない FSWiki 本体の機能で、使い方は下記の通りです。(sitestyle は全く別の機能だと思います。) - 菜梨 (2008年09月11日 10時42分04秒)
    1. まず準備として「Template/大体ほとんどのページ」という名前のページを新規作成し、大体ほとんどのページに書き込む内容を記述しておく。
    2. 新規ページを作成する際、ページ名を入力して編集画面に移ると、「Template/*」というページが存在する場合にはテンプレートメニューからそれを選べるようになるので、1.で作成した「Template/大体ほとんどのページ」を選び、「読込み」ボタンを押す。
    3. すると、「Template/大体ほとんどのページ」の内容が新規ページ編集のテキストボックスにコピーされる。
  • なるほどそういうことだったのですね。てっきりFTPでソースを書いたファイルをアップロードするのだと思い込んでいました。おかげさまで、これからページを作るのがかなり楽になりますし、統一性もとれてきて、ありがたいです。 - あきら (2008年09月11日 11時11分32秒)
お名前: コメント:

Login 不具合事例:mod_rewrite 等による URL 書き換え併用時の cookie path 異常 - ぐうます (2008年09月10日 18時27分29秒)

概要

FSWiki において、mod_rewrite に代表される URL 書き換えを併用して運用する場合、生成されるクッキーの cookie path が異常となるため、Login 不具合(Session 継続不具合)が発生することがあるようです。

不具合事例

筆者は自サイトにて、mod_rewrite による URL 書き換えを併用して FSWiki を 2 年ほど運用してきましたが、週に 1 回程度の発生率で「Login に成功したにもかかわらず、ユーザ以上の権限でのみ閲覧可能なページについて『参照権限がありません』というエラーにより閲覧ができない」という問題が起きていました。たまにしか起きない問題であるため、原因がなかなか分からなかったのですが、調査の結果、どうやら mod_rewrite 併用時にはクッキーに付加する cookie path の値に問題があることが分かりました。そして、cookie path 生成部に修正を加えることにより、不具合が起きなくなることを確認しました(確認期間:1 ヶ月)。

Session の継続とクッキー

FSWiki の Session 管理は、概ね次のようにして行われます。

FSWiki の Session 管理概要

  1. Login が行われると、それにより開始された Session の情報(ログイン中のユーザ名など)は、FSWiki が動作する Web サーバ上に Session 情報ファイル (./log/cgisess_xxxxxx) として保存されます。
  2. FSWiki は、クライアントの Web ブラウザに対して、"CGISESSID" という名前のクッキーを送信し、Web ブラウザはこれを保存します。
  3. Web ブラウザは、あるページを閲覧しようとするとき、そのページの URL と前方一致するような cookie path をもつクッキーの値を Web サーバに送信します。このため、ログイン中のクライアントが FSWiki のページを閲覧しようとするとき、"CGISESSID" クッキーの値が Web サーバに送られます。
  4. FSWiki は、受け取った "CGISESSID" クッキーの値を基にして、継続中の Session に対応する Session 情報ファイル (./log/cgisess_xxxxxx; xxxxxx は "CGISESSID" クッキーの値) を特定することができ、ファイルの内容からどのような権限による閲覧なのかを知ることが出来ます。
  5. FSWiki は、得られた閲覧権限に基づいてリクエストされたページの html を生成してクライアントに返送するとともに、"CGISESSID" クッキーをクライアントに対して再度送信することにより、Session の有効期限を更新します。

以上のことから、"CGISESSID" クッキーに付加される cookie path とは、「その Session が有効となるページ URL 範囲」を意味することになります。FSWiki の Login は farm 単位で行われますので、ある 1 つの Session は、少なくともそれを開始した farm 内の全ページで有効となるべきです。これを実現するための最もシンプルな方法は、「Session を開始した farm 内の全てのページ URL に前方一致するような unique な値となるように cookie path の値を生成すること」です。

(注:本ページ内では、便宜上、root wiki の下にぶら下がる狭義の farm に加え、root wiki 自身も含めて "farm" と記述することにします。)

サブルーチン Util::cookie_path() の動作:mod_rewrite を使用しない、通常の FSWiki の場合

FSWiki においてクッキーを作成する際、cookie path は サブルーチン Util::cookie_path() を用いて生成されます。そのソースを下記に示します。

#===============================================================================
# <p>
#   Cookieのpathに指定する文字列を取得します。
# </p>
# <pre>
# $path = Util::cookie_path($wiki);
# </pre>
#===============================================================================
sub cookie_path {
  my $wiki = shift;
  my $script_name = quotemeta($wiki->config('script_name'));
  my $path = $ENV{'REQUEST_URI'};
  $path =~ s/\?.*//;
  $path =~ s/$script_name$//;
  return $path;
}

このサブルーチンの動作の概要は、次の通りです。

  1. 環境変数 "REQUEST_URI" の値(=「リクエストされた URL」からサーバ名を除いた文字列)を取得し、
  2. その値からクエリ文字列("http://example.jp/wiki.cgi?page=Page1" の "?" 以降の部分)を除去し、
  3. その値の末尾に $script_name に等しい部分があればそれを除去した値を cookie path として返却する。

具体例をいくつか示しますと、次のようになります。

Web ブラウザから要求された URL が "http://example.jp/wiki.cgi?page=Page1" の場合
項目
REQUEST_URI /wiki.cgi?page=Page1
script_name wiki.cgi
cookie path /

Web ブラウザから要求された URL が "http://example.jp/wiki.cgi/farm1?page=Page1" の場合
項目
REQUEST_URI /wiki.cgi/farm1?page=Page1
script_name farm1
cookie path /wiki.cgi/

Web ブラウザから要求された URL が "http://example.jp/wiki.cgi/farm1/farm2?page=Page1" の場合
項目
REQUEST_URI /wiki.cgi/farm1/farm2?page=Page1
script_name farm2
cookie path /wiki.cgi/farm1/

以上の例から明らかなように、mod_rewrite を使用しない通常の FSWiki として運用する場合の URL であるならば、生成される cookie path は、親 farm 内のページの URL には前方一致せず、その farm 内の全ページの URL には前方一致する、その farm 内で unique な値 になるため、ログインした同一 farm 内で『参照権限がない』エラーが発生することはありません。

サブルーチン Util::cookie_path() の動作:mod_rewrite を使用する場合

次に、mod_rewrite を使用する場合について考えてみます。例えば、BugTrack-plugin/350 での mod_rewrite 設定

RewriteRule ^/$ /wiki.cgi [L,NE,P,QSA]
RewriteRule ^/(.+)\.html$ /wiki.cgi?page=$1 [L,NE,P,QSA]

を用いたとすると、サブルーチン Util::cookie_path() の動作例は次のようになります。

Web ブラウザから要求された URL が "http://example.jp/Page1.html" の場合
項目
REQUEST_URI /Page1.html
script_name wiki.cgi
cookie path /Page1.html

この例から分かるように、生成される cookie path がそのページ固有の値となるので farm 内で unique な値になりません。このため、cookie path が異なる複数の "CGISESSID" クッキーが Web ブラウザに対して生成されるため、Session の継続に関する Web ブラウザと FSWiki との間の情報のやりとりがおかしくなってしまうようです。

対策の検討

mod_rewrite を使用しない場合と同様に、mod_rewrite を使用した場合でも、「1 つの farm 内では必ず unique な値となるように cookie path の値を生成すること」ができれば、本件は解決できそうです。上記した mod_rewrite 使用時の cookie path の例で何が問題かを考えると、「ページ名の部分が cookie path から除去できていないために、cookie path が各ページ毎に異なること」です。よって、cookie path からページ名の部分を除去するコードを追加することとし、次のような対策案としました。

対策案:(行頭 '+' が追加行, 行頭 '-' が削除行)

 sub cookie_path {
   my $wiki = shift;
   my $script_name = quotemeta($wiki->config('script_name'));
   my $path = $ENV{'REQUEST_URI'};
   $path =~ s/\?.*//;
-  $path =~ s/$script_name$//;
+  $path =~ s/[^\/]+$//;     # 末尾に '/' 以外の文字があれば除去する。
   return $path;
 }

なお、オリジナルのコードにある、末尾の $script_name を除去するコード

$path =~ s/$script_name$//;

は、対策案で追加した

$path =~ s/[^\/]+$//;     # 末尾に '/' 以外の文字があれば除去する。

で代用することができるので削除しました。以上より、オリジナルの FSWiki の動作に影響を与えることなく対策できることになります。

この対策を施した状態での mod_rewrite 使用時のサブルーチン Util::cookie_path() の動作例は次のようになります。

Web ブラウザから要求された URL が "http://example.jp/Page1.html" の場合 (対策後)
項目
REQUEST_URI /Page1.html
script_name wiki.cgi
cookie path /

よってこの対策により、mod_rewrite を使用しないときと同様に cookie path が正しく生成されるようになります。

制限事項

mod_rewrite の設定が複雑である次の例のような場合、上記対策案では問題が解決できません。

対策できない例:次のような 2 つの URL が、mod_rewrite により同一 farm 内のページ URL に書き換えられるような運用の場合、cookie path が farm 内で unique にならないため問題が解決できません。

  • http://example.jp/Page1.html → cookie path = /
  • http://example.jp/dir1/Page2.html → cookie path = /dir1/

このような運用では、各 farm 毎に手動で設定した値を cookie path として使用するなどの対策が必要になります。そのためには、管理者メニューから各 farm 毎に cookie path を手動で設定するインターフェースを準備する必要があるため、本ページでは検討外と致します。

patch

対策案の patch

--- ../wiki3.6.3dev3orig/lib/Util.pm	Mon Dec 31 12:05:37 2007
+++ lib/Util.pm	Wed Sep 10 17:27:53 2008
@@ -64,11 +64,9 @@
 # </pre>
 #===============================================================================
 sub cookie_path {
-	my $wiki = shift;
-	my $script_name = quotemeta($wiki->config('script_name'));
 	my $path = $ENV{'REQUEST_URI'};
 	$path =~ s/\?.*//;
-	$path =~ s/$script_name$//;
+	$path =~ s/[^\/]+$//;     # 末尾に '/' 以外の文字があれば除去する。
 	return $path;
 }
 

Util.pm.20080910.patch(469) として添付致します。本 patch は、FSWiki 3.6.3dev3 の lib/Util.pm に対して作成したものですが、変更箇所である lib/Util.pm の cookie_path() が FSWiki 3.5.7 以降変更がないので、内容的には FSWiki 3.5.7 以降に対しては適用可能と思われます。なお、本 patch では、対策によって使用しなくなった $script_name, 及び $wiki の処理も削除しています。これに伴い、本来であれば cookie_path() の呼び出し側でも引数 $wiki を与えなくてよくなるのですが、変更しなくても動作に支障がないこと、及び、上記制限事項で述べた cookie path の手動設定機能をもし実装することになったら再度復活することになると思いますので、呼び出し側についての変更は本 patch では実施していません。

まとめ

mod_rewrite 使用時に cookie path が異常になること、そしてその対策案を示しました。この対策案により、自サイトでは「Login しているのに『参照権限がない』エラーが発生する」不具合が解消しました。

お願い

もし、本件と同様に mod_rewrite 等を併用した運用にて Session 継続不具合が発生している方がいらっしゃいましたら、本対策案を試していただき、成否をご報告いただきたく、よろしくお願い致します。(理由:上記の検討内容が、筆者自サイトのあるレンタルサーバ固有の設定等に依存した内容になっておらず、広く一般に適用できる対策であることを確認するため。もしこれが一般的な対策であることが確認できたならば、BugTrack-plugin/350 へのマージ等を視野に入れることができます。)

お名前: コメント:

Javascriptについて - ミグ (2008年09月05日 11時02分17秒)

単純な質問で申し訳ないんですが、FsWikiでJavascriptを使いたいのです。そのようなプラグインあるいは文法があれば御教授願いたいです。

  • include_html ここにJavascriptを書くだけでおk include_htmlで検索- 名無しさん (2008年09月05日 13時14分49秒)
  • ありがとうございました。できました。 - ミグ (2008年09月16日 17時14分49秒)
お名前: コメント:

表の中で、カンマ","を使いたいのですが。 - piyopiyo (2008年08月28日 13時23分11秒)

バージョン3.6.2を使用しています。表を作ろうとしています。これには、","区切りで要素を並べて作ることができました。その中で、要素の中で","を使いたいという要望があります(理由は後述)。そうすると、要素の中の","が、表の区切りの","とみなされて、表が崩れます。

理由:かなり大きな表です。縦の列の要素に、?番号、?日本語のタイトル、?PDFのファイル名(英数のみ)へのリンク,?日付、等があります。今はこれら全てを記述していますが、?と?は情報としては重複しています。一番スマートな方法は、日本語のタイトルをクリックすると、PDFファイルを開く等の操作ができればいいです。普通に表でないところなら、『{{ref 080828.pdf,2008年8月,8月28日資料}}』とすればよいのですが、表の要素としてこれを使うと、表の要素の区切りを表す","と混同してしまい、不可能です。

これを回避する手段はありますでしょうか?

  • 『ファイルが存在しません』の部分は、refを使った別名の書き方を書いています。まさか、こんなことになろうとは…。 - piyopiyo (2008年08月28日 13時25分24秒)
  • BBS-雑談掲示板/143 BBS-サポート掲示板/824 - 名無しさん (2008年08月28日 13時54分42秒)
  • お世話になりっぱなしですので、FAQのようなものでお返しもいいかもしれない。http://www.kokodayo.net/wiki/index.xcg/fswikiFAQ - 自称サポーター (2008年08月28日 15時06分00秒)
  • コメントありがとうございます。ダブルクォーテーションで囲む方法で、表の中でカンマを使うことはできました。が、文字の打ち消し線(==記号)とかが、そのまま表示されてしまいます。両立は難しいということでしょうか? - piyopiyo (2008年08月28日 15時42分35秒)
  • 更新しました。 - 自称サポーター (2008年08月28日 17時16分27秒)
  • SandBoxで試された方がいるようです。うまくいってるように見えますが。 - 名無しさん (2008年08月28日 18時16分14秒)
,1-1,1-2,1-3
,"==要素1,要素2==","==要素3,要素4==","{{ref wikibook_mini.jpg,FrontPage,試しにリンクしました}}"
1-1 1-2 1-3
要素1,要素2 要素3,要素4 試しにリンクしました(1879183)
  • この例の、"試しにリンクしました"の部分を打ち消し線にしたいのですが、うまく行っている方いますでしょうか? - piyopiyo (2008年08月29日 09時22分48秒)
  • 以下、SandBoxからコピーします。 - 名無しさん (2008年08月29日 12時03分23秒)
1-1 1-2 1-3
要素1,要素2 要素3,要素4 wikibook_mini.jpg(1879183) =試しにリンクしました=

とかならウチのとこではできてるんだけど意味合いとしては
1-1 1-2 1-3 状態
要素1,要素2 要素3,要素4 試しにリンクしました(1879183)  ×
で逃げるとか

  • もう「表の中で、カンマ","を使いたい」という話とは無関係になってますね。 - 名無しさん (2008年08月29日 12時05分05秒)
  • 表の中にあるかどうかに関係なく、ref プラグインのエイリアス(「試しにリンクしました」という文字列)をwiki書式で修飾すること(==で囲んで打ち消すなど)はできません。 - 名無しさん (2008年08月29日 12時06分27秒)
  • BugTrack-plugin/162 を使用して該当行の背景色を黒に近い色に変更するか、文字の色を薄くするとか・・・ - KG (2008年08月29日 12時42分36秒)
  • BugTrack-wiki/313を適用すれば、下記でご所望のことができるっぽいです。ただし、3.6.3dev2 以上が必要。 - 名無しさん (2008年08月30日 03時53分41秒)
,1-1,1-2,1-3
,"==要素1,要素2==","==要素3,要素4==","=={{ref wikibook_mini.jpg,FrontPage,試しにリンクしました}}=="
  • みなさん、コメントありがとうございます。とりあえずですが、打ち消し線については無くてもとりあえず可との判断です。rev 3.6.3dev2以上での技も試したい所ですが、現状はまだバージョンアップできる状態ではないので、しばらくお待ち下さい。 - piyopiyo (2008年09月01日 11時27分20秒)
お名前: コメント:

FreeStyleWikiの設置方法 - 榊 (2008年08月18日 19時08分41秒)

FreeStyleWikiの設置方法が分かりません。どうすれば設置できますか?

パーミッションなどが分かりません。

  • ちょっとくらい調べましょうよ。http://fswiki.sourceforge.jp/cgi-bin/wiki.cgi/docs?page=readme#p2 - 名無しさん (2008年08月18日 19時28分42秒)
  • こういうのもあります。 - 名無しさん (2008年08月18日 19時30分33秒)
  • すみません; - 榊 (2008年08月23日 19時50分52秒)
  • 本当にありがとうございました! - 榊 (2008年08月23日 19時51分06秒)
お名前: コメント:

<title>タグで表示されるページ名とwiki名の順序変更について - 仁司 (2008年08月15日 08時31分25秒)

FreeStyleWiki3.6.3を使用しています。

デフォルトの状態で表示させるとタイトルバーに「FrontPage - FreeStyleWiki」と表示されますが、これを

「FreeStyleWiki - FrontPage」のように表示順序を逆にするにはどこをいじればよいのでしょうか?

ページ内検索をしましたがそれらしき記事は見つからなかったので質問させて頂きました。

  • wiki.cgi の 227行付近でテンプレートに値代入している箇所を修正すると入れ替えできます。 - A_M (2008年08月15日 12時05分07秒)
  • ありがとうございました - 仁司 (2008年08月26日 17時23分51秒)
  • これって、FSwikiのバージョンが上がる度に、そのつど手動で修正する必要があるってことですよね? なんとか環境設定とかで、表示順を任意に選択出きるようにならないでしょうか? - 名無しさん (2010年04月13日 11時34分18秒)
お名前: コメント:

FSWikiを移動、別のFSWikiに移動する場合のデータの場所について - たった (2008年08月13日 14時43分16秒)

お世話になります。

FSWikiをWikiFarmを使っている状態でVersionは3_6_2を設置しており、別のディレクトリに別途FSWikiを設置しました。

元のFSWikiの任意のWikiFarmをそのまま移行したいのですが、どこのデータをコピーすれば移動できますでしょうか。ざっと見る限りでは、backup/特定のWikiFarm名data/特定のWikiFarm名log/特定のWikiFarm名pdf/特定のWikiFarm名(未使用の為今回は不要)かと思うのですが、他に何か移動すべきファイルはございますでしょうか。宜しくお願い致します。

  • 他にもFarmを掘り下げているディレクトリが対象と思います。 - A_M (2008年08月13日 14時58分18秒)
    • ./attach (添付ファイル)
    • ./backup (WIkiページのバックアップデータ) リセット可能。ディレクトリ作成だけでもOK
    • ./config (Farm毎の初期設定) 移行先でFarm作成しているなら不要かもしれません。
    • ./data (WIkiページのデータ)
    • ./image (KG氏作表示用画像プラグイン)
    • ./log (ログ、キャッシュファイル) リセット可能。ディレクトリ作成だけでもOK
    • ./pdf (pdfファイル) リセット可能。ディレクトリ作成だけでもOK
  • 新しいFSWikiでFarm設置後、data部分だけ移動で無事移行できました。ありがとうございます。 - たった (2008年08月13日 20時52分20秒)
お名前: コメント:

FSWiki4 で新規作成ができないなど - mm (2008年08月07日 18時47分47秒)

FSWiki4 を以下の通りに設置しました。

  1. CVS から fswiki4 の branch を tarball でダウンロード。
  2. セキュリティパッチの fswiki-patch-20080703-2.zip と fswiki-patch-20080716.zip もダウンロード。
  3. fswiki-patch-20080703-2.zip のパッチは修正部分のみ手パッチ。
    1. fswiki-patch-20080716.zip はそのまま上書き。
  4. 一部書き換えられていないファイルがあるようなので、全ファイルを UTF-8 に変換。
  5. 以下、ドキュメント通りにサーバーにインストール。

閲覧やすでに存在するページの編集、管理画面へのログインなどは特に問題なく動いていますが、新規作成しようとすると、

Software Error:
Can't find ./data/.wiki. at lib/Wiki/DefaultStorage.pm line 64. at lib/Util.pm line 627.

となってしまいます。最初から存在するページ(FrontPage など)をコピーしようとすると、

Software Error:
Can't locate object method "get_login_info" via package "Wiki" at plugin/rename/RenameHandler.pm line 42.

となります。少し表題からははずれますが、管理 - パスワードの変更 は

ACCOUNT is invalid action.

となり、管理 - MIMEタイプ は

ADMINMIME is invalid action.

となります。また amazon プラグインは、

amazonプラグインがインストールできません。Can't locate object method "add_paragraph_plugin" via package "Wiki" at plugin/amazon/Install.pm line 10. 

となります。(既知の問題?)

UTF-8 で利用したかったことと、FSWiki4 を利用している方がなかなか見つからなかったことから人柱っ気をだして手をだしてしまいましたが、上記の問題について解決法はあるでしょうか?(素直に 3.x を使うべき?)

  • 私が見たところでは、FSWiki4 はまだ稼動できる状態ではありません。 - KG (2008年08月07日 20時44分16秒)
  • 返信ありがとうございます。commit された日時から積極的に開発はされていないのは気づきましたが、稼働できる状態にないということで少し残念です。結局 3.6.3 dev3 を BugTrack-request/36http://www.kototone.jp/com/fswiki.html を参考に UTF-8 化して設置しました。現状うまく動いているようです。 - mm (2008年08月10日 21時50分50秒)
  • 3.6系でUTF-8運用するための補足事項をBugTrack-request/36に追記しました。 - A_M (2008年08月13日 13時38分34秒)
お名前: コメント:

テキストファイルを読み込めないか? - けんた (2008年08月05日 10時53分32秒)

FSwikiでは、wikiのページ(またはその一部)をどこか他のページに include できますが、wiki のページではなく、テキストファイルを読み込むことはできないでしょうか? もしかして、要望のほうに書いたほうがいいかもしれませんが、できるかできないかを教えてください。

  • ref_textプラグイン を利用します。 - KG (2008年08月05日 11時28分45秒)
  • なるほど、こんなものがあるわけですね。知りませんでした。さっそく試してみます。 - けんた (2008年08月05日 23時44分59秒)
お名前: コメント:

[ 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秒