Quando viene scelto FS_METHOD = 'direct'?

12 apr 2014, 07:02:26
Visualizzazioni: 15.3K
Voti: 8

Secondo il codice di WordPress FS_METHOD = 'direct' viene scelto quando è appropriato.

(Preferenza primaria) "direct" forza l'utilizzo di richieste di File I/O dirette da PHP, questo può aprire problemi di sicurezza su host configurati male, viene scelto automaticamente quando appropriato.

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

Quali sono i criteri per essere appropriato?

0
Tutte le risposte alla domanda 1
1

Ecco il codice da wp-admin/includes/file.php:

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

    // Se la directory non esiste (wp-content/languages) usa la directory genitore
    // poiché la creeremo.
    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);
    }
}

Il test sembra verificare:

  1. Possiamo creare un file temporaneo nella directory wp-content o wp-content/languages?
  2. Il file appartiene all'utente Unix corrente, ovvero non c'è setuid su wp-content?

Esegue questo controllo solo se non abbiamo specificato un FS_METHOD noi stessi, e se sono disponibili le chiamate di filesystem necessarie per verificare il punto #2. Il file temporaneo viene eliminato al termine.

17 apr 2014 01:35:21
Commenti

il mio wordpress crea molti file temporanei di scrittura, è possibile fermarli?

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