使用参数/变量执行远程php文件

时间:2018-03-03 22:11:33

标签: php linux remote-access

我正在尝试远程运行带有变量的脚本(即“php go.php 1232”),其中go.php将目录模板复制为1232并将1232移动到/ www / client。

如果我在目标服务器上运行命令(“php go.php 1232”),一切正常。

当我运行remote_go.php时,使用至少5种不同的方式,包括shell_exec,exec,ssh2,phpseclib等,在remote_server上的/ root中创建一个文件夹,或者错误。文件夹目录永远不会复制到它应该去的地方。

尽量简单。

服务器1有“remote_go.php”

<?php
shell_exec('ssh root@987.65.43.21 sudo php /tmp/go.php 1232');
?>

(在这种情况下“变量”1232不起作用)

服务器2 - go.php

<?php
$var1 = $argv[1];
$prac_code = $argv[1];
$api = "_api";
$port = $prac_code . $api;
$source = "./api";
$dest = "./$port";
mkdir($dest, 0755);
foreach($iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source, RecursiveDirectoryIterator::SKIP_DOTS) , RecursiveIteratorIterator::SELF_FIRST) as $item)
{
if ($item->isDir())
    {
    mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }
  else
    {
    copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
    }
}
sleep(2);
path_to_file = "./$port/config/constant.php";
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace("XXXXX", $prac_code, $file_contents);
file_put_contents($path_to_file, $file_contents);
exec('scp -r ' . $port . ' /www/client');
exec('rm -rf *_api') ?>
?>

0 个答案:

没有答案