2013-03-20 5 views
2

exec() GhostScript가 필요한 라이브러리를 사용하려고하는데 MAMP 서버에서이를 수행하지 못합니다. ,PHP exec()가 GhostScript를 실행할 수 없습니다.

<?php 
$cmd = "..."; 
$output = array(); 
exec($cmd, $output) 
echo $output[0]; 
?> 

우선은 'whoami'$cmd을 설정 한 그것은 작동하고 PHP와 터미널 (사용자 이름)에서 동일한 결과를 제공합니다 : 나는 테스트를 실행 코드의 작은 조각을 작성했습니다.

그런 다음 '/usr/texbin/latex --version'으로 시도했지만 제대로 작동합니다.

하지만 '/opt/local/bin/gs --version'으로 시도하면 터미널에서 작동하지만 실패합니다.

그것은 PATH 문제 또는 아파치 인증 문제 (내가 지금까지 읽은 것 중 일반적인 용의자)가 아니기 때문에 아이디어가 부족합니다.

미리 감사드립니다.

+0

safe_mode가/설정은 safe_mode_exec_dir가 나를 위해 일한? http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir –

+0

은 인증 문제와 비슷합니다. 왜 PHP 파일의 폴더에 심볼릭 링크를 만들고 올바른 권한을 부여하려고하지 않습니까? – ITroubs

+0

@MichaelMacDonald : PHP 5.4.10에 있으므로 더 이상 존재하지 않습니다. @ITroubs : 내 파일이있는 디렉토리에서'ln -s/opt/local/bin/gs gs'를 만들었지 만 인증을 변경하는 방법을 모르겠습니다. – arnaudrg

답변

-2
Try this. 

ini_set('display_errors', 1); 
$pdf='test.pdf'; 
$quality=90; 
$res='300x300'; 
$exportName="pdf_export_" . time(); 
$exportPath=realpath(dirname(__FILE__))."/$exportName/fullres/%03d.jpg"; 

mkdir(realpath(dirname(__FILE__))."/$exportName"); 
mkdir(realpath(dirname(__FILE__))."/$exportName/fullres"); 

set_time_limit(900); 
exec("'gs' '-dNOPAUSE' '-sDEVICE=jpeg' '-dUseCIEColor' '-dTextAlphaBits=4' '-dGraphicsAlphaBits=4' '-o$exportPath' '-r$res' '-dJPEGQ=$quality' '$pdf'",$output); 
+1

-1이라는 것을 알지 못했을 때, 당신은 당신의 저작이 원저자에게 귀속되어야한다고 생각합니다 : http://www.veryinteractivepeople.com/?p=521 – Dan

0

몇 년되었지만 어쨌든. 나는 오늘 같은 문제를 겪었다. (우분투 14.4에서 PHP exec()를 사용하여 고스트 스크립트를 실행하려했으나, mamp가 아니라 아파치, php, tesseract, ghostscript 등의 설치가 별도로 필요했다.) bash를 작성하여 문제를 해결했다. 쉘 스크립트를 사용하여 gs를 매개 변수로 실행 한 다음 PHP 스크립트 (exec)를 사용하여 sh 스크립트를 실행합니다.

내 bash 쉘 스크립트의 행 :

gs -dBATCH -dNOPAUSE -r300 -sDEVICE=jpeg -sOutputFile=/var/www/html/ykinv/jpg/${theFile} 

그리고 내 PHP 스크립트에서 PHP 간부 행 :

exec("sh pdf2jpgConversion.sh"); 

스크립트 모두 같은 폴더에 있습니다. 보다는 exec

0

shell_exec

+1

[다음과 같은 점을 고려해보십시오. 대답?] (http://stackoverflow.com/help/how-to-answer) – hassan

관련 문제