我想使用一個需要exec()GhostScript的庫,但它無法在我的MAMP服務器上這樣做。我寫這一小段代碼,運行測試:PHP的exec()不能運行GhostScript
<?php
$cmd = "...";
$output = array();
exec($cmd, $output)
echo $output[0];
?>
首先,我設置$cmd
到'whoami'
和它的工作原理,並給出了相同的結果在PHP和終端(我的用戶名)。
然後我試着用'/usr/texbin/latex --version'
,它也能正常工作。
但是,當我嘗試'/opt/local/bin/gs --version'
,它失敗,而它在終端工作。
在我看來,它既不是一個PATH問題,也不是一個Apache授權問題(我迄今爲止讀到的通常的嫌疑人),所以我沒有想法。
在此先感謝!
是的safe_mode/safe_mode_exec_dir之設定? http://www.php.net/manual/en/ini.sect.safe-mode.php#ini.safe-mode-exec-dir – 2013-03-20 17:58:05
看起來像授權問題給我。你爲什麼不嘗試在你的PHP文件的文件夾中做一個符號鏈接,並給它正確的授權 – ITroubs 2013-03-20 17:58:18
@MichaelMacDonald:我在PHP 5.4.10,所以這些不再存在。 @ITroubs:我從我的文件所在的目錄中創建了一個'ln -s/opt/local/bin/gs gs',但我不確定如何更改授權? – arnaudrg 2013-03-20 18:12:48