我的目标是: 我有一台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