ページの作成や編集にはユーザ登録が必要です。
FSWikiサポート掲示板
- 設置に関するトラブルや要望などがあれば書き込んでください。
- 記事のタイトル一覧をサポート掲示板一覧で見る事ができます。それ以前の過去ログは[サポート掲示板]から参照できます。
- 投稿する前に
- Tips、FAQ、サポート掲示板の過去ログに同様の内容がないかを確認してください。
- バグ報告に関してはバグトラックのほうにお願いします。
- 機能拡張のためのパッチやプラグインの投稿はプラグイン投稿にお願いします。
- パッチは本体にあてるものの場合はGPL、プラグインにあてるものの場合はプラグインのライセンスにしたがうものとします。
- 開発に関するご意見、質問等はメーリングリストにお願いします。
- FSWikiとは無関係と思われる投稿、コメントに関しては削除させていただきますのでご了承ください。
- 特定の設置環境でのみ発生するトラブルがいくつかあります。トラブル報告の際には、「どんな設定の」「どのサーバ/レンタルスペースに」「どうやって」設置したかを詳しく書くと、返事がもらいやすいですよ
- どういうことを書けば回答を得やすいか判らない方は、こちらのページをご一読ください。
本文のないsectionのinclude - 名無しは無慈悲な夜の女王 (2004年04月27日 19時29分11秒)
Version3.5.3です
includeプラグインは存在しません。や これを間接的に呼ぶrecentcalendarプラグインは存在しません。等でsection記述のみあって本文のないsectionをincludeしようとすると次のsectionの本文までが引用されてしまいます
対症療法的にInclude.pm 63行目以降に以下の修正を施しましたがよりスマートな正規表現記述が可能だとも思われまたundefを返すのが適切かどうかも解りませんし
今後のリリースにてご検討頂きたく宜しくお願いします。
# パラグラフが指定されていた場合はパラグラフを切り出す $para = quotemeta(Util::trim($para)); if($para ne ""){ if($source =~ /(\n|^)!!\s*$para\s*(\n+!!|$)/){ return undef; } elsif($source =~ /(\n|^)!!!\s*$para\s*\n((.|\s|\r|\n)*?)\s*(\n!!!|$)/){ $source = $2; } elsif($source =~ /(\n|^)!!\s*$para\s*(\n+!!|$)/){ return undef; } elsif($source =~ /(\n|^)!!\s*$para\s*\n((.|\s|\r|\n)*?)\s*(\n!!|$)/){ $source = $2; } elsif($source =~ /(\n|^)!\s*$para\s*(\n+!|$)/){ return undef; } elsif($source =~ /(\n|^)!\s*$para\s*\n((.|\s|\r|\n)*?)\s*(\n!|$)/){ $source = $2; } else { return &Util::paragraph_error("paragraphが存在しません。","WIKI"); } }
- バグトラックに移しておきます。 - たけぞう (2004年05月24日 10時06分40秒)
tarファイルについて - TAKE^2 (2004年04月26日 14時49分10秒)
初めて書き込みさせていただきます。TAKE^2と申します。今後ともよろしくお願いいたします。
さて、現在ver3.5.3にて試験的LOLIPOP上にサイトを設置したのですが、tarによるバックアップを行いローカルにダウンロードしたものをeoなどの解凍ツールで解凍するとエラーとなってしまいます。
その他の機能については問題なく動作しております。
設置したサイトはページ名が日本語名で長いものが多く*.wikiファイルの名前自体が非常に長いです。
tarは100文字以上のパスを格納できないと聞いたことがあります。これと何か関係があるのでしょうか?
何かお教え願えれば幸いです。
- 私の方でも同じ症状が……。ちなみにサーバーはLolipopではありません。 - 通りすがり (2004年12月13日 02時12分32秒)
- 100文字以上のパスを含む場合についてもLinux上のtarコマンドでは問題なく解凍できています。eo以外の解凍ツールは試されたでしょうか? - たけぞう (2004年12月13日 20時22分01秒)
- いくつかのツールを試していますが、未だにWin上では正常に解凍できたことはありません。ちなみに現在のFSWikiのバージョンは3.5.5です。 - TAKE^2 (2004年12月14日 00時44分45秒)
- 3.5.7dev2で試しましたが、そもそも長いページ名を作ろうとするとエラーが…。ひらがな35文字のページ名だと正常に取り出せました。LHUT32つかっています。 - いしだなおと (2004年12月14日 03時04分29秒)
- ただし、管理画面の「バックアップ」で複数のチェックを付けると
正しいアーカイブをダウンロードできない正しくアーカイブを展開できない現象がおきました。データファイルだけチェックした状態だと、中身を取り出せました。 - いしだなおと (2004年12月14日 03時07分59秒) - ↑の件は。LHUT32で展開しようとしたときの話で、cygwinのGNU tarで見る限りは正常のようです - いしだなおと (2004年12月14日 04時07分59秒)
- もっと正確に書くと、tコマンドでファイル名のリストをみるときは正常ですが、xコマンドで展開するとき、長いファイル名については「tar: data/%A3(中略)%B0.wiki: Cannot open: File or path name too long」とエラーになりました。
- ただし、管理画面の「バックアップ」で複数のチェックを付けると
- 統合アーカイバ・プロジェクトで配布されているtar32.dll version 2.26と付属のminitar.exe(コマンドプロンプトで実行)の組み合わせでも展開できないので、同DLLを使うWindowsアプリは全てダメな可能性が高いと推測されるかと思います。ちなみに以下のようなエラーだったのですが。。。 - いしだなおと (2004年12月14日 04時20分53秒)
$ minitar ft fswiki-backup.tar tar32.dll version <226> filename filesize backup/ 512 TAR32 Error(0x8016): tar header checksum error. Tar((HWND)0,(LPCSTR)ft fswiki-backup.tar ,,(DWORD)3e8) usage: TAR32.DLL <command> <option> archive.{tar,tar.gz,tar.bz2} filenames...
- アーカイブの作成自体はArchive::Tarに依存しているのでなんともいえないのですが…。3.5.7ではバックアップ機能を外すことを含めて検討します。 - たけぞう (2004年12月14日 10時35分14秒)
- Archive::TarをCPANから最新のものを持ってきて入れ替えて、必要になるIO::Stringも入れたところ、minitar.exeでtar header checksum errorは出なくなりました。ファイルを取り出せます。ただし、ディレクトリ構造を保てないようでした。 - いしだなおと (2004年12月14日 12時20分53秒)
- 解凍できません - ぴぇろ (2006年11月13日 04時08分13秒)
- 解凍できません - ぴぇろ (2006年11月13日 04時08分17秒)
- 古い話題ですが上がってきているので私見を…Windows系OSのロングファイル名の仕様(最大255Byteとかあったような)とURLエンコードされて保存時に長くなるFSWikiのページ保存の仕様とで、日本語で保存するページは文字数に上限があるものとして命名しないとエラーに遭うように思います。アーカイバで解凍時、書庫内のファイル名が長すぎると、エラーになるため、現状では機能を外しているのかな。…とも感じます。 - A_M (2006年11月13日 04時56分50秒)
画像掲示板希望致します。 - S_Reich (2004年04月20日 14時04分54秒)
FSWiki3.5.3を投稿型のページで使わせて頂いております。閲覧者の投稿で成り立っていますので、画像掲示板があるととても有難いです。ご検討頂ければ幸いです。
- BugTrack-plugin/100あたりを入れたらよいですね。 - 紅猫 (2004年04月20日 14時19分56秒)
- 早速入れてみました。素晴らしいものを教えて頂きましてありがとうございます。作者様にもこの場をお借りして感謝致します。 - S_Reich (2004年04月20日 16時43分25秒)
WAKWAKでのFSWiki3.5.3導入について - どくとるひらめ (2004年04月17日 16時14分44秒)
FSWikiを3.5.2から利用させて頂いております。サーバはWAKWAKの会員ホームページサービスを利用しています。今回3.5.2→3.5.3にバージョンアップを行った際、dataディレクトリ内の「Help/FSWiki.wiki」「Help/Hiki.wiki」「Help/YukiWiki.wiki」(「/」は「2%F」になっていたが)の3ファイルが転送されず、またファイル名を変更した上で転送→FTPクライアントでファイル名を戻すこともできず、別の方法で解決させました。
1.ファイルを転送せず、FSWiki上から同じ名前のページを作成 2.中身をそっくりコピー&ペースト 3.保存
これで解決をできたとは思いますが、何が原因なのか、そしてもっとスマートな方法があるのか、ご教授いただければ幸いです。
- 名前の/は%2Fのまま転送する必要があります。 - にらたま (2004年04月18日 03時05分55秒)
- 私も3.5.2の頃からそうです。以前バックアップをとっておいたdataディレクトリのファイルをアップしようとしたら2バイト文字を使用したページはすべてサーバにはねられました。しょうがないので、今はエイゴのタイトルのページばかりにしています。 - ほえ (2004年04月18日 07時53分33秒)
- どうもWAKWAKは%がファイル名に含まれるとアップできないようです。 - ほえ (2004年04月18日 07時55分37秒)
- 新しいサーバに換わってwiki対策のためにわざとやってるんじゃないでしょうか、とも思ってしまいます。 - ほえ (2004年04月18日 08時01分39秒)
- もちろん、「2%F」のまま転送しようとしましたが、それでもうまくいかない状態でした。とはいえ、わざとやっているとしたらちょっと考えるところですが、現状では動かせない事情があるので、このまま様子見をします。 - どくとるひらめ (2004年04月18日 16時32分42秒)
- 「Help%2FFSWiki」を記号の入らない適当なファイル名でアップロードし(「HelpFSWiki」など)、生成されたページを、Wiki上で「Help/FSWiki」とリネームすれば、サーバ上のファイル名が「Help%2FFSWiki」にリネームされます。 - パ (2006年09月09日 01時21分37秒)
何を保存しても DefaultStorage.pm でエラー - Asshi (2004年04月16日 00時22分56秒)
Ver.3.5.3 です。何か文書を保存するたびに、以下のエラーが出ます。どのような原因が考えられますでしょうか。Can't call method "config" on an undefined value at lib/Wiki/DefaultStorage.pm line 331.
ソースを読むと「ページが既に存在するか調べる」サブルーチンでしたが・・・。
*ロリポップのレンタルサーバで、自分のトップディレクトリに新しくディレクトリを作ってその中に設置しました。
- BBS-サポート掲示板/212と同じ問題でしょうか。そちらにレスをつけていますので参照してみてください。 - たけぞう (2004年04月16日 01時02分18秒)
- 過去に同様の質問がないか、検索したつもりでした・・・やり方が悪かったようです。すみません。 - Asshi (2004年04月16日 10時17分12秒)
- 212 に書かれたとおり修正したらエラーは出なくなりました。 - Asshi (2004年04月16日 21時35分46秒)
3.5.3へバージョンアップ後、エラーがでる - ゆきち (2004年04月15日 23時46分24秒)
最近、3.5.0から3.5.3へバージョンアップしたのですが、更新すると、エラーが出るようになりました。エラーメッセージは
Software error: Can't call method "config" on an undefined value at lib/Wiki/DefaultStorage.pm line 331.
といったものです。ただし、そのページに戻ると、更新はできています。
で、どうやって移行したかというと、
- fswiki全体のバックアップをローカルに置く
- サーバー上のデータを削除
- バックアップをコピー
- コピーしたもののwiki.cgi、libなどの必要なデータを3.5.3に入れ換える
- そのデータをサーバー上に置く
といったものです。
で、ちょっとやらかしてしまったのは、ローカルに落としたときにデータをバイナリで運んだかもしれないことなのです。何度も繰り返したため、既にそのあたり、不明な状態に入っています。
何かわかりましたら、教えてください。
- 以下のようにBEGIN節の一部をコメントアウトしてみるとどうなるでしょうか。 - たけぞう (2004年04月16日 00時57分56秒)
diff -r1.20 wiki.cgi 15,22c15,22 < my $cgi_carp_die_org = \&CGI::Carp::die; < sub _die{ < my $wiki = $CGI::Carp::wiki; < $wiki->_process_before_exit if($wiki); # 後処理 < $cgi_carp_die_org->(@_); < }; < *CORE::GLOBAL::die = \&_die; < $SIG{__DIE__} = \&_die; --- > # my $cgi_carp_die_org = \&CGI::Carp::die; > # sub _die{ > # my $wiki = $CGI::Carp::wiki; > # $wiki->_process_before_exit if($wiki); # 後処理 > # $cgi_carp_die_org->(@_); > # }; > # *CORE::GLOBAL::die = \&_die; > # $SIG{__DIE__} = \&_die;
- 上記はmod_perl(Apache::Registory)での運用時に異常終了した場合にメモリリークを防ぐためのコードなのですが、CGI環境であればコメントアウトしてしまってもとりあえず影響はないはずです。 - たけぞう (2004年04月16日 01時01分22秒)
- 上記修正でエラーがなくなりました。ありがとうございました。 - ゆきち (2004年04月17日 05時48分34秒)
サーバ負荷対策 - 名無しさん (2004年04月15日 22時53分51秒)
Win2k AnHTTPd1.42k ActivePerl5.008003 FSWiki3.5.3 で運用しております。最近、処理に時間がかかるようになってきたので原因を探ろうと色々模索しているのですが、テキストオンリーのページの場合、1ページあたりの表示量(処理テキスト量)を別ページとして作成すべきなのか、ページ分散による「ページの自動リンク」の処理を避けるべきなのか、正確な時間(Perlの処理時間)が判らないので悩んでおります。
ここがボトルネックになりやすい構成なのでこっちがいい 等、ありますでしょうか?
取り扱いデータ
- dataフォルダ
- 総ファイル数699個 使用容量605KB
- 最大負荷の掛かるページ
- ソース 54,731Byte
- ハイパーテキスト化時 287,801Byte
- メディア 220,878Byte
- ソース 54,731Byte
- ソース&メディア内訳(最大負荷の掛かるページ)
- {{ 個数 約1150 7割以上が include
- 1include当たり 1回のアンカー作成
- 17kbほどのpngファイル呼び出し回数 約170
- Hn 個数 約220 {{outline}}使用
- {{ 個数 約1150 7割以上が include
コメント
- この最大負荷のかかるページを表示しきるまでにAthlon(800MHz)で約1分半かかります - 名無しさん (2004年04月15日 23時00分11秒)
- うーん、ページ数が699というのは自動リンクをしなければそれほどでもないと思いますが、includeとref_imageの数がかなり強烈ですね。特にref系は1つにつきFSWikiのプロセスが1つ立ち上がってしまうので、1ページで大量に使うのは避けたほうがよいです。 - たけぞう (2004年04月16日 00時50分53秒)
- なるほど... ref_imageは閲覧側が非表示で避けれるとして、自動リンクをONにしてる限りこれ以上の負荷低減は望めなそうですね。 他のWikiで見かけた機能ですが、Perlの動作時間のわかるものがあると助かったりしますが、余計な機能入れるとさらに重くなるんだろうな...トホホ - 名無しさん (2004年04月17日 11時07分25秒)
- プロセスのCPU消費時間を表示するプラグインが存在しますが、Win2Kだと実時間は取れないですね……。 - BJM(と) (2004年04月18日 20時42分31秒)
はてなアンテナでUnknown Content-type - saitou (2004年04月06日 03時48分05秒)
こんにちは。運用中のFSWiki_Liteで気になることがありましたので書き込みさせてもらいました。
はてなアンテナからwiki.cgiへアクセスがあると、Apacheのエラーログに
cgi-lib.pl: Unknown Content-type:
が記録されます。どうやらはてなのアクセスでContent-typeが設定されていない(?)ようなのですが、正直知識が乏しいのでこれ以上分かりません。これはなにか修正した方が良いのでしょうか?どなたかアドバイスをお願いします。
- その後、ログを調べたところ、どうやらHEADメソッドが送られてきた時にこのエラーが出るようです。HEADは本文を返さない以外はGETと同じ処理のはずなのですが、GETではこのエラーは出ていませんでした。 - saitou (2004年04月08日 15時31分02秒)
- cgi-lib.plでエラーを返すようになってるみたいです。未確認ですがlib/cgi-lib.plを以下のように修正することで回避できるのではないかと思います。 - たけぞう (2004年04月08日 18時41分19秒)
diff -r1.1 cgi-lib.pl 81c81 < if (!defined $meth || $meth eq '' || $meth eq 'GET' || --- > if (!defined $meth || $meth eq '' || $meth eq 'GET' || $meth eq 'HEAD' ||
- 上記の修正でエラーが出なくなりました。ありがとうございます。 - saitou (2004年04月10日 11時57分15秒)
Windows2000Server IISのサーバにP900i(携帯)でアクセスできません。 - けじゃ (2004年04月05日 15時59分06秒)
こんにちは。FOMA(P900i)からFSWiki3.5.3dev5への接続を試みてみましたが、「接続先のサーバは現在ご利用できません(502)Your request cannot be processed.(502)」と表示されます。サーバ環境はWindows2000Server、IIS5となります。
PCからは動作確認ができているURL(プログラム)です。なお、念のためlinux等のサーバにおいてP900iでアクセスしてみると正常に動作するようです。やはりWindows2000であるのが原因のようですが私のレベルではこれ以上の追跡はギブアップでございます(^_^;)
どうぞよろしくお願い申し上げます。
- この件、いかがでしょうか?情報が不足していますでしょうか?どうぞよろしくお願いします。 - けじゃ (2004年04月20日 21時27分26秒)
- とりあえず、FSWiki以外の簡単なCGIで試してみると、Wikiに問題があるのかIISの(設定の)問題なのか見当が付くかもしれません。お試しになったでしょうか - 名無しさん (2004年04月21日 01時27分34秒)
- 名無しさん、ご回答ありがとうございます。ご指摘の件ですが他CGIでは問題なく携帯からみれています。CJ-Clubさんの掲示板などは問題なく携帯でも動作するのですが・・・。 - けじゃ (2004年04月22日 11時22分27秒)
- IISを使わないのが無難かと - 名無しさん (2009年03月23日 09時30分04秒)
ユーザー管理にて変更を行うとPermission deniedになる - mega_lip (2004年04月04日 11時32分41秒)
初めまして、Wiki初挑戦です。WindowsServer2003 & IISにて、このサイトのWindowsでの設置方法を参考にしながらFSWikiを導入したところですが、他の設定変更はできるものの、なぜかユーザー管理のみ変更するとPermission denied になってしまいます。別段 /wiki/config/user.dat に他と異なるようなアクセス権限設定を施してもおりません。もちろんadmin/adminでログインしています。何かご助言いただけないものでしょうか?ちなみにエラーメッセージは・・・Software error:Permission denied at lib/Util.pm line 243.です。
- 僕も困っています。 - mo (2004年10月28日 23時26分22秒)
添付ファイルのアップロード時 - baz (2004年03月29日 15時47分57秒)
はじめまして。FreeStyleWiki3.5.2を導入してまだ間もありませんが、2000とIISで順調に動きました。Farmやプラグインも問題なく動いています。ただ、添付ファイルのアップロード時にBBS-サポート掲示板/50と同じ現象が出ます。掲示板/50を参考に「wiki.cgiのBEGINの中に $TempFile::TMPDIRECTORY='./tmp';」やtmpディレクトリを追加したのですが、解決されません。ディレクトリの試験にプラグインamazon2で試すとattachディレクトリに問題なく保管されます。wiki.cgiを設置しているディレクトリ以下も十分に権限を持たせています。実は、wiki.cgiのBEGINへの設定に自信がありません。これでよいのでしょうか?アドバイスをお願いします。
BEGIN { if(exists $ENV{MOD_PERL}){ # カレントディレクトリの変更 use Cwd; chdir ("D:/websoft/wiki");#"C:/Apache/htdocs/fswiki" $TempFile::TMPDIRECTORY='./tmp'; # exit関数の上書き use subs 'exit'; require Apache; *exit = \&Apache::exit; $| = 1; } }
- うちだと、IIS5.0(Win2000SP4)ですが、問題なく添付ファイルのアップロードが出来ていますよ。もちろん、CGIの修正はしてません。パーミッションエラーって事は、やはりセキュリティの書き込み権限が無いと思うので一度、FSWikiをインストールしたフォルダ以降のセキュリティを設定し直して見て下さい。 - リュナン (2004年03月29日 18時03分47秒)
FSWikiをインストールしているフォルダをC:\WIKI、現在WindowsにログインしているユーザーをAdministrator、IISのディレクトリセキュリティのアクセスを「匿名アクセス」とした場合。
- C:\WIKIのセキュリティの詳細設定で所有者を「サブコンテナとオブジェクト〜」をチェックして、Administratorに置き換える。
- アクセス許可にAdministratorとインターネットゲストアカウントを追加し、フルアクセスに設定して「子オブジェクトすべてのアクセス許可エントリを、ここに表示されているエントリで子オブジェクトに適用するもので置換する」にチェックして、OK。
IISを認証アクセスにしている場合は、アクセスするユーザーをインターネットゲストアカウントの替わりに追加して下さい。これで、すべてのフォルダのセキュリティにアクセス権が設定されるので、いけると思いますが。
- ありがとうございます。うちもIIS5.0(Win2000SP4)です。初期の状況を確認するためにオリジナルのままインストールしました。設置ディレクトリ以下継承共、インターネットゲストアカウントで全開のフルコントロールにしましたが、状況はアップロード時のみ、同じエラーが出ます。他に考えられる対策などありましたらお願いいたします。 - baz (2004年03月30日 02時38分18秒)
- うーん、IISのFSWikiをインストールした仮想ディレクトリか、ルートにインストールしたならWebサイトのプロパティでディレクトリセキュリティの「匿名アクセスおよび認証コントロール」の編集では「匿名アクセス」にチェックが入っていて、ユーザー名にはインターネットゲストアカウントのユーザーが入ってますよね?あとは、ちょっと思いつかないです。通常、デフォルトから触る所は、CGIの設定以外ではその位なので。デフォルトの環境からならWindowsでの設置方法の通りで、動くと思うのですが。 - リュナン (2004年03月30日 08時46分28秒)
- うーん・・未だ解決せず、です。でもすっかり、FSWikiにはまってしまっていますので、試行錯誤してみます。お絵かきプラグイン等や他の方法で代行する手もあるかもしれない・・。 - baz (2004年03月31日 01時10分50秒)
- amazon2とattacheでは添付ファイルにするデータの取得方法が違うので、この例では参考にはならないと思いますよ。CGI.pm とか AttachHandler.pm とかがWindowsのパス名を上手く扱えていないとか、そうゆう問題な気がしますけど。日本語やスペースの入ったフォルダ(デスクトップとか)からのファイルアップロードがUNIXサーバでは上手くいかないことが多いんで、c:\ とかにファイルを置いて試してみたらどうでしょう? - gyo (2004年03月31日 12時52分39秒)
- 日本語ファイル名もできれば避けた方が無難でしょうが、そんな問題じゃないんでしょうねぇ。環境がないのでよく解らなくてすいません。 - gyo (2004年03月31日 13時10分51秒)
- うちの環境だと、サーバ:Win2000SP4 クライアント1:WinXPSP1(IE6.0) クライアント2:Win98SE(IE6.0) クライアント3:Win2000SP4(IE5.0)で、どの環境でも日本語のフォルダ、日本語のファイル名でも添付出来ました。あとは、AnHttpdでやってみるとか、ちなみにIISはFSWiki以外に何か使っていたりしますか? - リュナン (2004年04月02日 09時45分44秒)
- 田舎の小さなボランティア団体なのです。WEBは、自己所有サーバーでフリーのCGIが実働50本ぐらい稼動しています。HPのページ数は6000ぐらいでしょうか。Attachのuploadだけに支障があるだけなので、多分gyoさんのおっしゃる通り、パスの受け渡しが出来ないのだと思います。パスが取得出来ないなら、現サーバーのDNSなどから調べる必要があるのでしょうね。 - baz (2004年04月04日 15時11分33秒)
- サーバ名でアクセスできているならDNSは無関係でしょう。リュナンさんや他の方は問題ないようなので、baz さんの環境独自の問題と思われます。Perl に付属している CGI.pm とかがうまくないんじゃないかと思うんですが、その辺は調べてみましたか? - gyo (2004年04月04日 22時45分59秒)
- うちは XP ですけど、Windowsでの設置方法の通りに入れたら、デスクトップにある日本語ファイルも問題なく添付できちゃいました。再現しないので、情報がないと解決へのお手伝いができそうもないです - gyo (2004年04月05日 00時23分31秒)
- AnHttpd win2000sever環境ですが、私も全く同じ状況です。添付時にCGI open of tmpfile: No such file or directoryのエラーが出てしまいます - Kaz (2005年10月14日 22時28分48秒)
Category_Listプラグインの改造 - 因果 (2004年03月29日 15時01分04秒)
こんにちわ。FSWikiを利用させていただいています。
現在は、社内の情報共有の仕組みとしての利用を検討しております。その上で、Category_Listプラグインを利用しているのですが、このプラグインでは表示件数を設定することができません。それは現仕様では無理と思いますのでバージョンアップでの対応を期待しているのですが、現状のバージョンでもプラグインのファイルを書き換えることで対応が可能と考えていますが、あまりプログラムに親しんでないものですからどのあたりをいじれば良いか分かりませんので、ご助言をいただけませんでしょうか?よろしくお願い致します。
<やりたいこと>・カテゴリーリストの表示件数を制限する。・ページ名の降順で表示されているものを昇順に変更したい。
- plugin/category/CategoryHandler.pmあたりですかね。 - たけぞう (2004年03月29日 20時50分39秒)
- 36行目の (sort( ってとこを(reverse sort(と書き換えると、カテゴリ名の見出しがいつもと逆順で表示されますね。52行目の (sort( も同様に、38行目の = sort( を = reverse sort( というように、sort の前に reverse をつけるとページリストも逆順になりますかね。表示件数の制御はplugin/core/ListPage.pmが参考になるんじゃないでしょうか。面倒臭げだけど - gyo (2004年03月30日 00時04分03秒)
- 回答ありがとうございました。とりあえずsortの順番だけは変えて使用しています。ところで表示件数の改造ですが、もしCategory_Listプラグインを改造して表示件数を変えた場合、全体のCategory_List表示件数も変わってしまいますよ。ページ事に表示件数を変えたいと思うのですが・・・やはり贅沢なようですねm(__)m - 因果 (2004年04月23日 14時27分02秒)
- 表示件数のカスタマイズで何かアイデアありませんでしょうか?プラグインの切り貼りでは限界です・・・。 - 因果 (2004年04月23日 15時21分51秒)
- 39行目(@pagesのforeach)の直前にmy $count = 5;、43行目(if文の中)にlast unless --$count;とか? - ふる (2004年05月01日 12時05分32秒)
特定のページ(SandBox等)だけ自由に編集出来るようにするには? - ts (2004年03月29日 10時57分44秒)
何度も初歩的な質問で申し訳ありません。現在開設に向けていろいろ作っているところなのでよろしくお願いします。一応基本的なページの編集に関してはログイン制にしたいんですが、SandBox等は誰でも練習出来るページにしたいんです。凍結機能を使うと管理者しか編集出来なくなってしまいますし…。特定のページだけ制限を解除する設定方法なりプラグインなどを教えて頂けないでしょうか? 一応探したんですが見つかりませんでした。
- readmeには「管理ユーザ、一般ユーザは共に凍結されたページの編集を行うことができたり」とありますが? - JR (2004年03月29日 17時25分37秒)
- ほんとですねぇ。おかしいなぁ。一般ユーザでログインすると凍結したページに編集アンカが出ないんですけど、僕だけですか? どこか間違ってるかなぁ。 - ts (2004年03月29日 18時03分00秒)
- 編集不可モードはログインしていれば編集可能、ページが凍結されている場合は管理者ユーザでログインしている場合に編集可能となります。ドキュメントが古いままとなっています。 - たけぞう (2004年03月29日 20時43分18秒)
- そうですか。とゆう事はログイン制にしてSandBoxは自由に公開ってゆうのは無理なんですねぇ。まぁSandBoxだけ公開しても意味が無いと言えば無いかぁ…。 - ts (2004年03月30日 08時58分53秒)
- 参照・編集権限(特に編集権限)については今までの経緯もあり、いまひとつ整理しきれていない面があります。次回のバージョンでは少し整理したいと思います。 - たけぞう (2004年03月30日 10時08分11秒)
mod_perlでセッションファイルが更新されない - まかまか (2004年03月28日 21時22分24秒)
3.5.2をApache::Registry(perl,v5.8.0 built for i386-linux-thread-multi,Apache/1.3.27, mod_perl 1.28)で利用しておりますが、ログインした後、ページを移動してもセッションファイルが更新されません。
BBS-サポート掲示板/45にもあるように、CGI::Sessionオブジェクトのデストラクタが呼び出されていないようなのでとりあえず応急処置としてwiki.cgiの最後に
if(defined $ENV{MOD_PERL} and defined(my $ses = $wiki->get_CGI->{session_cache})){ $ses->flush; }
を追加して、セッションファイルを強制的に更新して使っています。この現象は通常は起きないのでしょうか…?
すいません、自己解決しました。CGI::Session::FileとCGI2のインスタンスが循環参照していてるため、デストラクタが呼び出されないのが原因でした。また、このせいでApache::Registryではメモリリークとなります。とりあえずwikiを終了する前に
$wiki->get_CGI->{session_cache}->{_SESSION_OBJ} = undef; $wiki->get_CGI->{session_cache} = undef;
すればよいのですが、これ以外にもWikiとストレージ、WikiとParserで循環参照していてメモリリークを起こしています。
提案なのですが、Wiki.pmに後処理用メソッドを実装し
例:
sub exit{ my $self = shift; $self->do_hook('finalize'); # プラグイン用 undef( $self->get_CGI->{session_cache}->{_SESSION_OBJ} ); undef( $self->get_CGI->{session_cache} ); undef( $self->{storage}->{wiki} ); ……などなど exit; }
wikiを終了させる際には(可能なら他のプラグインで呼び出されるexitも$wiki->exitに置き換えるなどして)、後処理ができるようにするのはどうでしょうか。
- 仰る通りexit関数の代用品を用意することも考えたのですが、そもそも循環参照しないようにできないかと考えています。でも今のインターフェースでは難しいですよね…。考えてみます。 - たけぞう (2004年04月02日 11時30分13秒)
- あと、Wiki.pm←→DefaultStorage.pmは確かに循環参照しているのですが、パーサについては
Wiki.pm側ではローカル変数として使っているだけなので、メモリリークの原因にはならないいと思うのですがあってます?プラグインからパーサを参照する部分がありますね。プラグインは一度インスタンスが生成されるとWiki.pmのインスタンス変数としてキャッシュされるので、この部分で循環参照が発生するようです。 - たけぞう (2004年04月02日 13時16分31秒)
プラグインのインスタンスをWiki.pmがキャッシュしている分には、最後にまとめてundefすることでなんとかなりそうですが、むしろ&Wiki::process_plugin (3.5.3dev5のWiki.pm,l.594)で、局所化されたプラグインインスタンスにPaserインスタンスを持たせている部分が解放を困難にしているように思います。
この部分の循環参照(プラグインインスタンス内のPaserインスタンス内のWikiインスタンス)は、&Wiki::process_pluginのスコープを抜けた時点で解放できなくなってしまいます。結果をreturnする前に
undef( $obj->{parser}->{interwiki} ); undef( $obj->{parser}->{keyword} );
する必要があり、さらに$obj->{parser}->{wiki}をundefしないとなりませんが、それをしてしまうと、その後のパースができなくなる場合があったので結局&HTMLParser::end_parse内で
$self->{wiki} = undef;
をして、やっとWikiのデストラクタを呼び出せました(ちょっと、ここ曖昧です。今、mod_perl環境がないもので確認ができません。しかもこれだと、再度このHTMLParserインスタンスでパースしようとするとエラーになりますね)。(以上、3.5.3dev5にて)
- ところで、循環参照を別にしても、プラグインの後処理用にhookの呼び出しがあったら嬉しいのですが、これについてはどんなものでしょう?(話題がずれてすいません) - まかまか (2004年04月03日 02時43分29秒)
- プラグインに持たせているParserをWiki#process_pluginから抜ける前にundefすれば丸く収まると思います(おそらく…)。Wiki#exitメソッドを新たに追加しexit関数の代わりに使うようにしようと思います。また、finalizeフックも追加します。ただ、このような実装だとエラーで落ちた場合にはどちらにしても終了処理は行われませんね。 - たけぞう (2004年04月04日 02時38分14秒)
- フックの追加ありがとうございます。エラー時に処理されないことについては、CGI::Carpの処理に割り込んで何とかならないものかと試しているのですが、何故かうまくいきません(仮にできたとしても美しくない処理ですよね……)。 - まかまか (2004年04月05日 23時11分13秒)
プラグインに持たせているParserをWiki#process_pluginから抜ける前にundef
という件ですが、実際にそれを行うとParserインスタンスが抱えているWikiインスタンスを根本から絶ってしまうようなのです。その結果、インラインプラグインなどのあるページを呼び出すと
Can't call method "config" on an undefined value at lib/Wiki/HTMLParser.pm line 310.
などとなるように、別のところでwikiインスタンスを利用できなくなる場合が発生します(どういう場合に生じるのか、私はまだよくわかっていません)。
確実なのは、リファレンスのカタログをつくって
*** Wiki.pm.org Thu Mar 11 23:39:16 2004 --- Wiki.pm Mon Apr 05 23:01:02 2004 *************** *** 592,597 **** --- 592,598 ---- } else { if($info->{FORMAT} eq "WIKI"){ $obj->{parser} = $parser; # 裏技用 + push @{ $self->{parser_obj} }, $obj->{parser}; my $cache = $parser->{cache}; $parser->{cache} = 0; if($info->{TYPE} eq "inline"){
後処理メソッド内で
for my $parser ( @{$self->{parser_obj}} ){ undef( $parser->{wiki} ); undef( $parser->{interwiki} ); undef( $parser->{keyword} ); undef( $parser ); }
てな感じなのでしょうか(正常に動作しました)。これまた見苦しい処理ですが。
- process_plugin内で$plugin->{parser}をundefするように修正してみたのですが、動いてますよ。こんな感じです。なにか間違ってるでしょうか。 - たけぞう (2004年04月06日 11時19分54秒)
594c594 < $obj->{parser} = $parser; # 裏技用 --- > $obj->{parser} = $parser; # 裏技用(プラグイン内部からパーサを使う場合) 599a600 > undef($obj->{parser}); # パーサの参照を解放 603a605 > undef($obj->{parser}); # パーサの参照を解放
- やや、確かにおっしゃる通りでした。どうも$obj->{parser}->{wiki}の方にばかり目がいってしまっていました。お手数をおかけして申し訳ありません。それから以下のような方法でdieした場合で後処理が可能でした。 - まかまか (2004年04月06日 17時12分08秒)
# wiki.cgi 3.5.3dev5 25c25 < use CGI::Carp qw(fatalsToBrowser); --- > #use CGI::Carp qw(fatalsToBrowser); 31a32,45 > BEGIN{ > use CGI::Carp qw(fatalsToBrowser); > my $cgi_carp_die_org = \&CGI::Carp::die; > > sub _die{ > my $wiki = $CGI::Carp::wiki; > $wiki->process_before_exit if($wiki); # 後処理 > $cgi_carp_die_org->(@_); > }; > > *CORE::GLOBAL::die = \&_die; > $SIG{__DIE__} = \&_die; > } > 43a58 > local($CGI::Carp::wiki) = $wiki;
- ありがとうございます。上記のパッチも取り込ませていただきます。 - たけぞう (2004年04月07日 11時38分14秒)
HTMLキャッシュの更新のタイミングについて - けじゃ (2004年03月28日 19時32分01秒)
はじめまして。現在試行錯誤を繰り返しながら、設置に向けてコンテンツを整備している次第です。XOOPSまではいらない、BLOGでは思っているのと違うな、と思っていたところ、Wikiというのを知り、FSWikiさんへ行き着いた次第です。長い前置きですみません、これからもどうぞよろしくお願いします!!
さて、質問ですがFrontPageにRSSを利用してニュースを表示しようとしているのですが、やはり毎回RSSを取り込もうとすると表示速度が気になるのでHTMLのキャッシュをしようと思うのですが、このキャッシュの更新のタイミングはどうなっていますか?(「キャッシュから除外するページ」、「更新時にキャッシュを更新するページ」の設定は関係なしデフォルトで)
ページを編集したタイミングでのみ更新されるのでしょうか?或いは、60分毎とか決まっておりますか?もし前者なら、今後のバージョンアップの際に、追加機能として管理者の設定で時間設定可能にはできませんでしょうか?
以上、よろしくお願いします。
- ページを更新したタイミングで更新されます。BBS-サポート掲示板/186のコメントにも書いたのですが、HTMLキャッシュ自体が実験的な機能であるため、今のところは時間設定を可能にするようなことは考えていません。 - たけぞう (2004年03月29日 09時52分43秒)
- 早々のご回答ありがとうございました。また今後の方向性についても承知しました。基本的にはキャッシュ無しで運用し、FrontPageなどアクセスの多いページは軽いページ構成とし、負荷の高いページは別で用意しようと思います。 - けじゃ (2004年03月29日 15時15分57秒)
センタリングやインデントは出来ませんか? - ts (2004年03月27日 14時47分11秒)
特に画像やテーブルが端に寄るのを治したい時があるのですが。
- FSWikiの基本文法ではできないです。CSSで指定するか、プラグインで対応することになります。 - たけぞう (2004年03月27日 22時48分12秒)
- BugTrack-plugin/43 - てて (2004年03月27日 23時03分11秒)
- すみませんでした。調べ方が足りませんでした。ありがとうございます。 - ts (2004年03月28日 11時37分04秒)
各操作ボタンを画像にしたいのですが… - サトー (2004年03月25日 21時06分33秒)
初めまして。よろしくお願いします。
私はHTMLとCSSなら何とかわかる程度の者です。新規・編集・一覧などを画像ボタンにしようと思って、単にFrontPageのソースに生成されている各アドレスを画像のリンク先に指定して、一応添付ファイルの様なレイアウトを作りました。
でも、当たり前の事だったんですが(^_^;)、編集ボタンに関しては各ページで生成されるソースが違う事に今頃気付きました。
何とかこのEditボタンを押せば、各ページの編集画面になるようには出来ないでしょうか? もし方法があれば、是非教えて頂きたいのですが。
- メニューのURLはplugin/core/Install.pmで指定しています($wiki->add_menu()という部分です)。ただし、URLが動的に変わるものについてはFSWikiのフック機構を利用して実装されています。「編集」アンカの場合はplugin/core/EditPage.pmのhookというメソッド内で処理しています。このあたりを修正すれば上記のような対応が可能だと思います。 - たけぞう (2004年03月26日 09時57分27秒)
- 返信ありがとうございました。とりあえずエディタで開いてみましたが、今の所何が書いてあるのか理解出来ません。しかし、弄る場所はわかったので、何とかPerlを攻略してみます。またよろしくお願いします。 - サトー (2004年03月26日 11時52分47秒)
- BugTrack-plugin/233 - 名無しさん (2008年04月07日 21時47分08秒)
生HTMLをそのまま記述するには? - puru (2004年03月25日 09時38分21秒)
自動で整形してくれるのはとてもありがたいのですが,時々「生HTML」を書きたくなる時があります.
具体的には GoogleAdSense 用の JavaScript(貼るとバナーになる)をそのまま貼り付けたいのですが・・・
どうすればいいでしょうか?
- 全ページに固定表示したいということであればtmplディレクトリ配下のテンプレートファイルに記述することができます。 - たけぞう (2004年03月25日 10時33分07秒)
- 各ページにHTMLを記述したいということであればプラグインを自作するとか、HTMLタグ挿入プラグインを使うなどの方法があります(最新版で動くかどうか未確認ですが)。ただ、このプラグインは訪問者がHTMLを記述することも可能になりますので十分に注意してください(というか公開Wikiでは使用しないほうが無難です)。 - たけぞう (2004年03月25日 10時33分29秒)
- 素早い返信ありがとうございます.確かに危険ではありますね・・・テンプレート編集の方向でいきます.ありがとうございました. - puru (2004年03月25日 10時49分48秒)
ページ内リンクのカラーについて - kokage (2004年03月22日 02時17分46秒)
素人質問で申し訳ないですが…。スタイルシートでページ全体のリンクカラー設定を行ったら、外部リンクと一部の内部リンクは設定どおりの色になっているのですが、MenuやCalendarが生成する日付のリンク部分がWindowsデフォルトの青色になってしまいます。スタイルシートのサイトを転々としてみて過去ログも調べたのですが…_no
- 自己解決しました… - kokage (2004年03月22日 03時09分43秒)
- スミマセン。僕も聞きたかったんですが、例えば、プラグイン←この文字の色はどこで設定するのですか? CSSを見ても記述が無いんですが。バックの色を変えたら非常に見づらくなってしまって…。 - ts (2004年03月27日 11時19分46秒)
- ログインしてスタイル設定→ユーザ定義スタイルで設定できます。 - たけぞう (2004年03月27日 22時40分07秒)
- ありがとうございます! - ts (2004年03月28日 11時38分15秒)
Apace2+Perl5.8環境のサーバーで動かしたい - ZON (2004年03月17日 12時44分40秒)
3.5.2からのユーザーですが、レンタルサーバーでの個人利用(Apache1.3x + Perl5.6.1)と職場LAN内部での文書処理利用(VineLinux2.6r4 + Apache1.3x + Perl5.6.x)で大変有用に活用させていただいております。
(ログイン機能などの)評価も高く、今度公開サーバーでFSwiki3.5.2を稼働させようと設置したのですが、エラーメッセージの内容が情報の少ない以下のタイプなので行き詰まっております。
Premature end of script headers: wiki.cgi Error 500
別のscriptを使って調べた範囲ではこのサーバーの環境は次のようです。
Apache/2.0.40 (Red Hat Linux) ※ RedHatのバージョンは不明 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/B.pm : 1.01 (...以下続く) ※Perl5.8.0と思われる
※次の点は確認しました。
- ファイル頭の「#!/usr/bin/perl」はサーバー指定のものになっているか……ok(動くscriptで確認)
- 行末改行は正しいか……ok(全てLFであることを確認)
- サーバーが文字エンコードを正しく扱えるか……ok(EUCコードのscriptが動作することを確認)
- 各ファイルのパーミッションは正しいか……ok(稼働しているFSwikiにならって設定)
- cgiのディレクトリは読みにいけるか……一覧表示はできないものの、ファイルが存在すれば表示される
- ※例 http :// URI /設置ディレクトリ/lib/Wiki.pm とすればファイルの内容が表示される
- 設置したものは配布物からperlのパスなど初期設定を加えただけのものです。
エラーログを取り寄せられないかと連絡していますが、いずれにせよ情報が少なすぎるので次の追試を行いました。ヒントか取っ掛かりが見つかるだけでもうれしいのですが。
- インストールされているモジュール名などを調査するscript(jisで記述)を同じディレクトリに設置……動く。パス等の情報も取得できる
- YYbbs(Kent氏配布、Jcode.plを使うタイプ)をEUC-JPに変換して設置……動く。ログも正常に書き込まれる
- (追記)FS wiki Lite0.0.9を設置してみる……動作する。
他に何か試験すべきポイントがあるでしょうか。何か見落としているような気もするのですが……
感触としてPerl5.8標準ののモジュール周りとの不具合を疑っているのですが、原因を特定できていないのでなんともいえません。環境変数を取得するスクリプトの結果が必要でしたら(実アドレスとかは伏せさせてください)添付できると思います。添付しました。
ファイル名get_env2.txt(948)※「*」の入っている部分は伏せています
※問題解決しました
何とか突破口を見つけて解決しました。「Perl5.6 Perl5.8」をキーワードにかなりGoogle廻りをした結果、「(Redhatの?)Perl5.8にはCGI.pmが含まれていない」という旨の日記や覚え書きにたどり着きました。(どうもパッケージを追加選択しないと入らないらしいです???)
このサーバーのエラーログは結局取り寄せられなかったのですが、試しに存在しないモジュールをuseするスクリプトを走らせたところ、同様の500エラーを出すことが確認できました。全部は必要ないのかも知れませんが、依存関係があるかも知れないと思ったのでCPANからCGI.pmモジュール(最新3.04)を手にいれ、./lib以下と ./lib/CGIディレクトリに追加する形でモジュールを加えて、ついでにCGI2.pmの文末に「1;」が見つからなかったので加えて、最後にwiki.cgiに「use CGI ;」を明示したところ、何事もなかったかのように作動しました。
解決してみれば簡単なことだったのですが、情報を見つけられなかったら行き詰まったままだったかもしれないです。お騒がせしました。
[ 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秒