これが私の目標です。すべてのソースコードを含むWindowsXPPCと開発データベースがあります。それを「pc.dev.XP」と呼びましょう。Linuxを実行する宛先コンピューターがあります。それを「pc.demo.Linux」と呼びましょう。これが私が「pc.dev.XP」で行ったことです(コンテキストを取得するためです):
- すべてのcygwinのものをインストールしました
- 有効なrsaキーを作成し、それをdestバックアップコンピューターに配置して、sshがパスワードを要求しないようにします。
- rsyncはこのようにかなりうまく機能します
コマンドラインを介して「pc.dev.XP」でこれを実行しようとすると:
cd \cygwin\bin
ssh Fred@pc.demo.Linux "cd /var/www && ls -al"
これは、パスワードを要求しなくても完全に機能します。「pc.dev.XP」で実行したいことは次のとおりです。
- 開発者を抽出するphpスクリプトを起動します。データベースをSQLファイルに
- このファイルをzip形式で圧縮します
- ftp経由で「pc.demo.Linux」に転送します
- 「pc.demo.Linux」にログインし、「unzip then mysql -e"sourceunzipedfile」を実行します。
「pc.dev.XP」を手動で実行した場合:
putty -load "myconf" -l Fred -pw XXX -m script.file.that.unzip.and.integrates.sql
これは完全に機能します。同じ:
cd \cygwin\bin
ssh Fred@dest "cd /var/www && ls -al"
php( "pc.dev.XP"にインストールされているwamp)でexec()を実行しようとすると、それらのスクリプトがハングします。これは、ユーザーが「Fred」ではなく「SYSTEM」であり、puttyまたはsshがパスワードを要求しているためだと確信していますが、おそらく私は間違っています。
とにかく、私が説明した4つのタスクを自動化する方法を探していますが、exec()がハングするために行き詰まります。safe_exec_modeまたはsafe_exec_dirディレクティブには問題はありません。これらは開発マシンで無効になっているため、exec( "dir")のような基本的なものを試してみるとexec()はかなりうまく機能します。
私が何ができるか/チェックする/修正することができるか考えていますか?