WP cli --path nu pare să funcționeze

27 oct. 2016, 17:08:53
Vizualizări: 13.8K
Voturi: 6

WP-cli nu pare să funcționeze când adaugi parametrul --path

me@host:~$ wp plugin status --path=`/home/me/domains/example.com/public_html`
-bash: /home/me/domains/example.com/public_html: este un director
Eroare: Acesta nu pare a fi o instalare WordPress.
Transmite --path=`calea/catre/wordpress` sau rulează `wp core download`.

Dacă intru cu cd în director și apoi rulez comanda fără cale, funcționează.
Am wp-cli 0.25

Actualizare
Informații suplimentare când adaug steagul --debug

Debug (bootstrap): Nu s-a găsit nicio configurare globală citibilă (0.031s)
Debug (bootstrap): Nu s-a găsit nicio configurare de proiect (0.032s)
Debug (bootstrap): Nu s-a găsit niciun autoload de pachet de încărcat. (0.39s)
Debug (bootstrap): ABSPATH definit: /home/me/domains/example.com/public_html/ (0.39s)

Are cineva vreo idee ce fac greșit?

1
Comentarii

Adaugă "--debug" la apelul tău și lipește rezultatul în întrebarea ta

jgraup jgraup
28 oct. 2016 16:34:39
Toate răspunsurile la întrebare 1
6

Este ca și cum ai încerca să rulezi:

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

deoarece ceea ce se află între backtick-uri este evaluat.

Aici este o lectură bună despre utilizarea backtick-urilor în linia de comandă.

Permiteți-mi să citesc @rozcietrzewiacz:

Backtick-ul nu este un semn de citare, are o semnificație foarte specială. Tot ceea ce scrieți între backtick-uri este evaluat (executat) de shell înainte de comanda principală [...]

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'

Când folosesc configurația wp-skeleton, trebuie să indic folderul de bază wp/, nu folderul superior care conține fișierul wp-config.php.

Actualizare:

În clasa Runner avem:

/**
 * Există fișierele de bază WordPress?
 *
 * @return bool
 */
private function wp_exists() {
    return is_readable( ABSPATH . 'wp-includes/version.php' );
}

iar când setăm ABSPATH cu

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

se pare că folosim:

/**
 * Setează root-ul WordPress ca o cale specificată.
 *
 * @param string $path
 */
private static function set_wp_root( $path ) {
    define( 'ABSPATH', rtrim( $path, '/' ) . '/' );
    WP_CLI::debug( 'ABSPATH defined: ' . ABSPATH, 'bootstrap' );
    $_SERVER['DOCUMENT_ROOT'] = realpath( $path );
}

și apoi:

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

devine fals deoarece în configurația wp-skeleton, directorul de bază este:

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

Acest test este necesar dar nu suficient. Există și alte teste, de exemplu metoda Runner::find_wp_root().

Motivul pentru care funcționează când OP este localizat în:

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

ar putea fi datorat metodei Runner::extract_subdir_path() care scanează conținutul fișierului index.php cu:

$index_code = file_get_contents( $index_path );

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

pentru a obține subdirectorul unde se află fișierul wp-blog-header.php și a-l seta ca $wp_path.

27 oct. 2016 17:37:24
Comentarii

Foarte enervant atunci că wp-cli sugerează asta în eroare. Dar nici una dintre variante nu funcționează :(

janw janw
28 oct. 2016 11:33:48

Da, este ciudat. Primești exact aceleași erori când încerci alternativele? @janw

birgire birgire
28 oct. 2016 12:44:37

Este la fel dar fără linia -bash: /home/me/domains/example.com/public_html/: is a directory.

janw janw
28 oct. 2016 17:16:44

da, mă așteptam ca eroarea -bash să dispară acolo. Când folosesc configurația wp-skeleton, trebuie să indic folderul wp/core, nu folderul de deasupra care conține fișierul wp-config.php. Nu sunt sigur dacă folosești vreo configurație specială @janw

birgire birgire
28 oct. 2016 17:27:14

Da, folosesc un schelet. Adăugarea ...mple.com/public_html/wp funcționează. Dacă vei adăuga această parte, voi accepta răspunsul

janw janw
28 oct. 2016 18:01:10

super, mă bucur că a funcționat ;-) Sigur, am actualizat răspunsul @janw

birgire birgire
28 oct. 2016 18:12:41
Arată celelalte 1 comentarii