2012-09-04 144 views
2

我试图使用此Dagon Design PHP表单来帮助当地的非营利出版物让他们的读者提交照片。我有“邮件程序”部分工作 - 通知工作正常 - 但“将文件保存到文件夹”部分不起作用。告诉PHP将文件保存到该文件夹​​时的文件夹权限?

在表单页面,作者说“目录必须有写权限,”但我不知道“谁”被写入该文件夹 - 这是PHP脚本认为是“所有者”时,它可以节省一些我的网站?或者是否需要为所有者,组和其他人保存权限?

我不知道为什么脚本不保存照片,但这似乎是一个良好的开端。我已经triedlookingaround堆栈的答案,但大多数问题似乎与文件夹创建/权限有关。

我笨拙地试图建立的页面是here,有没有什么帮助。

回答

1

由于乔恩已经说过,你不”不想让所有人都可以写入。

也有可能(取决于主机)类似的suEXEC被采用 - 这将导致你的PHP脚本为用户运行其他比webserver的(由Dunhamzzz报道)。

可能是你最好的办法,在我看来,是一个脚本调用WHOAMI:

passthru('whoami'); 

或者你也可以尝试:

var_dump(posix_getpwuid(posix_geteuid())); 

请记住,这确实给系统信息客场世界 - 所以一旦你使用它就删除脚本!

然后,正如你已经在你的问题中正确地声称,它可能是文件的权限。

如果你有访问CLI,您可以更新权限,安全地使(第一个命令获取组)

id -n -g <username> 
chmod 770 <directory> 
chown <username>:<group> <directory> 

(您可能需要预先挂起“命令”到“CHOWN”命令上面,或找到其他方式来运行它作为“根”...,如果你卡住回复回复。)

如果你没有权限运行命令行,你可能会这样做通过一个(S)FTP客户端或类似的。恐怕这个选项有点宽泛,你必须弄清楚(或回复你正在使用的客户端!)

一如既往,YMMV。

最后,请记住,如果这是您自己的代码,人们会尝试上传PHP脚本(或更糟糕)。如果该目录可以通过公共URL访问......您将开启最大的安全漏洞! (.htaccess或非文档根目录位置是你的朋友。)

0

如果您不确定您的服务器配置如何(这会影响谁是最终文件所有者),请向任何人(chmod a+w folder)添加写入权限,上传一个文件并ls -l以查看所有者。然后,你可以调整权限,使某些用户只

0

,节省了文件的PHP脚本与服务器上的一些用户帐户的权限运行的写访问;具体帐户取决于您的操作系统和Web服务器配置。在Linux上,当PHP作为Apache模块运行时,此用户与Apache运行时的用户相同。

解决你的问题简化为确定哪些用户帐户,我们都在谈论,然后确保该用户有写权限的保存目录(作为所有者或作为该组的成员;给写访问给大家的是不最好的主意)。

0

你需要的目录的权限设置为网络服务器(Apache的可能,nginx的或similiar),因为这就是正在执行PHP的。

您可以快速找出apache用户与ps aux | grep apache,那么你要上传目录的permssions设置为用户,这样的事情:

chown -R www-data:www-data images/uploads