获得在PHP中将新文件写入服务器的权限

时间:2012-07-06 13:22:41

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

解决

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

我禁用了安全模式,Ed Manet提供的命令允许我根据需要添加/编辑/删除文件,而不需要只拥有777权限的快捷方式。

感谢您的帮助!

原帖

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

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

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

我要做的是将PHP必须创建文件的文件夹的所有权更改为运行PHP进程的帐户。那么你不需要那么多地打开权限。

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

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

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

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