运行 shell 来自 php 文件的脚本无法在 CWD 之外创建/写入/删除文件
Running shell script from php file cannot create / write / remove files outside of CWD
当我想在
PHP 脚本的当前工作目录...但尝试使用绝对路径在 CWD 之外创建/写入/删除文件不起作用。
Shell 脚本 - 位于/home/tt4mc/scripts/
#!/bin/sh
echo "logging" > /home/tt4mc/scripts/log.log
touch /home/tt4mc/scripts/test.log
PHP 文件 - 位于 /home/tt4mc/admin/
<?php
shell_exec("/home/tt4mc/scripts/script.sh");
上面的不行...两个文件都是0775权限localuser:apache
...请注意,当 PHP 文件中的 运行 时,shell 脚本中的所有其他操作都有效...我认为这一定与文件权限有关,因为它们只不起作用的操作与创建/写入/删除文件有关。
注意:我运行以 apache 用户身份运行 PHP 脚本。
编辑
正如@msg 在下面的评论中指出的那样,重要的是要知道这些脚本位于不同的目录中,并且这些操作将在 PHP 脚本的当前工作目录中执行……这些文件将被创建/写入/删除那个cwd ...但我无法让它在任何其他目录中工作。
/home/tt4mc/admin/ 拥有 localuser:apache 0775 权限
/home/tt4mc/scripts/ 拥有 localuser:localuser 0775 权限
当 运行 来自浏览器的 php 脚本以 apache 用户身份执行时...因此无法写入。
当我想在 PHP 脚本的当前工作目录...但尝试使用绝对路径在 CWD 之外创建/写入/删除文件不起作用。
Shell 脚本 - 位于/home/tt4mc/scripts/
#!/bin/sh
echo "logging" > /home/tt4mc/scripts/log.log
touch /home/tt4mc/scripts/test.log
PHP 文件 - 位于 /home/tt4mc/admin/
<?php
shell_exec("/home/tt4mc/scripts/script.sh");
上面的不行...两个文件都是0775权限localuser:apache ...请注意,当 PHP 文件中的 运行 时,shell 脚本中的所有其他操作都有效...我认为这一定与文件权限有关,因为它们只不起作用的操作与创建/写入/删除文件有关。
注意:我运行以 apache 用户身份运行 PHP 脚本。
编辑
正如@msg 在下面的评论中指出的那样,重要的是要知道这些脚本位于不同的目录中,并且这些操作将在 PHP 脚本的当前工作目录中执行……这些文件将被创建/写入/删除那个cwd ...但我无法让它在任何其他目录中工作。
/home/tt4mc/admin/ 拥有 localuser:apache 0775 权限
/home/tt4mc/scripts/ 拥有 localuser:localuser 0775 权限
当 运行 来自浏览器的 php 脚本以 apache 用户身份执行时...因此无法写入。