2013-04-11 106 views
1

我現在正面臨以下問題。請幫助我。PHP exec()不能在AppServ上工作

我有兩個文件在同一目錄:test.php的test.r

test.php的

<?php 
    exec("Rscript test.r"); 
?> 

test.r

d=c(1:10); 
write.csv(d, file="test.csv", fileEncoding="utf-8"); 

q(); 

雖然我訪問test.php via chrome,它不給出test.csv

雖然它工作正常上 CMDRscript test.r,它並沒有在執行test.php的工作。

有什麼建議嗎?

感謝

+2

您是否已在PHP服務器中啓用執行選項,並且/或者您是否有寫權限? – Lemurr 2013-04-11 08:47:13

+0

您也可以嘗試http://rapache.net – daroczig 2013-04-11 08:49:16

+0

@PabloLemurr:我啓用了所有的權限,但它仍然不起作用:( – lucasKoTW 2013-04-11 09:35:17

回答

0

有幾件事情要檢查:

  • 文件的權限。將它們暫時設置爲0777以查看它是否正在工作
  • 也許exec函數被阻止。檢查php.ini(或phpinfo())爲disabled_functions
  • 第三個選項 - 是你真的總是需要考慮的 - 你的腳本中的錯誤。

快速調試!

+0

其他命令似乎沒問題!我的腳本中是否有任何錯誤? – lucasKoTW 2013-04-11 09:38:39

0

PHP/IIS將需要讀取/執行您嘗試使用您的exec()函數執行的命令的權限。

通過PHP documentation for exec() function文章。

希望它會解決你的問題。

+0

我啓用了所有權限,而其他命令不是執行R,而是執行正常工作(例如''output = exec(「ls -al」); echo $ output;') – lucasKoTW 2013-04-11 09:37:13