PHP Chmod创建文件时出现问题
我有以下情况: 公共图书馆html-755 =>阿凡达-777 =>投票-755 现在,当我使用以下代码时,我将得到一个错误(警告:file_put_contents(../test.php)[function.file put contents]:无法打开流:在XXX中的权限被拒绝):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页)
但是当我使用下面的代码时,它就可以正常工作了:
<?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