WP cli --path non sembra funzionare

27 ott 2016, 17:08:53
Visualizzazioni: 13.8K
Voti: 6

WP-cli non sembra funzionare quando aggiungo un parametro --path

me@host:~$ wp plugin status --path=`/home/me/domains/example.com/public_html`
-bash: /home/me/domains/example.com/public_html: è una directory
Errore: Questa non sembra essere un'installazione WordPress.
Specifica --path=`percorso/wordpress` oppure esegui `wp core download`.

Se eseguo cd nella directory e poi lancio il comando senza il percorso, funziona.
Ho wp-cli 0.25

Aggiornamento
Informazioni aggiuntive quando aggiungo il flag --debug

Debug (bootstrap): Nessun file di configurazione globale leggibile trovato (0.031s)
Debug (bootstrap): Nessun file di configurazione del progetto trovato (0.032s)
Debug (bootstrap): Nessun autoload del package trovato da caricare. (0.39s)
Debug (bootstrap): ABSPATH definito: /home/me/domains/example.com/public_html/ (0.39s)

Qualcuno ha un'idea di cosa sto sbagliando?

1
Commenti

Aggiungi "--debug" alla tua chiamata e incolla l'output nella tua domanda

jgraup jgraup
28 ott 2016 16:34:39
Tutte le risposte alla domanda 1
6

È come se stessi provando a eseguire:

wp plugin status --path=$(/home/me/domains/example.com/public_html)

perché ciò che è racchiuso tra i backtick viene valutato.

Ecco una buona lettura sull'uso dei backtick nella riga di comando.

Permettimi di citare @rozcietrzewiacz:

Il backtick non è un segno di quotazione, ha un significato molto speciale. Tutto ciò che digiti tra backtick viene valutato (eseguito) dalla shell prima del comando principale [...]

Alternative:

wp plugin status --path=/home/me/domains/example.com/public_html
wp plugin status --path="/home/me/domains/example.com/public_html"
wp plugin status --path='/home/me/domains/example.com/public_html'

Quando uso la configurazione wp-skeleton, devo puntare alla cartella core wp/, non alla cartella superiore che contiene il file wp-config.php.

Aggiornamento:

All'interno della classe Runner abbiamo:

/**
 * I file core di WordPress esistono?
 *
 * @return bool
 */
private function wp_exists() {
    return is_readable( ABSPATH . 'wp-includes/version.php' );
}

e quando impostiamo ABSPATH con

--path=/home/me/domains/example.com/public_html/ 

sembra che stiamo usando:

/**
 * Imposta la root di WordPress come un determinato percorso.
 *
 * @param string $path
 */
private static function set_wp_root( $path ) {
    define( 'ABSPATH', rtrim( $path, '/' ) . '/' );
    WP_CLI::debug( 'ABSPATH definito: ' . ABSPATH, 'bootstrap' );
    $_SERVER['DOCUMENT_ROOT'] = realpath( $path );
}

e poi:

 is_readable( '/home/me/domains/example.com/public_html/wp-includes/version.php' )

diventa false perché con la configurazione wp-skeleton, la directory core è:

/home/me/domains/example.com/public_html/wp/ 

Questo test è necessario ma non sufficiente. Ci sono altri test, ad esempio il metodo Runner::find_wp_root().

Il motivo per cui funziona quando OP si trova all'interno di:

/home/me/domains/example.com/public_html/

potrebbe essere dovuto al metodo Runner::extract_subdir_path() che analizza il contenuto del file index.php con:

$index_code = file_get_contents( $index_path );

if ( !preg_match( 
         '|^\s*require\s*\(?\s*(.+?)/wp-blog-header\.php([\'"])|m', 
         $index_code, 
         $matches 
     ) 
) {
        return false;
}

per ottenere la sottodirectory in cui si trova il file wp-blog-header.php e impostarla come $wp_path.

27 ott 2016 17:37:24
Commenti

È davvero fastidioso che wp-cli lo suggerisca nell'errore. Ma nessuna delle varianti funziona :(

janw janw
28 ott 2016 11:33:48

Sì, è strano. Ottieni esattamente gli stessi errori quando provi le alternative? @janw

birgire birgire
28 ott 2016 12:44:37

È lo stesso ma senza la riga -bash: /home/me/domains/example.com/public_html/: is a directory.

janw janw
28 ott 2016 17:16:44

sì, mi aspettavo che l'errore -bash scomparisse lì. Quando uso la configurazione wp-skeleton, devo puntare alla cartella core wp/, non alla cartella superiore che contiene il file wp-config.php. Non sono sicuro se stai usando una configurazione specifica @janw

birgire birgire
28 ott 2016 17:27:14

Sì, sto usando uno skeleton. aggiungere ...mple.com/public_html/wp funziona. Se aggiungi questa parte accetterò la risposta

janw janw
28 ott 2016 18:01:10

ottimo, felice di sentire che ha funzionato ;-) Certo, ho aggiornato la risposta @janw

birgire birgire
28 ott 2016 18:12:41
Mostra i restanti 1 commenti