PHP Chmod创建文件时出现问题

PHP Chmod创建文件时出现问题,php,file-get-contents,chmod,open-basedir,Php,File Get Contents,Chmod,Open Basedir,我有以下情况: 公共图书馆html-755 =>阿凡达-777 =>投票-755 现在,当我使用以下代码时,我将得到一个错误(警告:file_put_contents(../test.php)[function.file put contents]:无法打开流:在XXX中的权限被拒绝): 但是当我使用下面的代码时,它就可以正常工作了: <?php file_put_contents('test.php','<?php'); ?> (均从《阿凡达》中执行,共0777页)

我有以下情况:

公共图书馆html-755

=>阿凡达-777

=>投票-755

现在,当我使用以下代码时,我将得到一个错误(警告:file_put_contents(../test.php)[function.file put contents]:无法打开流:在XXX中的权限被拒绝):


但是当我使用下面的代码时,它就可以正常工作了:

<?php
file_put_contents('test.php','<?php');
?>

(均从《阿凡达》中执行,共0777页)


如何解决这个问题?

我想即使您有0777权限,也不可能写入更高的文件夹


无法在此目录上使用chmod,您必须使用FTP或其他东西。

由于您的脚本是从具有0777权限(world read/write/execute)的化身执行的,因此您可以在其中创建文件是正常的(即:
文件内容(“test.php”)

如果您无法在
public\u html
中创建文件(即:
file\u put\u contents(../test.php”)
),那是因为执行脚本的用户(很可能是Apache用户)不是
public\u html
的所有者(所有者很可能是FTP用户)。因为0755意味着只有所有者能够写入目录,所以其他人只能从中读取或执行

如果您具有shell访问权限,则可以使用
chown
更改文件的所有者:

bash-4.1.5$ chown newuser public_html
或者您可以对非所有者使用更高权限
chmod
,但您应该小心。

“两者都是从‘阿凡达’执行的?”?您对此有多确定?是的,“execute.php”位于avatar文件夹中,具有0777权限,但public_html具有0755权限
bash-4.1.5$ chown newuser public_html