41
Mike Schroder | @GetSource Developer, WordPress Specialist con DreamHost ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp Las Peñitas 2014

ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Mike  Schroder  |  @GetSource  Developer,  WordPress  Specialist  con  DreamHost  

ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI

WordCamp  Las  Peñitas  2014  

Page 2: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

RANDOM FACTS  Multicutural  Encanta  Café  y  Sailing  Blogea  en  getsource.net  

CREDENTIALS  

Mike  Schroder,  alias  DH-­‐Shredder,  alias  @GetSource  

Empleado  Feliz  de  DreamHost  Co-­‐Líder  de  WordPress  3.9  Contribuidor  a  WP-­‐CLI  

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 3: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

HAY DOS GROUPOS DE GENTE

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 4: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

LOS QUE UTILIZAN LA LÍNEA DE COMANDOS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 5: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

LOS QUE VAN A UTILZAR LA LÍNEA DE COMANDOS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 6: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

NO TENGAS MIEDO DE LA CLI ES  TU  AMIGO.  

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 7: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

TE GUSTA LA CLI? WP-­‐CLI  TE  MEJORA  LA  VIDA  

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 8: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

SUPER-GUAY SOFTWARE LIBRE PARA MANEJAR WORDPRESS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 9: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

MANEJADO POR DANIEL BACHHUBER Y CREADO POR ANDREAS CRETEN Y SCRIBU

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 10: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

UTILIZA WORDPRESS SÍ MISMO PARA OPERARSE

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 11: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

¡AUTOMATIZATE!

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 12: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

¿QUE PUEDO HACER?

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 13: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 14: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

EN SERIO.

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 15: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp core update

ACTUALIZA WORDPRESS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 16: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp plugin install <slug o .zip>

INSTALLA UN PLUGIN

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 17: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp theme activate <slug>

ELIGE UN TEMA

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 18: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp db export [ficha.sql]

GUARDA LA BASE DE DATOS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 19: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp import <ficha.wxr>

IMPORTA CONTENIDO

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 20: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp plugin update-all

ACTUALIZA LOS PLUGINS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 21: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp theme update-all

ACTUALIZA LOS TEMAS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 22: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp search-replace <viejo> <nuevo>

SUSTITUIR TEXTO EN DB

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 23: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

¿QUÉ ES ÉSTA MÁGIA?

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 24: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 25: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

CONVENCIDO. ¿CÓMO PUEDO OBTENERLO?

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 26: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

-­‐    Accesso  SSH  a  tu  directorio  WordPress  -­‐    PHP  5.3.2+  -­‐    WordPress  3.5.2+  -­‐    Tanta  RAM  para  que  corren  los  processos          shell  de  WordPress  -­‐    Linux  o  MacOS  (por  ahora)  

¿QUÉ REQUIERE PARA USARLO?

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 27: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ curl -kL https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar > wp-cli.phar

INSTALA COMO USADOR LOCAL

Instrucciones Completas: wp-­‐cli.org    

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 28: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

�¡ESPERA; HAY MÁS!

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 29: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

¡WP-CLI ES EXTENSÍBLE!

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 30: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Ejecutar/Alias:     $ wp --require='cmd_name.php’

wp-­‐cli.yml  

require: /path/to/cmd_name.php

AÑÁDELO LOCALMENTE

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 31: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Ó EN LOS PLUGINS if ( defined('WP_CLI') && WP_CLI ) {     include( PLUGIN_DIR . '/lib/wp-cli.php' ); }

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 32: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

$ wp migrate backup [ficha.tar.gz] [--no-db] [--db-name=<ficha.sql>]

COMANDO PERSONALIZADO: BACKUP

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 33: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

Strategía -­‐    Utiliza  el  comando  internal  para  guardar  la  base  de  datos  -­‐    Crea  un  .tar.gz  combinando  las  dichas  del  instalación          y  la  base  de  datos  

COMANDO PERSONALIZADO: BACKUP

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 34: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

AÑADA COMMANDO <?php WP_CLI::add_command( 'migrate', 'DH_Migrate_Command' ); /** * DreamHost Migrate Plugin * * @package DH_Migrate_Command * @subpackage commands/community * @maintainer Mike Schroder */ class DH_Migrate_Command extends WP_CLI_Command { // ...

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 35: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS * * [<backup-filename>] * : Fichero donde guardar la copia de seguridad * * [--no-db] * : No crea copia de seguridad de la base de datos * dentro del archivo creado * * [--db-name=<filename>] * : Guarda el base de datos en el archivo con el nombre <filename> * * ...

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 36: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

DEFINE EL SUBCOMMANDO

* ...  */ function backup( $args, $assoc_args ) { // ...

$args Argumentos  Independientes  

$assoc_args --arg=value  Argumentos  Associativos  

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 37: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

function backup( $args, $assoc_args ) {     $filename = $dbname = null;     $backup_directory = '../';     // Si no specifica un nombre para el fichero, // usa "Titlulo del Sitio.tar.gz"     if ( empty( $args ) )         $filename = $backup_directory . get_bloginfo() . '.tar.gz';     else         $filename = $args[0]; // ...

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 38: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

  // Si specifica --no-db, no guarda la base de datos.   if ( ! isset( $assoc_args['no-db'] ) ) { $dbname = isset( $assoc_args['db-name'] ) ? $assoc_args['db-name'] : 'database_backup.sql';   WP_CLI::run_command( array( 'db', 'export', $backup_directory . $dbname), array() );   } // ...

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 39: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

// Utilizamos esc_cmd para filtrar los argumentos automaticamente. // No podemos utilizar --exclude-vcs, porque no funciona en OSX. WP_CLI::line( "Guardando en $filename ..." ); $result = WP_CLI::launch( \WP_CLI\Utils\esc_cmd( "       tar                     \           --exclude '.git'  \           --exclude '.svn'    \           --exclude '.hg’     \           --exclude '.bzr'    \           -czf %s . -C %s %s  \   ", $filename, $backup_directory, $dbname ), false ); // ...

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 40: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

   // Si creimos una copia de la base de datos, borra la copia temporal.   if ( $dbname && ! unlink( $backup_directory . $dbname ) )       WP_CLI::warning( "No pude borrar la base de datos temporal, '$dbname'." );      if ( 0 == $result ) {        WP_CLI::success( "Copia de seguridad creado." );    } else {        WP_CLI::error( "Creatión de la copia de seguridad ha fallado." );    } } // Termina backup } // Termina DH_Migrate_Command

Mike  Schroder  |  @GetSource  |  #WordCampNI  

Page 41: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2014-05-24 · DEFINE EL SUBCOMMANDO /** * Guarda WordPress entero, encluyendo core, plugins y la base de datos. * * ## OPTIONS

   -­‐    wp-­‐cli.org  -­‐    getsource.net/tag/wp-­‐cli/  -­‐    halfelf.org/2012/command-­‐line-­‐wp      -­‐    diles.fosswire.com/2007/08/fwunixref.pdf    

APRENDE MÁS: WP-CLI:

Chuleta de CLI:

Mike  Schroder  |  @GetSource  |  #WordCampNI