2011-10-14 123 views
3

我最近在我大學的以太網連接上安裝了帶有Apache設置的筆記本電腦。現在我可以從任何地方連接到我的電腦,只要我有IP地址或主機名(我可以選擇)。現在我想創建一個基於Web的命令提示符,讓我可以從任何設備上在我的筆記本電腦上運行命令。無法在PHP中運行「cd」命令shell_exec()

一個問題是我無法運行「cd」命令。我有我的PHP腳本設置,因此它可以運行由換行符分隔的一系列命令。所以我運行「cd ../」然後「pwd」,但它仍然在我的Web應用程序的根目錄中。我該如何解決?

+0

爲什麼down-vote Q? – Znarkus

+0

雖然我並沒有自陷,但我認爲它發生了,因爲對於很久以前解決的問題來說,這是一個非常不安全的解決方法:只使用SSH。 SSH可在Mac,Android,Linux,BSD上使用......如果您使用的是Windows,請使用putty,這是一個小小的下載。 – unhammer

回答

10

我認爲你必須改變當前進程/腳本的目錄。你可以用chdir來做到這一點。然後你可以運行shell_exec

我假設你意識到嚴重的安全關係到你的解決方案創建...

+0

謝謝你回答這個問題,同時也提出了安全問題。如果沒有真正的幫助,人們往往會說「這是不安全的,不要這樣做」。這是一個令人耳目一新的變化。 –

12

如果你這樣做:

shell_exec("cd .."); 
shell_exec("pwd"); 

那麼第二個命令將一個新的外殼,具有相同執行作爲第一個啓動目錄,因爲它是當前PHP的子進程。

使用第一個shell exec更改當前目錄不會持續到第二個。這樣一系列依賴的shell命令只能同時執行:

shell_exec("cd .. ; pwd"); 
+0

用popen可以打開/ bin/bash並用fwrite命令發送嗎? –