LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

xpWiki (D3 PukiWiki)

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2007/7/3 9:59
bokanta  2nd Class 居住地: ☆☆  投稿数: 28
mantaさん、nao-ponさん、こんにちは

3.0.0リリースおめでとうございます。早速バージョンアップしました。setup.cgiでのhtml側のアップデートは極めて便利でした。早速ですが便乗で質問させてください。

xpwikiで数式、という記述を読んでそれはいいと自分でもやってみました。使用したのはmimetex.cgiというTeX形式の数式をgifで描画してくれるというアリガタイものと、それをPukiWikiで使用するためのプラグインです。mimetex.cgiは

http://www.forkosh.com/mimetex.html

から、mimetex用プラグインは

http://www.moge.org/okabe/temp/mimetex.inc.php.txt

にありました。mimetex.cgiのほうはきちんと動くので、imgタグで囲めばhtmlの中には取り込めるようになりました。ただ、mantaさんの書かれているように、プラグインの変換がうまくいきません(もちろん、最後のtxtはとってEUC-JP/LFのファイルにしてあります)。xpWikiの管理画面のPukiWiki→xpWikiプラグイン変換ツールを使っているのですが、Convertのボタンを押すと画面が真っ白になってしまいます。

結局、TRUST側のdefault.ini.phpをいじって、$マークで挟んだときにmimetex.cgiを呼び出すようにしました。

nao-ponさんのサイトを見る限りでは、とくにこのプラグイン変換ツール関係でのトラブルはないようなのですが…。ツールがうまくいかなかったときに、手でどのあたりをいじればいいかをどこかに記述していただければ有り難いです。

環境:
XOOPS Cube 2.1.1
xpWiki 3.0.0
チカッパをつかっています
http://www.xugj.org/modules/pukiwiki/?%A5%EC%A5%F3%A5%B5%A5%D0%CA%FC%CF%B2%B5...
投票数:5 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007/7/3 10:35
etupirka  1st Class 居住地: ぼやぼやしてたら2年目突入  投稿数: 50
mantaさん、nao-ponさんこんにちは。

引用:

mantaさんは書きました:
ちなみにxpWikiでは"プラグイン変換ツール"というのがあるのですが、いろいろ試しましたがいつも真っ白になってしまいます・・

拡張子.phpのファイルがアップロードされたからProtectorが作動したのでしょう。
Protectorの一般設定を見てください。
投票数:5 平均点:8.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2007/7/3 11:07
bokanta  2nd Class 居住地: ☆☆  投稿数: 28
etupirkaさん、こんにちは

引用:

etupirkaさんは書きました:
拡張子.phpのファイルがアップロードされたからProtectorが作動したのでしょう。Protectorの一般設定を見てください。

おおお、そうだったのか。たしかに、Protectorのログに「Attempt to multiple dot file」と出ています。Protectorの一般設定で「実行可能ファイルアップロードによる強制終了」をOFFにすると … xpWikiのプラグイン変換ツールがうまく動きました!

ありがとうございます

Protectorの威力も実感しました…
投票数:4 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007/7/3 16:06 | 最終変更
nao-pon  Lieutenant   投稿数: 486
皆さま、早速のバージョンアップありがとうございます。

まとめてのレスにて失礼します。

引用:
何を血迷ったか3.00になったことだし、古いモジュール(v2.20)は一度全部(html/trust側とも)消してそこに新しい3.00をコピってアップデートをかければいいかなと安易に考えやってしまいました・・
(データは全てMySQL上にあると思っていたので・・)
案の定トップ画面から記事が表示できなくなってしまいました・・

manta さん、文字通り「サー」と青くなられたことでしょう。
XOOPSの多くのモジュールは、データをデータベースに保存しているので、もしかすると他にも同じような経験をされた方もお見えになるかも知れませんね。
xpWiki では、ページ増加時のページ一覧とか検索時のパフォーマンスを考えて、ページ情報はデータベースに保存していますが、肝心の基本データーは、ファイルベースで保存しています。完全にデーターベース保存に移行させようかとも考えましたが、シェルからのテキスト一括置換など有益な部分もかなりありますので、現状の形になっています。
そのあたりのことを、README に書いておいたほうがよさそうですね。

mantaさん、bokanta さんのプラグインコンバートが真っ白になる件は、etupirka さんがビンゴ!ですね。

そこで、もう一つ Tips を。

Protector にて、「実行可能ファイルアップロードによる強制終了」をOFFにするのは、大きなリスクが伴います。

プラグインコンバーターに通すファイルの拡張子は、.php には限りません。なので、hogehoge.inc.php.txt(修正) hogehoge.txt とかでもノンプロブレムなので、お試しください。
投票数:7 平均点:7.14
前の投稿 - 次の投稿 | 親投稿 - | 投稿日時 2007/7/4 2:24
manta  2nd Class   投稿数: 12
みなさま、

私も画面真っ白の原因はprotectorの設定によるものでした
ありがとうございます

ちなみに私のところで使っているMathプラグインです
ご興味のあるかたはどうぞ(あくまで私の環境で動作しているもので保証の限りではありませんが・・)

前提としてpLaTeX一式が必要です
Debianでは"ptex-bin"で必要なものは一式インストールできます(ただ120Mを超えますが・・)
あと追加で"dvips","imagemagick"が必要です

<?php
define( "IMG_DIR", "./image/mathimg/" );
define( "IMG_EXT", ".gif" );
 
class xpwiki_plugin_math extends xpwiki_plugin {
function make_math_img($aryargs){
        $math = join($aryargs,",");
        $math = rtrim($math, ",");
        $imgfile = md5($math).IMG_EXT;
        if(!file_exists(IMG_DIR.$imgfile)){
                $tmpfile=IMG_DIR."tmp.tex";
                $tmp=fopen($tmpfile,"w");
                fputs($tmp,'\documentclass[12pt]{article}'."\n");
                fputs($tmp,'\oddsidemargin=0in'."\n");
                fputs($tmp,'\textwidth=6.5in'."\n");
                fputs($tmp,'\topmargin=0in'."\n");
                fputs($tmp,'\textheight=609pt'."\n");
                fputs($tmp,'\parskip=14pt'."\n");
                fputs($tmp,'\setlength{\unitlength}{0.5cm}'."\n");
                fputs($tmp,'\pagestyle{empty}'."\n");
                fputs($tmp,'\begin{document}'."\n");
                fputs($tmp,'\Large\['.$math.'\]'."\n");
                fputs($tmp,'\end{document}'."\n");
                fclose($tmp);
                $oldDir=getcwd();
                chdir(IMG_DIR);
                exec("/usr/bin/platex tmp.tex");
                exec("/usr/bin/dvips -q -E -o tmp.eps tmp");
                exec("/usr/bin/convert -trim tmp.eps tmp_".IMG_EXT);
                exec("/usr/bin/convert -transparent white tmp_".IMG_EXT." tmp".IMG_EXT);
                exec("mv tmp".IMG_EXT." ".$imgfile);
                exec("rm tmp*");
                chdir($oldDir);
        }
        return "<IMG SRC=".IMG_DIR.$imgfile." alt=\"a math image\"".">";
}
 
function plugin_math_convert()
{
        $aryargs = func_get_args();
        return "<blockquote>" . $this->make_math_img($aryargs) . "</blockquote>";
}
 
function plugin_math_inline()
{
        $aryargs = func_get_args();
        return $this->make_math_img($aryargs);
}
 
}
?>

プラグインの配置:
XOOPS_TRUST/modules/xpwiki/plugin/math.inc.php
数式イメージの配置:
XOOPS_ROOT/modules/xpwiki/image/mathimg/...gif
(xpwiki/imageディレクトリにmathimgディレクトリを作成しておく)

使い方の例(wikiでの記述例):
(例1)
#math(\sqrt{x^2+y^2}=z^2)
(例2)
これは&math(\sqrt{x^2+y^2}=z^2);です。
投票数:7 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2007/7/4 3:58
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
ちょっとだけ。

引用:

おおお、そうだったのか。たしかに、Protectorのログに「Attempt to multiple dot file」と出ています。Protectorの一般設定で「実行可能ファイルアップロードによる強制終了」をOFFにすると

*.php をDocumentRoot下に拡張子そのままでアップロード出来てしまう、という致命的な穴を持ったモジュールは意外とあります。(私がざっと確認した限り、おそらくSmartSectionもそれに該当します。本家のファイルアップロード機能付モジュールって、全滅に近いかも)

それを防ぐためにも、この設定はOffにしない方がいいとは思います。

なお、この設定がOnだと、hogehoge.inc.php.txt みたいなファイル名でも、今度は、multiple dot で弾かれると思います。

というのも、.txtの代わりに、
hogehoge.inc.php.hoge
みたいな、ApacheがMIME-Typeを認識しない拡張子だと、その次の.phpを見て、PHPを実行してしまうからです。

Protector側でモジュール毎にOn/Offできるような設定をつければいいのかもしれませんが、出来れば、nao-ponさんの方で、拡張子php以外かつ複数dotなしでもアップロードできるようにしていただけると、助かります。

xpWikiのために、Protectorのこの設定をOff推奨とされると、それだけで脆弱性が露呈してしまうモジュール(つまりはサイト)が結構ありそうですから。
投票数:3 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2007/7/4 8:04
nao-pon  Lieutenant   投稿数: 486
引用:
Protector側でモジュール毎にOn/Offできるような設定をつければいいのかもしれませんが、出来れば、nao-ponさんの方で、拡張子php以外かつ複数dotなしでもアップロードできるようにしていただけると、助かります。

私の出した例が悪かったです。

実際は拡張子は何でもよいので、hogehoge.txt でも OK です。
投票数:4 平均点:7.50
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/2/7 18:55
ogohiro  3rd Class   投稿数: 2
bokantaさん、皆さん、こんにちは。

xpwikiにmimetexプラグインを導入しようとしているのですが、うまく機能せずに困っています。
色々なサイトを参考にして試行錯誤したのですが、うまく機能せずヘルプをお願いしたいです。

【当方の環境は以下の通りです。】

・xoops  2.0.16aJP
・xpwiki 3.61.1
・サーバ さくらインターネットスタンダードプラン


【方法は以下のようにしました。】

■まず、mimetex.cgiを下記のように設置しました。

?
http://www.forkosh.com/mimetex.html
より、QuickBuildの下のほうにある FreeBSD (i386)用のファイルをダウンロード
?
バイナリモードでサーバにアップ。ディレクトリは、wwwの下にcgiというフォルダを作成してその中にアップしました。
?
パーミッションを755に変更

その後、<img src="サイトURL/cgi/mimetex.cgi?f(x)=5x+10">のようにアクセスしたら、無事画像が出ましたので、mimetex.cgiは正常に作動していると思われます。


■次に、mimetex.inc.phpを下記のように設置しました。

?
http://lsx.sourceforge.jp/?Plugin%2Fmimetex.inc.php#s5a5115d
より、ファイルをダウンロード
?
自分のサイトのxpwiki管理画面より、「プラグイン変換ツール」を使って変換したものを一旦、ローカルマシンに保存。
?
そのファイルを開いて、
defined('MIMETEX_PATH') or define('MIMETEX_PATH', 'http://www.forkosh.dreamhost.com/cgi-bin/mimetex.cgi');
の部分を、
isset($this->cont['MIMETEX_PATH']) or $this->cont['MIMETEX_PATH'] = 'http://サイトURL/cgi/mimetex.cgi';
に変更して、エンコード、EUC LFで保存。
?
xoops_trust_path/modules/xpwiki/pluginにアップロード

その後、サイトのxpwikiにて、#mimetex( f(x)=5x+10 )のように記入して、ページの更新を押したところ、
「このページから移動します。よろしいですか?編集内容を保存していません」という画面が出てしまい、「OK」を押すと、画面が真っ白になってしまいます。

同じような現象は、xpwikiのイベント通知機能をONにして普通に編集した際にも現れたため(具体的には、更新するたびに、更新の衝突になってしまいます。)イベント機能も現在OFFにしてあります。


※Protectorモジュールの設定、
「実行可能ファイルアップロードによる強制終了」は「いいえ」にしてあります。


mimetex.cgiは機能しているようなので、mimetex.inc.phpの設定などがうまくいっていないのでしょうか?他にやるべきことなどありましたら教えて頂きたく思います。
よろしくお願いします。
投票数:2 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/5/6 22:31
tanu  3rd Class   投稿数: 1
ogohiroさん、みなさん今日は。かなりの間が開いてますが...

私は全くの素人に近い状態で、よちよちサイトを構築しています。勘違いしているかもしれませんが、一応回避できたので、報告します。

私も以前mimetexプラグインのあるサイトで非常に便利に使っていたものですから、自分でも使ってみたい思い、いろいろ試したのですが、やはり画面真っ白になってしまって途方にくれていました。

試行錯誤の結果以下でうまくいきました。

1.okabe氏のサイトのページ後半、インストールの項目からダウンロードできるソースを利用する。

2.そのまま変換ツールにかけてもうまく変換できないので、ファイル先頭部分を以下のように修正する。

これを→ <?php // -*- php -*- $Id: mimetex.inc.php,v 1.1 2007/01/17 12:59:02 okabe Exp $

このように↓

<?php
// -*- php -*- $Id: mimetex.inc.php,v 1.1 2007/01/17 12:59:02 okabe Exp $

つまり、先頭行にコメントが含まれていると変換してくれないらしいです。

3.変換ツールにかけて、mimetex.cgiのパスを2箇所変更する。

4.pluginディレクトリにアップロードしてパーミッションを適切に変更

以上で、たぶん、インラインもブロックもいけるはずと思われます。

ただ、この方法だと、キャッシュ機能は内蔵していないらしいのですが、実際に使ってみると、速度的にそんなに遅いとも思えないので、快適につかっています。

とりあえずですが。
投票数:4 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/5/27 16:18 | 最終変更
ogohiro  3rd Class   投稿数: 2
tanuさん、情報ありがとうございます!
また、返信遅れてしまってごめんなさい。

tanuさんから教えて頂いたとおりに、mimetex.inc.phpを変換&設置したところ、問題なくxpwikiにmimetexプラグインを導入することができました!!かなり悩んでいたので情報を書き込んで頂いて本当にありがたかったです。

今後、同じような状況になった人のために、まとめを書き残しておきます。


【xpwikiにmimetexプラグインを導入する方法】

※以下の環境における方法です。
・xoops  2.0.16aJP
・xpwiki 3.61.1
・サーバ さくらインターネットスタンダードプラン



■まず、mimetex.cgiを下記のように設置する。

1.
http://www.forkosh.com/mimetex.html
より、QuickBuildの下のほうにある FreeBSD (i386)用のファイルをダウンロードする。

2.
バイナリモードでサーバにアップ。ディレクトリは、wwwの下にcgiというフォルダを作成してその中にアップする。

3.
パーミッションを755に変更

※その後、<img src="サイトURL/cgi/mimetex.cgi?f(x)=5x+10">のようにアクセスしてみる。
無事画像が出たら、mimetex.cgiは正常に作動しているということです。


■次に、mimetex.inc.phpを下記のように設置する。

1.
okabe氏のサイトのページ後半、インストールの項目の「プラグイン」にあるソースをコピペして、 mimetex.inc.php としてローカルに保存する。

2.
そのまま変換ツールにかけてもうまく変換できないので、ファイル先頭部分を以下のように修正する。

これを→ <?php // -*- php -*- $Id: mimetex.inc.php,v 1.1 2007/01/17 12:59:02 okabe Exp $
このように↓
<?php
// -*- php -*- $Id: mimetex.inc.php,v 1.1 2007/01/17 12:59:02 okabe Exp $

※つまり、先頭行にコメントが含まれていると変換してくれないらしいです。

3.
xpwiki管理画面より、「プラグイン変換ツール」を使って変換したものを一旦、ローカルマシンに保存する。

4.
mimetex.inc.phpのソース中にある、mimetex.cgiのパスを2箇所を "/cgi/mimetex.cgi" という風に自分がmimetex.cgiを設置したパスに変更する。

5.
mimetex.inc.phpを、サーバ上、
xoops_trust_path/modules/xpwiki/pluginへアップロードする。

※xpwikiのおいて、
#mimetex( f(x)=5x+10 )

&mimetex(\sqrt{x^2+y^2});
などと、入力してみる。
うまく、数式が表示されれば、設置完了です。


こんなに簡単に、複雑な数式が表現できるのは、ありがたい限りですね。
情報をいただきましたtanuさん、本当にありがとうございました。
投票数:4 平均点:10.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities