【问题标题】:Getting Permission To Write a New File to a Server in PHP在 PHP 中获得将新文件写入服务器的权限
【发布时间】:2012-07-06 23:04:06
【问题描述】:

已解决

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

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

感谢您的帮助!

原帖

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

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

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

总而言之,我需要使用 PHP 在 Web 服务器中创建、修改和删除文件/目录的新方法,方法是为文件分配足够的权限并为 PHP 用户分配特权。我不确定如何执行此操作。

谢谢。

【问题讨论】:

  • 您是否尝试过将父文件夹的权限设置为 777?
  • 是的,我试过了。无论我在做什么 PHP 都拒绝创建一个新文件 - 它只是没有权限。

标签: php apache file-io file-permissions chmod


【解决方案1】:

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

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

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

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

chmod -R 644 /path/to/the/files

【讨论】:

  • 谢谢,这(连同编辑过的原帖中提到的 PHP 安全模式问题)帮助我解决了问题!
猜你喜欢
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 2015-12-31
  • 2011-11-23
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多