2012-03-19 20 views
5

phpスクリプトでラテックスファイルをコンパイルしようとしましたが、xelatexを呼び出すことはできません。 PHPスクリプトでsystem()経由で外部プログラムを実行できませんか?

system("/usr/bin/whoami"); 
system("/usr/bin/xelatex foo.tex 2>&1"); 

出力:

myuser 
sh: 1: /usr/bin/xelatex: not found 

しかし、私の端末で:

$ /usr/bin/whoami 
=> myuser 
$ /usr/bin/xelatex foo.tex 
This is XeTeX, Version 3.1415926-2.2-0.9995.2 (TeX Live 2009/Debian) 
...(successful output)... 

私はmyuserとしてPHPを実行し、system()絶対パスを渡します。そして私はsafe_modeをオフにします。なぜ私はまだ外部プログラムを実行できないのですか?

+0

あなたのchownとchgrpとは何ですか?また許可 – safarov

答えて

1

最後に私はシステム管理者に連絡して問題を発見しました。マシンはNFSにあるため、apacheとログインシェルは異なるマシンにあります。 apacheが実行されているマシンにはxelatexはありません。

0

PHPコードを実行しているディレクトリのアクセス許可を確認してください。 myuser権限を確認してください

確認のためだけにrootで試してみてください。

・ホープ、このヘルプ

0

あなたは見つけることができないファイル「foo.tex」ではないのですか?シェル出力をファイルに出力してみてください。 system("/usr/bin/xelatex ./foo.tex > ./test.out");とあなたが得た運を参照してください。

関連する問題