Когда выбирается 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
Каковы критерии для "уместности"?

ironsand
569
Все ответы на вопрос
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);
}
}
Тест выполняет следующие проверки:
- Можем ли мы создать временный файл в директории wp-content или wp-content/languages?
- Принадлежит ли этот файл текущему пользователю Unix, то есть нет ли setuid на wp-content?
Эта проверка выполняется только если мы не указали FS_METHOD самостоятельно и если доступны необходимые файловые вызовы для проверки пункта #2. Временный файл удаляется после выполнения проверки.

Rup
4.39K
17 апр. 2014 г. 01:35:21
Похожие вопросы
3
ответов