Вы уверены, что ваш скрипт работает в правильном каталоге?
Если это не так, то имя файла, которое вы передаете, скорее всего, не существует, и именно поэтому is_writable()
возвращает false.Используйте getcwd()
, чтобы распечатать каталог, в котором работает скрипт (можете установить его с помощью chdir()
) или использовать абсолютные имена файлов.
РЕДАКТИРОВАТЬ: просто, чтобы подвести итог обсуждению ниже:
- Попробуйте абсолютный путь: Nope
- Проверьте open-basedir в php.ini и httpd.conf: Nope
- Попробуйте префиксировать путь с помощью
$_SERVER['DOCUMENT_ROOT']
: Нет - getmyuid () возвращает владельца файла сценария, а не владельца процесса. Проверьте несоответствие владельца файла и пользователя процесса с помощью
posix_getpwuid(posix_geteuid())
: Да, причина проблемы