administra wordpress automÁticamente con wp-cli · 2013-10-26 · mikeschroder|@getsource%...

41
Mike Schroder | @GetSource Developer, WordPress Specialist con DreamHost ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp Málaga 2013

Upload: others

Post on 06-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

Mike  Schroder  |  @GetSource  Developer,  WordPress  Specialist  con  DreamHost  

ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI

WordCamp  Málaga  2013  

Page 2: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

CREDENTIALS  

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

Empleado  Feliz  de  DreamHost  Contribuador  a  WordPress  Core  WordPress  3.5  Recent  Rockstar  Contribuidor  a  WP-­‐CLI  

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 3: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 4: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

HAY DOS GROUPOS DE GENTE

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 5: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

LOS QUE UTILIZAN LA LÍNEA DE COMANDOS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 6: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

LOS QUE VAN A UTILZAR LA LÍNEA DE COMANDOS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 7: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

NO TENGAS MIEDO DE LA CLI ES  TU  AMIGO.  

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 8: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 9: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

SUPER-GUAY SOFTWARE LIBRE PARA MANEJAR WORDPRESS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 10: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

MANEJADO POR CRISTI BURCĂ (SCRIBU) Y ANDREAS CRETEN

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 11: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

UTILIZA WORDPRESS SÍ MISMO PARA OPERARSE

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 12: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

¡AUTOMATIZATE!

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 13: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

¿QUE PUEDO HACER?

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 14: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 15: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

EN SERIO.

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 16: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp core update

ACTUALIZA WORDPRESS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 17: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp plugin install <slug o .zip>

INSTALLA UN PLUGIN

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 18: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp theme activate <slug>

ELIGE UN TEMA

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 19: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp db export [ficha]

GUARDA LA BASE DE DATOS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 20: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp plugin update-all

ACTUALIZA LOS PLUGINS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 21: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp theme update-all

ACTUALIZA LOS TEMAS

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 22: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ wp search-replace <viejo> <nuevo>

SUSTITUIR TEXTO EN DB

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 23: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

¿QUÉ ES ÉSTA MÁGIA?

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 24: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 25: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

CONVENCIDO. ¿CÓMO PUEDO OBTENERLO?

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 26: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

¿QUÉ REQUIERE PARA USARLO?

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 27: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

$ curl http://wp-cli.org/installer.sh | bash

INSTALA COMO USADOR LOCAL

Instrucciones Completas: wp-­‐cli.org    

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 28: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

�¡ESPERA; HAY MÁS!

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 29: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

¡WP-CLI ES EXTENSÍBLE!

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 30: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

wp-­‐cli.yml  

require: /path/to/cmd_name.php

AÑÁDELO LOCALMENTE

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 31: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 32: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

COMANDO PERSONALIZADO: BACKUP

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 33: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

COMANDO PERSONALIZADO: BACKUP

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 34: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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  |  #wcuma  

Page 35: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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  |  #wcuma  

Page 36: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

DEFINE EL SUBCOMMANDO

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

$args Argumentos  Independientes  

$assoc_args --arg=value  Argumentos  Associativos  

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 37: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

Mike  Schroder  |  @GetSource  |  #wcuma  

Page 38: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

  // 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  |  #wcuma  

Page 39: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

// Utilizamos esc_cmd para filtrar los argumentos automaticamente. // No podemos utilizar --exclude-vcs, porque no funciona en OSX. WP_CLI::line( "Guardano 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  |  #wcuma  

Page 40: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

   // 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  |  #wcuma    

Page 41: ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI · 2013-10-26 · MikeSchroder|@GetSource% Developer,%WordPress%Specialist%con%DreamHost% ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON

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

APRENDE MÁS: WP-CLI:

Chuleta de CLI:

Mike  Schroder  |  @GetSource  |  #wcuma