无法让 Apache/PHP 写入目录

问题描述 投票:0回答:1

在我的 Centos 8 服务器上,下面的代码将字符串

test string
写入文件
/test/test_file.txt
并且完美运行。

shell_exec("sudo echo 'test string' > /test/test_file.txt  2>&1");

但是,当我尝试在

/
/etc
等目录上执行此操作时,文件永远不会创建。所以我去了
visudo
并添加了这个:

apache ALL=(ALL) NOPASSWD:ALL

但是我仍然无法写入像

/
/etc
这样的目录。我有什么遗漏的吗?

我需要使用 PHP 来创建这个文件。我也尝试过使用

file_put_contents
,但它也不起作用。

php apache
1个回答
1
投票

我不明白为什么有人想这样做但是....

调试此问题。

第 1 步暂时禁用 SELinux

sudo setenforce 0

第2步检查PHP用户:

<?php echo exec('whoami'); ?>

步骤 3 仔细检查 sudo 权限

<?php echo shell_exec('sudo ls /'); ?>

© www.soinside.com 2019 - 2024. All rights reserved.