2010-06-08 70 views
1

我最近搬到我的网站到一个新的主机,现在我遇到了一些断码..PHP和权限

我有一个上传脚本,现在返回此:

move_uploaded_file()以失败开放 流:权限*否认..

我设置的上传目录777这工作得很好,但需要我的脚本有顶级权限..

(由于脚本本身设置权限的目录,做大量的复制等)

是否有Apache的一种方法,我可以将PHP脚本到我的服务器上的所有文件夹的所有者?

感谢

此外 当寻找在phpinfo()函数

apache2handler

User/Group nobody(99)/99 

这是相关的?

+0

上传的文件$ file ['tmp_name']和targetdir是否存在?是is_writable($ targetdir)? – 2010-06-08 20:07:27

回答

0

我不会去那条路线,只是给它定义upload_tmp_dir的权限,或者将upload_tmp_dir定义为你有权访问的目录。如果是那个目录,你有问题。如果目标是问题,而你已经777了,那么可怕的事情正在发生。

+0

我已777'ed它,它上传罚款..但我的脚本然后使用Chmod和重命名,也获得权限被拒绝..我需要该脚本拥有所有者权限。 – Moe 2010-06-08 00:46:27

0

你有ssh访问你的新主机吗?我问的原因是它可能不是最好的使用用户名/组作为nobody,因为大多数其他服务也会使用它。我将它更改为类似apache

然后,您可以更新httpd.conf中,添加在这两行(后重新加载配置):

User apache 
Group apache 

然后,运行chown apache:apache -R dir_name来让Apache拥有它。

0

好吧, 当您尝试设置像“0777”这样的权限时,您必须以相同的权限运行。

我的意思是。 例如,您的脚本告诉将文件夹/文件权限更改为0777,但该文件夹或文件已具有许可权,并且该权限为'0755',因此您无权进行该更改。因为用户只有5权限。

要么你需要登录到FTP并将文件夹权限更改为0777,然后完全控制它,否则你必须坚持使用0755或类似的。