[PHP-users 25674] PHPからのMagicpointの起動

Kenta Tanaka tanaka05 @ ns.cradle.titech.ac.jp
2005年 5月 25日 (水) 19:01:56 JST


はじめまして。田中と申します。

私はいま「TeXをwebで」(http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX
%E3%82% 92Web%E3%81%A7)を参考に、web上のフォームに入力したMagicpoint
(≠TeX)のコマンドをPHPで処理し、スライドのウィンドウを開くようなプログ
ラムを作ろうとしています。

実際には、PHPからMagicpoint関連の処理を記述したシェルスクリプトを呼び出
しています。スクリプトは、単体でターミナルから実行すると問題なく動きま
す。また、PHPを介す場合も、スクリプトの中身がtouchなど簡単なコマンドの場
合はエラーなく終了するのですが、Magicpointは起動しません。Magicpoint関連
のコマンドラインプログラムも動きません。

実際のPHPプログラムは以下のようになっています。
# index.phpから$countとテキストを受け渡しています。
---
<?php
$count = (int)$_POST['count'];
$proga = htmlspecialchars($_POST['proga']);
if ($count > 999 || $count < 1) {
echo "<p><em>ファイル名エラー</em>: $count";
} elseif (($proga == "mgp" || $proga == "mgpnet") && $_POST['text'] != "") {
$f = fopen("work/$count.mgp", "w");
fwrite($f, $_POST['text']);
fwrite($f, "\n");
fclose($f);
echo "<p><tt>$proga $count</tt>\n";
exec("(./runmgp $count.mgp;) > /dev/null &");
echo "<p><a href=\"work/tmp.jpg.0\">スライド</a>\n";
}
else { echo "<p><em>エラー</em>: $proga\n";
}
?>
---

また、呼び出しているシェルスクリプトの中身は現時点では以下のようになって
います。

---
#! /bin/bash
cd work
nkf -jLu -O $1 tmp.mgp ;
#本当はウィンドウを開きたいけど、うまくいかないので画像に変換
mgp2ps -f tmp.ps tmp.mgp ;
convert -rotate +90 tmp.ps tmp.jpg
#mgpnet -g 640x480 tmp.mgp
---

PHPから、これらの処理を行なうことはできないのでしょうか。環境は、実験的
に私のローカルマシン(Vine 3.1)でApacheを立ち上げています。このMLのアー
カイブにもいくつか外部プログラムの呼び出しについての議論がありましたが、
それらの方法を試しても好転しなかったので質問させていただきました。よろし
くお願いします。

-- 
東京工業大学大学院 社会理工学研究科
人間行動システム専攻

田中 健太

Mail: tanaka05 @ ns.cradle.titech.ac.jp
      tanaken_1018 @ ybb.ne.jp
Web:  http://www.geocities.jp/tanaken_1018/



PHP-users メーリングリストの案内