octave是一個相容matlab語法的GNU開源科學計算軟體。我寫了一段octave腳本,在開頭指定octave為解釋器#!/usr/bin/octave
在命令列下直接執行這段腳本,是可以產生我想要的圖片的。即使用 ./octavedemo.m arg1 arg2...
而現在我想用php的系統函數例如shell_exec()去執行這段指令,卻不能生效。
為了測試是不是權限問題,我試著用shell_exec()執行了簡單的ls -l等指令,是可以成功的:
<code>$test = shell_exec("ls -l"); echo $test;</code>
js是可以接收到並在控制台列印出結果的,所以應該不是系統函數執行權限的問題。
所以想問還可能是什麼樣的情況導致的?
生成圖片比較慢所以耗時太長嗎?我已經在php.ini裡面把max_excution_time設為600了,應該夠了吧;
還是說圖片太大了,不像簡單的文本,生成不了這麼大的?
如果能提供一些經驗,就非常感謝了!
原先我是在apache的預設html目錄下,新建了個demonstrate目錄,然後把php等檔案放在這個目錄裡面了,然後我只是進入了這個目錄,對裡面的所有檔案進行了chmod 777操作。
現在試著對demonstrate目錄也賦予了777權限,然後問題就解決了。應該是不對這個目錄賦予讀寫權限,就不能在裡面產生檔案的原因。
事實證明,還是要多想清楚每一步的邏輯才能不浪費時間,感謝回答的人!
octave是一個相容matlab語法的GNU開源科學計算軟體。我寫了一段octave腳本,在開頭指定octave為解釋器#!/usr/bin/octave
在命令列下直接執行這段腳本,是可以產生我想要的圖片的。即使用 ./octavedemo.m arg1 arg2...
而現在我想用php的系統函數例如shell_exec()去執行這段指令,卻不能生效。
為了測試是不是權限問題,我試著用shell_exec()執行了簡單的ls -l等指令,是可以成功的:
<code>$test = shell_exec("ls -l"); echo $test;</code>
js是可以接收到並在控制台列印出結果的,所以應該不是系統函數執行權限的問題。
所以想問還可能是什麼樣的情況導致的?
生成圖片比較慢所以耗時太長嗎?我已經在php.ini裡面把max_excution_time設為600了,應該夠了吧;
還是說圖片太大了,不像簡單的文本,生成不了這麼大的?
如果能提供一些經驗,就非常感謝了!
原先我是在apache的預設html目錄下,新建了個demonstrate目錄,然後把php等檔案放在這個目錄裡面了,然後我只是進入了這個目錄,對裡面的所有檔案進行了chmod 777操作。
現在試著對demonstrate目錄也賦予了777權限,然後問題就解決了。應該是不對這個目錄賦予讀寫權限,就不能在裡面產生檔案的原因。
事實證明,還是要多想清楚每一步的邏輯才能不浪費時間,感謝回答的人!
php的shell_exec這個方法採用的是web的使用者權限~確定下你的那個腳本,web使用者有執行權限嗎?