簡體   English   中英

PHP shell_exec() 返回不同的結果以在命令行中運行同一行

[英]PHP shell_exec() returns different result to running same line in command line

所以,我有一個 python 腳本,我使用 PyInstaller 將其“編譯”成 a.exe。 該腳本使用click作為命令行界面。 它將根據傳遞的參數返回“0”或“1”。 當通過命令行調用時,它既適用於我的開發機器,也適用於運行網站的機器。

C:\wamp64\www\nested_folders\SChecker.exe --serial="051326584"

但是當在網站上的 PHP 中調用時,傳遞的 $_serial 是從表單 POST 傳遞的:

$cmd = "C:\\wamp64\\www\\nested_folders\\SChecker.exe --serial=$_serial";
$cmd_result = shell_exec($cmd);

它總是返回“0”。 總是。 我檢查了傳遞給 shell_exec() 的傳遞的 $cmd 值,並且傳遞的值通過命令行正常工作。

非常感謝任何想法或幫助。 謝謝

所以我現在已經弄清楚發生了什么。

我首先創建了一個與 .bat 文件等效的進程,以檢查它是否來自 python 腳本。 但它仍然存在,因為事實證明發生了錯誤,但根本沒有被標記。 它是通過在調用蝙蝠的 cmd 行的末尾添加2>&1來識別的。 這讓我很高興收到“訪問被拒絕”錯誤。

這是由於該網站沒有以我的用戶身份運行,因此沒有運行該文件的權限。

暫無
暫無

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

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