Одна вещь, которую вы можете сделать, чтобы сделать файл читаемым / доступным для записи, - это вызвать эту функцию при создании файла / папки без второго аргумента:
function AutoChmod($path, $chmod = null)
{
if (file_exists($path) === true)
{
if (is_null($chmod) === true)
{
$chmod = (is_file($path) === true) ? 644 : 755;
if (in_array(get_current_user(), array('apache', 'httpd', 'nobody', 'system', 'webdaemon', 'www', 'www-data')) === true)
{
$chmod += 22;
}
}
return chmod($path, octdec(intval($chmod)));
}
return false;
}
Пример:
AutoChmod('/path/to/file/you/just/created.txt');
Эта функция дает соответствующее разрешение независимо от того, работаете вы с SuPHP / SuExecPHP или нет.
Для проверки прав доступа достаточно использовать функции is_readable()
и is_writable()
.