我遇到了一个问题,我正在尝试使用ssh远程执行php文件。 php文件应该生成一个json文件,并回显“hi”。它回显“hi”但从不创建JSON文件。
所有文件和目录都设置为-rwxrwxrwx或drwxrwxrwx。只有两台服务器上的用户名都是“root”。应用服务器的PW预先保存在主服务器上。
主服务器
ssh root@xxx.xxx.xxx.xxx 'php /test/example/makeconfig.php'
Application Server
makeconfig.php
<?php
$return_arr = array('ID' => 50, 'password' => "testpassword");
$json_data = json_encode($return_arr);
file_put_contents("config.json", $json_data);
echo "hi";
?>
我从控制台中的主服务器运行代码。它将在主服务器的控制台屏幕上输出“hi”,但是当我转到应用程序服务器时,它不会创建文件“config.json”。如果我运行命令
php /test/example/makeconfig.php
在应用程序服务器上,它将输出“hi”并创建config.json文件。
我只是不确定如果从远程服务器执行php文件,配置文件将无法创建。 感谢您的高级帮助。
答案 0 :(得分:0)
大家好,谢谢你的帮助,但我在检查帖子之间修好了。我通过将“file_put_contents”更改为绝对路径来修复它。
<?php
$return_arr = array('ID' => 50, 'password' => "testpassword");
$json_data = json_encode($return_arr);
file_put_contents("/test/example/config.json", $json_data);
echo "hi";
?>
一个多月以来,我一直在挑战我。东西这么小。谢谢你的意见。我非常感激。