Когда выбирается FS_METHOD = 'direct'?

12 апр. 2014 г., 07:02:26
Просмотры: 15.3K
Голосов: 8

Согласно WordPress Codex, FS_METHOD = 'direct' выбирается, когда это уместно.

(Основное предпочтение) "direct" заставляет использовать прямые запросы ввода-вывода файлов из PHP, что может создавать проблемы безопасности на плохо настроенных хостах. Этот метод выбирается автоматически, когда это уместно.

http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

Каковы критерии для "уместности"?

0
Все ответы на вопрос 1
1

Вот код из файла wp-admin/includes/file.php:

if ( ! $method && function_exists('getmyuid') && function_exists('fileowner') ){
    if ( !$context )
        $context = WP_CONTENT_DIR;

    // Если директория не существует (wp-content/languages), используем родительскую директорию,
    // так как мы её создадим.
    if ( WP_LANG_DIR == $context && ! is_dir( $context ) )
        $context = dirname( $context );

    $context = trailingslashit($context);
    $temp_file_name = $context . 'temp-write-test-' . time();
    $temp_handle = @fopen($temp_file_name, 'w');
    if ( $temp_handle ) {
        if ( getmyuid() == @fileowner($temp_file_name) )
            $method = 'direct';
        @fclose($temp_handle);
        @unlink($temp_file_name);
    }
}

Тест выполняет следующие проверки:

  1. Можем ли мы создать временный файл в директории wp-content или wp-content/languages?
  2. Принадлежит ли этот файл текущему пользователю Unix, то есть нет ли setuid на wp-content?

Эта проверка выполняется только если мы не указали FS_METHOD самостоятельно и если доступны необходимые файловые вызовы для проверки пункта #2. Временный файл удаляется после выполнения проверки.

17 апр. 2014 г. 01:35:21
Комментарии

мой wordpress создает много временных файлов для записи, можно ли это остановить?

D.JCode D.JCode
15 февр. 2021 г. 00:14:27