¿Cuándo se elige FS_METHOD = 'direct'?

12 abr 2014, 07:02:26
Vistas: 15.3K
Votos: 8

Según el Código de WordPress FS_METHOD = 'direct' se elige cuando es apropiado.

(Preferencia Principal) "direct" fuerza el uso de solicitudes de E/S de Archivo Directo desde PHP, lo cual puede abrir problemas de seguridad en hosts mal configurados. Esto se elige automáticamente cuando es apropiado.

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

¿Cuáles son los criterios para que sea apropiado?

0
Todas las respuestas a la pregunta 1
1

Aquí está el código de wp-admin/includes/file.php:

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

    // Si el directorio no existe (wp-content/languages) entonces usa el directorio padre
    // ya que lo crearemos.
    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);
    }
}

La prueba parece ser:

  1. ¿Podemos crear un archivo temporal en el directorio wp-content o wp-content/languages?
  2. ¿Pertenece ese archivo al usuario Unix actual, es decir, no hay setuid en wp-content?

Solo ejecuta esta verificación si no especificamos un FS_METHOD nosotros mismos, y si las llamadas necesarias al sistema de archivos para verificar el punto #2 están disponibles. El archivo temporal se elimina después.

17 abr 2014 01:35:21
Comentarios

mi WordPress crea muchos archivos temporales de escritura, ¿es posible detenerlo?

D.JCode D.JCode
15 feb 2021 00:14:27