Поскольку ваш сценарий выполняется из avatar
, который имеет разрешение 0777 (чтение / запись / выполнение в мире), вы можете создать внутри него файл (т. Е. * 1004).*).
Если вы не можете создавать файлы в public_html
(то есть: file_put_contents("../test.php")
), это потому, что пользователь, выполняющий ваш скрипт (скорее всего, пользователь Apache), не является владельцемpublic_html
(владелец, скорее всего, пользователь FTP).Поскольку 0755 означает, что только владелец может писать в каталог, другие могут только читать или выполнять из него.
Если у вас есть доступ к оболочке, вы можете использовать chown
чтобы изменить владельца файла:
bash-4.1.5$ chown newuser public_html
Или вы можете chmod
с более высокими разрешениями для не-владельцев, но вы должны быть осторожны с этим.