2012-05-24 41 views
1

所以我需要一些關於從php運行ssh /命令行的幫助。使用PHP正確執行ssh /命令行

出了大門 - 是EXEC是在服務器上啓用 - 它自己專用的盒子

的設置。我創建了一個腳本,使用cpanel的api爲特定帳戶創建子域 。這一切都很好,而且一切都按預期工作。 現在 - 我們也安裝了通配符SSL。

它的長短是這樣的。在目前的情況下,如果你拉起: https://user.domain.com你只會看到該帳戶的最高根目錄, 不是它應該在的目錄。但是如果你使用它沒有https - 它應該做什麼 。現在它是一個HostGator的專用盒子,他們已經爲我安裝了這個腳本 來完成需要完成的任務 - 並且按預期工作。安裝

腳本的HostGator在位於: 在/ var /的cPanel /用戶數據/帳號/ mdssl

所以他們給我運行腳本,做線它應該做如下:

./mdssl克隆domain.com user.domain.com

所以我的問題是 - 因爲我從來沒有真正與外殼的東西 工作PHP的內部,將下面的行是如何執行的腳本一個可行的例子?

shell_exec('/ var/cpanel/userdata/account/mdssl clone domain.com user.domain.com');

還是我只需要exec命令?開場線應該有什麼不同? 我只需要使用php點擊該行並將'user'字段傳遞給它,並讓 腳本完成它的工作來克隆SSL的設置,以便通配符功能正常工作 ,並且用戶帳戶登錄到適當的位置目錄應該。

任何有識之士的讚賞! :)

非常感謝。

+0

完成!感謝您的意見。 :) –

+0

我回到我的賬戶,點擊每個問題,然後點擊「是」,這是有幫助的。這不是正確的方法嗎? –

+1

@MrTechie您點擊幫助您解決問題的特定答案旁邊的複選標記,複選標記變爲綠色,然後答案被接受。 – drew010

回答

0

我只用exec()system()

他們總是棘手,往往不會像預期的那樣。

我就開始了與

ini_set("display_errors", 1); 

exec('/var/cpanel/userdata/account/mdssl clone domain.com user.domain.com', $output); 

var_dump($output); 

看到輸出所說的話,或者如果PHP錯誤發生。

您可能還需要跳脫出來的你在與../任何默認當前目錄中,並確保apache用戶有權訪問mdssl(或任何用戶系統使用)。你可能需要sudo吧。