2010-06-15 133 views
1

嘿傢伙我有一個PHP EXEC命令,在我的遠程Linux服務器上工作,但不是我的Windows(WAMP包)本地服務器。我真的想創建一個相同的工作站,以便我可以在本地進行測試,然後更新我的遠程服務器。如果任何人有任何建議或解決方案,而不是轉換爲Linux,我真的很感激它。可以通過cygwin運行php exec嗎?

<?php 

$safe_path = escapeshellarg('fake-virus.txt'); 

$command = '/usr/bin/clamscan --stdout ' . $safe_path; 

$out = ''; 

$int = -1; 

exec($command, $out, $int); 



echo $int; 



if ($int == 0) { 

    // all good; 

} else { 

    echo 'o no';// VIRUS!; 

} 





?> 
+0

你有沒有試過從C:\ wamp中的php dir運行php.exe? – meagar 2010-06-15 01:22:53

+0

我不太明白,我試圖做的,雖然是保持相同的命令,所以我不必更改代碼本地測試與遠程 – Scarface 2010-06-15 01:25:36

回答

1

我真的想創建一個相同的工作站,以便我可以在本地測試,然後更新我的遠程服務器

安裝cygwin是錯誤的方式去了解這一點。只需使用virtualbox,您可以從here獲得,並運行Ubuntu VM。更容易(和更好)。

+0

聽起來像一個好主意,我將不得不使用xampp服務器哈哈?它一直在給PDO帶來麻煩。 – Scarface 2010-06-15 01:32:40

+0

使用任何你想要的服務器。不過,Apache通常是最常見的選擇。 – 2010-06-15 02:12:07

+0

謝謝約翰欣賞它 – Scarface 2010-06-15 02:35:07

0

使用「蘇」做很酷的跨操作系統的東西時,

shell_exec('su Administrator -c "cmd/script"'); 

它並不難與Apache和PHP更Cygwin的運行它的偉大工程,爲我。這是一個非常簡單的教程cygwin-apache-php玩得開心!

-1

至少在一個實例中,我可以通過cygwin使用wamp(在windows :-))上的php的shell_exec()。我不得不在cygwin安裝程序中安裝procps或其他東西,以便在cygwin中有最高級的命令。然後,我可以使用PHP wamps到了shell_exec在http://php.net/manual/en/function.shell-exec.php執行使用Kishans建議,cygwin的top命令:

<?php 
echo $result = shell_exec("C:\cygwin64\bin\bash.exe --login -c '/cygdrive/c/cygwin64/bin/top.exe --b -n 1'"); 

?> 

/////////////////
Kisha的言論引:

如果你是在窗戶和Cygwin的,可以按如下方式使用執行了shell_exec()所有的Cygwin的二進制文件:

<? 
$result = shell_exec("C:\cygwin\bin\bash.exe --login -c '/cygdrive/c/cygwin/bin/convert.exe --version'"); 
print($result); 
?> 

的關鍵是其附加的所有要求的「--login」選項常見的cygwin二進制和李將路徑修改爲$ PATH。如果沒有這個選項,鏈接到其他庫的某些cygwin二進制文件(如ImageMagick鏈接到X11的二進制文件)將不起作用,並且您可能會看到諸如「未找到cygX11-6.dll,無法啓動convert.exe」的錯誤。

相關問題