0

解决了

我弄清楚了当前用户在使用 PHP 并设法将新目录的所有者设置为执行 PHP 脚本的用户。但是,这仍然会导致问题,因为其他一些命令(用于确定当前用户是谁)不起作用。这突出表明问题在于我的 PHP 发行版被配置为安全模式。

我禁用了安全模式,Ed Manet 提供的命令允许我根据需要添加/编辑/删除文件,而无需将所有内容都设置为 777 权限的快捷方式。

谢谢您的帮助!

原帖

我有一个在服务器上存储一些数据的 Web 应用程序。这涉及在 PHP 中创建和删除目录和文件(以及修改现有文件)。我遇到的主要问题是执行此类操作所需的权限。

如果我将现有文件的权限设置为 777,那么 PHP 脚本可以很好地编辑它们(尽管我知道这不是最佳解决方案,因为它不安全)。该脚本还可以很好地创建和删除目录(当它们至少具有 777 权限时),但无论我做什么,我都无法让脚本创建文件。

我已经进行了一些搜索,看来我需要将 PHP“用户”提升为具有所需权限的用户。然而,当谈到服务器配置和权限时,我基本上是一个初学者。我将如何更改为不同的用户来执行所需的操作?是否可以执行此中间脚本并正常使用 PHPfopen()chmod()函数?或者我是否必须使用 shell 命令生成一个全新的进程,以某种方式让该外部程序以正确的权限执行?

总而言之,我需要使用 PHP 在 Web 服务器中创建、修改和删除文件/目录的新方法,方法是为文件分配足够的权限并将权限分配给 PHP 用户。我不确定如何做到这一点。

谢谢你。

4

1 回答 1

0

我要做的是将 PHP 必须在其中创建文件的文件夹的所有权更改为运行 PHP 进程的帐户。那你就不需要这么多开放权限了。

因此,如果这是一个 Linux 系统并且网络服务器由名为“apache”的用户运行:

chown -R apache /path/to/the/files

然后将权限更改为所有者读/写

chmod -R 644 /path/to/the/files
于 2012-07-06T13:32:18.583 回答