运行 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 用户身份执行时...因此无法写入。