以下是PHP文件的内容:
<?
file_put_contents('test.txt', 'stuff');
echo 'complete';
?>
我称之为test.php
,它位于/mnt
。它有777权限。现在我进入SSH,并执行:sudo /usr/bin/php /mnt/test.php
。我收到了脚本底部的complete
消息。现在,我进入/mnt
。 Text.txt不存在。是什么给了什么?
答案 0 :(得分:2)
正确的代码是:
file_put_contents(__DIR__.'/test.txt', 'stuff');
echo 'complete';
否则,php将文件写入“当前工作目录”,而不是放在
的位置答案 1 :(得分:1)
您尚未指定路径,因此您将stuff
放入当前工作目录中的text.txt
。在运行cd
之前,这将是您sudo
的目录(或新shell的默认目录),而不是PHP脚本所在的目录。
答案 2 :(得分:0)
更改代码以包含绝对路径,如下所示:
file_put_contents('/mnt/test.txt', 'stuff');
其他,PHP只会将文件写入工作目录(通常是/home/user
)