2012-03-19 2 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

PHP 파일의 chown 및 chgrp는 무엇입니까? 또한 허가 – safarov

답변

1

마지막으로 시스템 관리자에게 연락하여 문제를 발견했습니다. 시스템이 NFS에 있으므로, apache 및 로그인 쉘이 서로 다른 시스템에 있습니다. 아파치가 실행중인 시스템에는 xelatex이 없습니다.

0

PHP 코드를 실행중인 디렉토리의 허가를 확인하십시오. myuser 권한을 확인하십시오.

확인을 위해 루트로 사용해보십시오.

희망이 도움

0

는 당신이 그것을 찾을 수 없습니다 파일 'foo.tex'아니다 확실합니까? 파일에 쉘 출력을 시도해보십시오. system("/usr/bin/xelatex ./foo.tex > ./test.out"); 그리고 당신이 얻은 행운을보십시오.

관련 문제