2012-03-19 3 views
5

Я попытался скомпилировать мой латексный файл в php-скрипте, но он не может позвонить xelatex.Не удается выполнить внешнюю программу через систему()?

В PHP скрипт:

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)... 

Я бегу PHP, как myuser и пройти system() абсолютный путь. И я выключу safe_mode. Почему я не могу выполнять внешние программы?

+0

Что такое chown и chgrp вашего php-файла? а также разрешение – safarov

ответ

1

Наконец-то я связался с системным администратором и нашел проблему. Машина находится в NFS, поэтому apache и оболочка входа находятся на разных машинах. На машине, где работает apache, нет xelatex.

0

Проверьте разрешение каталога, откуда вы используете PHP-код. проверьте разрешения для myuser

только для проверки попробуйте с корнем.

Надеется, что это поможет

0

Вы уверены, что это не файл «foo.tex», который он не может найти? Попробуйте сделать вывод оболочки в файл, например. system("/usr/bin/xelatex ./foo.tex > ./test.out"); и посмотрим, какую удачу вы тогда получите.

Смежные вопросы