簡體   English   中英

為什么這個帶有 shell_exec 調用的 PHP 腳本從 Windows 10 的命令行運行,而不是瀏覽器/本地主機?

[英]Why does this PHP script with a shell_exec call run from the command line in Windows 10, but not the browser/localhost?

我在 Windows 10 上使用 XAMPP,並嘗試運行一個簡單的 PHP 腳本,該腳本使用shell_exec函數在同一目錄中調用一個簡單的 R 腳本。 這是 PHP index.php文件:

<?php

    echo shell_exec('Rscript test.R');

這是test.R文件:

print("Hello, World!")

從命令行(即 Windows 版 Git),當我在文件夾中運行php index.php時,我得到以下輸出:

[1] "Hello, World!"

但是,當我通過 XAMPP 和localhost從 Web 瀏覽器運行index.php時,我在頁面上看不到任何內容。 起初,我認為這可能是權限問題,所以我給了文件夾上所有用戶的完全控制訪問權限,但它似乎沒有改變任何東西。

關於如何從瀏覽器獲得此功能的任何想法? 謝謝你。

找到了我遇到的問題的答案。 顯然,即使Rscript是我的 Windows 10 PATH變量的一部分,當我嘗試通過 PHP 中的shell_exec執行 R 腳本時,我必須擁有 Rscript 可執行文件的整個路徑(我猜是因為 PHP 腳本/Apache 服務器沒有) t 知道路徑變量)。

我按如下方式更改了shell_exec函數調用,它起作用了:

echo shell_exec('"C:\Program Files\R\R-4.1.0\bin\Rscript" test.R');

這是幫助我解決這個問題的 SO 帖子的鏈接:

shell_exec 不會從瀏覽器請求中執行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM