我的目標是: 我有一臺Windows XP個人電腦,其中包含所有源代碼和開發數據庫。 我們稱之爲「pc.dev.XP」。 我有一臺運行Linux的目標計算機。我們稱之爲「pc.demo.Linux」。 這裏就是我的「pc.dev.XP」完成(只是讓你獲得上下文):Php:從Windows運行ssh登錄到Linux並運行腳本
- 安裝的所有cygwin的東西
- 創建一個有效的RSA密鑰,並把它放在DEST 備份計算機,以便SSH不 詢問密碼
- rsync的工作得很好,這種方式
如果我試圖通過命令行來做到這一點的「pc.dev.XP」:
cd \cygwin\bin
ssh [email protected] "cd /var/www && ls -al"
這工作完全沒有問密碼 現在,這裏就是我想要做的「pc.dev.XP」:
- 推出PHP腳本,提取開發。數據庫爲SQL文件
- 壓縮這個文件
- 通過ftp把它轉移到了「pc.demo.Linux」
- 日誌以「pc.demo.Linux」和執行「解壓那麼MySQL -e」源解壓文件」
,如果我上運行 「pc.dev.XP」 手動:
putty -load "myconf" -l Fred -pw XXX -m script.file.that.unzip.and.integrates.sql
這工作完全 同樣爲:
cd \cygwin\bin
ssh [email protected] "cd /var/www && ls -al"
如果我嘗試exec()在php(wamp安裝在「pc.dev.XP」)這些腳本掛起。我很確定這是因爲用戶是「SYSTEM」而不是「Fred」,並且putty或ssh要求輸入密碼,但也許我錯了。
無論如何,我正在尋找一種方法來自動完成我描述的這4個任務,並且因爲exec()掛起而卡住了。 safe_exec_mode或safe_exec_dir指令沒有問題,它們在開發機器上被禁用,因此如果我嘗試一些基本的東西,如exec(「dir」),exec()工作得非常好。
任何想法我可以做/檢查/正確嗎?
爲什麼不使用批處理文件呢?更無憂無慮,不需要PHP。 – 2009-10-30 12:42:10