2012-07-27 55 views
1

shell命令在終端上運行此成功的Web應用程序的目錄中:執行中的PHP

pdftohtml -c -noframes "documents/document1.pdf" 

現在我想通過PHP來做到這一點,所以我寫了一個shell.sh文件看起來像這樣:

sudo pdftohtml -c -noframes "documents/$file" 
exit 0 

然後我在PHP寫的:

$output = shell_exec("file='document1.pdf' shell.sh"); 

它不工作,我希望看到生成html文件,但我得到一些空的HTML文件..因爲命令通過終端工作正常,那麼我認爲問題是在我執行它的方式從PHP

echoing $ output does not show anything ..我做錯了什麼?

+1

'sudo'起碼需要一個密碼,不是嗎? – nickb 2012-07-27 16:44:48

+1

你是否通過'sudo'運行PHP文件,所以它獲得你之前使用的權限? – halfer 2012-07-27 16:47:05

+0

看起來''shell_exec' [參考頁](http://php.net/manual/en/function.shell-exec.php)的註釋中有一些有用的提示,特別是有關'sudo'的提及需要一個密碼,並且還有可能需要將'stderr'重定向到'stdout'('2>&1')來獲得任何輸出。 – 2012-07-27 16:47:23

回答

2

你需要指定腳本路徑(或./如果它是當前目錄):

shell_exec("file='document1.pdf' ./shell.sh") 
+0

這給了我一個''shell.sh:command not found'' 我應該在document1.pdf中得到一個每頁html文件,我只得到一個空文件 – 2012-07-27 16:59:06

+1

run'file ='document1.pdf'./ shell.sh' – 2012-07-27 17:11:49

+0

在php腳本中你也有同樣的錯誤 – 2012-07-27 17:12:12