SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
ADMINISTRA WORDPRESS
AUTOMÁTICAMENTE CON WP-CLI
WordCamp	
  Málaga	
  2013	
  

Mike	
  Schroder	
  |	
  @GetSource	
  
Developer,	
  WordPress	
  Specialist	
  con	
  DreamHost	
  
Mike	
  Schroder,	
  alias	
  DH-­‐Shredder,	
  alias	
  @GetSource	
  
CREDENTIALS	
  

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

RANDOM FACTS	
  

Multicutural	
  
Encanta	
  Café	
  y	
  Sailing	
  
Blogea	
  en	
  getsource.net	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
HAY DOS GROUPOS DE GENTE

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
LOS QUE UTILIZAN LA LÍNEA DE COMANDOS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
LOS QUE VAN A UTILZAR
LA LÍNEA DE COMANDOS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
NO TENGAS MIEDO DE LA CLI
ES	
  TU	
  AMIGO.	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
TE GUSTA LA CLI?
WP-­‐CLI	
  TE	
  MEJORA	
  LA	
  VIDA	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
SUPER-GUAY SOFTWARE LIBRE
PARA MANEJAR WORDPRESS

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
MANEJADO POR CRISTI BURCĂ (SCRIBU)
Y ANDREAS CRETEN

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
UTILIZA WORDPRESS SÍ MISMO
PARA OPERARSE

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¡AUTOMATIZATE!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUE PUEDO HACER?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
EN SERIO.

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA WORDPRESS
$ wp core update

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
INSTALLA UN PLUGIN
$ wp plugin install <slug o .zip>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ELIGE UN TEMA
$ wp theme activate <slug>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
GUARDA LA BASE DE DATOS
$ wp db export [ficha]

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA LOS PLUGINS
$ wp plugin update-all

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
ACTUALIZA LOS TEMAS
$ wp theme update-all

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
SUSTITUIR TEXTO EN DB
$ wp search-replace <viejo> <nuevo>

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUÉ ES ÉSTA MÁGIA?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
CONVENCIDO.
¿CÓMO PUEDO OBTENERLO?

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¿QUÉ REQUIERE PARA USARLO?
-­‐	
  	
  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)	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
INSTALA COMO USADOR LOCAL
Instrucciones Completas:
wp-­‐cli.org	
  
	
  

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

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¡ESPERA; HAY MÁS!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
¡WP-CLI ES EXTENSÍBLE!

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
AÑÁDELO LOCALMENTE
Ejecutar/Alias:	
  	
  

$ wp --require='cmd_name.php’

wp-­‐cli.yml	
  

require: /path/to/cmd_name.php

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
Ó EN LOS PLUGINS
if ( defined('WP_CLI') && WP_CLI ) {
    include( PLUGIN_DIR . '/lib/wp-cli.php' );
}

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
COMANDO PERSONALIZADO: BACKUP
$ wp migrate backup [ficha.tar.gz]

[--no-db] [--db-name=<ficha.sql>]

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
COMANDO PERSONALIZADO: BACKUP
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	
  

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
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	
  
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	
  
DEFINE EL SUBCOMMANDO
$args

Argumentos	
  Independientes	
  

$assoc_args

--arg=value	
  Argumentos	
  Associativos	
  

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

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
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	
  
  // 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	
  
// 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_CLIUtilsesc_cmd( "
      tar                     
          --exclude '.git' 

          --exclude '.svn'    
          --exclude '.hg’     
          --exclude '.bzr'    
          -czf %s . -C %s %s  
  ", $filename, $backup_directory, $dbname ), false );
// ...

Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  
  

// 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	
  	
  
 
	
  
WP-CLI:

APRENDE MÁS:

-­‐	
  	
  wp-­‐cli.org	
  
-­‐	
  	
  getsource.net/tag/wp-­‐cli/	
  
-­‐	
  	
  halfelf.org/2012/command-­‐line-­‐wp	
  

	
  

	
  
Chuleta de CLI:

-­‐	
  	
  ailes.fosswire.com/2007/08/fwunixref.pdf	
  
	
  
Mike	
  Schroder	
  |	
  @GetSource	
  |	
  #wcuma	
  

Más contenido relacionado

La actualidad más candente

Wordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaWordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaDarío BF
 
Sitio web (bootstrap 3)
Sitio web (bootstrap 3)Sitio web (bootstrap 3)
Sitio web (bootstrap 3)Emerson Garay
 
Libra Movilidad - Betabeers Pontevedra
Libra Movilidad - Betabeers PontevedraLibra Movilidad - Betabeers Pontevedra
Libra Movilidad - Betabeers PontevedraMarcos Esperón
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteJuan Astudillo
 
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para OdooJornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para OdooPedro Manuel Baeza Romero
 
Desarrollo Web: HTML + Bootstrap
Desarrollo Web: HTML + BootstrapDesarrollo Web: HTML + Bootstrap
Desarrollo Web: HTML + BootstrapWorkshop Digital
 
Instalación de WordPress en un dominio
Instalación de WordPress en un dominioInstalación de WordPress en un dominio
Instalación de WordPress en un dominioWP Curso
 
Creación de Blogs con WordPress
Creación de Blogs con WordPressCreación de Blogs con WordPress
Creación de Blogs con WordPressDSi Grupo
 
WordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPressWordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPressDarío BF
 

La actualidad más candente (11)

Wordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaWordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp Barcelona
 
Sitio web (bootstrap 3)
Sitio web (bootstrap 3)Sitio web (bootstrap 3)
Sitio web (bootstrap 3)
 
Libra Movilidad - Betabeers Pontevedra
Libra Movilidad - Betabeers PontevedraLibra Movilidad - Betabeers Pontevedra
Libra Movilidad - Betabeers Pontevedra
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSite
 
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para OdooJornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
Jornadas Odoo 2015 - Diseño y creación de un tema Bootstrap para Odoo
 
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
(20.05.2009) Cumuy Presenta - Más tecnologías interesantes para conocer - PPT 1
 
Desarrollo Web: HTML + Bootstrap
Desarrollo Web: HTML + BootstrapDesarrollo Web: HTML + Bootstrap
Desarrollo Web: HTML + Bootstrap
 
Instalación de WordPress en un dominio
Instalación de WordPress en un dominioInstalación de WordPress en un dominio
Instalación de WordPress en un dominio
 
Creación de Blogs con WordPress
Creación de Blogs con WordPressCreación de Blogs con WordPress
Creación de Blogs con WordPress
 
Creacion de blog
Creacion de blogCreacion de blog
Creacion de blog
 
WordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPressWordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPress
 

Destacado

DevOps Manchester - Importance of the bus driver
DevOps Manchester - Importance of the bus driverDevOps Manchester - Importance of the bus driver
DevOps Manchester - Importance of the bus driverdevopsmanc
 
One two three test
One two three testOne two three test
One two three testsdevlin04
 
One two three test
One two three testOne two three test
One two three testsdevlin04
 
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange Termijn
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange TermijnStaten-Generaal Van De Media: Evolutie Kijkgedrag Lange Termijn
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange TermijnMyTransfer
 
Chelsea tanner_ ab com209
 Chelsea tanner_ ab com209 Chelsea tanner_ ab com209
Chelsea tanner_ ab com209Chelsea Tanner
 
Qce521 e session 1 assessing listening
Qce521 e session 1 assessing listeningQce521 e session 1 assessing listening
Qce521 e session 1 assessing listeningBenedict Chua
 
Should students wear uniforms - Debate
Should students wear uniforms - DebateShould students wear uniforms - Debate
Should students wear uniforms - DebateBenedict Chua
 
Issues of Inequality in the Singapore Education system
Issues of Inequality in the Singapore Education systemIssues of Inequality in the Singapore Education system
Issues of Inequality in the Singapore Education systemBenedict Chua
 
Teaching and Learning of 21st-century Competencies in Schools
 Teaching and Learning of 21st-century Competencies in Schools  Teaching and Learning of 21st-century Competencies in Schools
Teaching and Learning of 21st-century Competencies in Schools Benedict Chua
 

Destacado (12)

DevOps Manchester - Importance of the bus driver
DevOps Manchester - Importance of the bus driverDevOps Manchester - Importance of the bus driver
DevOps Manchester - Importance of the bus driver
 
Pt
Pt Pt
Pt
 
One two three test
One two three testOne two three test
One two three test
 
One two three test
One two three testOne two three test
One two three test
 
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange Termijn
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange TermijnStaten-Generaal Van De Media: Evolutie Kijkgedrag Lange Termijn
Staten-Generaal Van De Media: Evolutie Kijkgedrag Lange Termijn
 
Chelsea tanner_ ab com209
 Chelsea tanner_ ab com209 Chelsea tanner_ ab com209
Chelsea tanner_ ab com209
 
PBL presentation
PBL presentationPBL presentation
PBL presentation
 
Qce521 e session 1 assessing listening
Qce521 e session 1 assessing listeningQce521 e session 1 assessing listening
Qce521 e session 1 assessing listening
 
Pbl presentation
Pbl presentationPbl presentation
Pbl presentation
 
Should students wear uniforms - Debate
Should students wear uniforms - DebateShould students wear uniforms - Debate
Should students wear uniforms - Debate
 
Issues of Inequality in the Singapore Education system
Issues of Inequality in the Singapore Education systemIssues of Inequality in the Singapore Education system
Issues of Inequality in the Singapore Education system
 
Teaching and Learning of 21st-century Competencies in Schools
 Teaching and Learning of 21st-century Competencies in Schools  Teaching and Learning of 21st-century Competencies in Schools
Teaching and Learning of 21st-century Competencies in Schools
 

Similar a Administra WordPress automáticamente con WP-CLI

WordPress más rápido: pruebas de stress con Siege
WordPress más rápido: pruebas de stress con SiegeWordPress más rápido: pruebas de stress con Siege
WordPress más rápido: pruebas de stress con Siegewpargentina
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Josefina Moratalla
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPressPedro Santos
 
Montar moodle en una instancia de pruebas de amazon con docker
Montar moodle en una instancia de pruebas de amazon con dockerMontar moodle en una instancia de pruebas de amazon con docker
Montar moodle en una instancia de pruebas de amazon con dockerErick Cabrera
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPressFernando Tellado
 
Seguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasLucy Tomas
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaPedro Santos
 
Curso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localCurso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localDavid Vaquero
 
Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)
 Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017) Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)
Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)wpargentina
 
Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Tomas Sierra
 
ownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal JebariownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal Jebaribilaljbr
 
OWASP y seguridad WordPress
OWASP y seguridad WordPressOWASP y seguridad WordPress
OWASP y seguridad WordPressFernando Tellado
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPSpacetoshare
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressIrontec
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...Asociación Webmasters Cantabria
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 

Similar a Administra WordPress automáticamente con WP-CLI (20)

WordPress más rápido: pruebas de stress con Siege
WordPress más rápido: pruebas de stress con SiegeWordPress más rápido: pruebas de stress con Siege
WordPress más rápido: pruebas de stress con Siege
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
 
Seguridad en WordPress
Seguridad en WordPressSeguridad en WordPress
Seguridad en WordPress
 
Montar moodle en una instancia de pruebas de amazon con docker
Montar moodle en una instancia de pruebas de amazon con dockerMontar moodle en una instancia de pruebas de amazon con docker
Montar moodle en una instancia de pruebas de amazon con docker
 
Deploying Wordpress
Deploying WordpressDeploying Wordpress
Deploying Wordpress
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPress
 
Desarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sqlDesarrollo de sitios web con php y my sql
Desarrollo de sitios web con php y my sql
 
Seguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticas
 
Seguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup MajadahondaSeguridad WordPress Meetup Majadahonda
Seguridad WordPress Meetup Majadahonda
 
Curso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localCurso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion local
 
Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)
 Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017) Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)
Cómo blindar tu sitio WordPress (Rodrigo Donini, WCBA 2017)
 
Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017Presentación "Hacker al rey" - WordCamp Santander 2017
Presentación "Hacker al rey" - WordCamp Santander 2017
 
ownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal JebariownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal Jebari
 
OWASP y seguridad WordPress
OWASP y seguridad WordPressOWASP y seguridad WordPress
OWASP y seguridad WordPress
 
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHPPHP Tema 4 - Acceso a bases de datos MySQL en PHP
PHP Tema 4 - Acceso a bases de datos MySQL en PHP
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
wp-cli
wp-cliwp-cli
wp-cli
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 

Último

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 

Último (20)

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 

Administra WordPress automáticamente con WP-CLI

  • 1. ADMINISTRA WORDPRESS AUTOMÁTICAMENTE CON WP-CLI WordCamp  Málaga  2013   Mike  Schroder  |  @GetSource   Developer,  WordPress  Specialist  con  DreamHost  
  • 2. Mike  Schroder,  alias  DH-­‐Shredder,  alias  @GetSource   CREDENTIALS   Empleado  Feliz  de  DreamHost   Contribuador  a  WordPress  Core   WordPress  3.5  Recent  Rockstar   Contribuidor  a  WP-­‐CLI   RANDOM FACTS   Multicutural   Encanta  Café  y  Sailing   Blogea  en  getsource.net   Mike  Schroder  |  @GetSource  |  #wcuma  
  • 3. Mike  Schroder  |  @GetSource  |  #wcuma  
  • 4. HAY DOS GROUPOS DE GENTE Mike  Schroder  |  @GetSource  |  #wcuma  
  • 5. LOS QUE UTILIZAN LA LÍNEA DE COMANDOS Mike  Schroder  |  @GetSource  |  #wcuma  
  • 6. LOS QUE VAN A UTILZAR LA LÍNEA DE COMANDOS Mike  Schroder  |  @GetSource  |  #wcuma  
  • 7. NO TENGAS MIEDO DE LA CLI ES  TU  AMIGO.   Mike  Schroder  |  @GetSource  |  #wcuma  
  • 8. TE GUSTA LA CLI? WP-­‐CLI  TE  MEJORA  LA  VIDA   Mike  Schroder  |  @GetSource  |  #wcuma  
  • 9. SUPER-GUAY SOFTWARE LIBRE PARA MANEJAR WORDPRESS Mike  Schroder  |  @GetSource  |  #wcuma  
  • 10. MANEJADO POR CRISTI BURCĂ (SCRIBU) Y ANDREAS CRETEN Mike  Schroder  |  @GetSource  |  #wcuma  
  • 11. UTILIZA WORDPRESS SÍ MISMO PARA OPERARSE Mike  Schroder  |  @GetSource  |  #wcuma  
  • 12. ¡AUTOMATIZATE! Mike  Schroder  |  @GetSource  |  #wcuma  
  • 13. ¿QUE PUEDO HACER? Mike  Schroder  |  @GetSource  |  #wcuma  
  • 14. Mike  Schroder  |  @GetSource  |  #wcuma  
  • 15. EN SERIO. Mike  Schroder  |  @GetSource  |  #wcuma  
  • 16. ACTUALIZA WORDPRESS $ wp core update Mike  Schroder  |  @GetSource  |  #wcuma  
  • 17. INSTALLA UN PLUGIN $ wp plugin install <slug o .zip> Mike  Schroder  |  @GetSource  |  #wcuma  
  • 18. ELIGE UN TEMA $ wp theme activate <slug> Mike  Schroder  |  @GetSource  |  #wcuma  
  • 19. GUARDA LA BASE DE DATOS $ wp db export [ficha] Mike  Schroder  |  @GetSource  |  #wcuma  
  • 20. ACTUALIZA LOS PLUGINS $ wp plugin update-all Mike  Schroder  |  @GetSource  |  #wcuma  
  • 21. ACTUALIZA LOS TEMAS $ wp theme update-all Mike  Schroder  |  @GetSource  |  #wcuma  
  • 22. SUSTITUIR TEXTO EN DB $ wp search-replace <viejo> <nuevo> Mike  Schroder  |  @GetSource  |  #wcuma  
  • 23. ¿QUÉ ES ÉSTA MÁGIA? Mike  Schroder  |  @GetSource  |  #wcuma  
  • 24. Mike  Schroder  |  @GetSource  |  #wcuma  
  • 25. CONVENCIDO. ¿CÓMO PUEDO OBTENERLO? Mike  Schroder  |  @GetSource  |  #wcuma  
  • 26. ¿QUÉ REQUIERE PARA USARLO? -­‐    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)   Mike  Schroder  |  @GetSource  |  #wcuma  
  • 27. INSTALA COMO USADOR LOCAL Instrucciones Completas: wp-­‐cli.org     $ curl http://wp-cli.org/installer.sh | bash Mike  Schroder  |  @GetSource  |  #wcuma  
  • 28. ¡ESPERA; HAY MÁS! Mike  Schroder  |  @GetSource  |  #wcuma  
  • 29. ¡WP-CLI ES EXTENSÍBLE! Mike  Schroder  |  @GetSource  |  #wcuma  
  • 30. AÑÁDELO LOCALMENTE Ejecutar/Alias:     $ wp --require='cmd_name.php’ wp-­‐cli.yml   require: /path/to/cmd_name.php Mike  Schroder  |  @GetSource  |  #wcuma  
  • 31. Ó EN LOS PLUGINS if ( defined('WP_CLI') && WP_CLI ) {     include( PLUGIN_DIR . '/lib/wp-cli.php' ); } Mike  Schroder  |  @GetSource  |  #wcuma  
  • 32. COMANDO PERSONALIZADO: BACKUP $ wp migrate backup [ficha.tar.gz] [--no-db] [--db-name=<ficha.sql>] Mike  Schroder  |  @GetSource  |  #wcuma  
  • 33. COMANDO PERSONALIZADO: BACKUP 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   Mike  Schroder  |  @GetSource  |  #wcuma  
  • 34. 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  
  • 35. 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  
  • 36. DEFINE EL SUBCOMMANDO $args Argumentos  Independientes   $assoc_args --arg=value  Argumentos  Associativos   * ...  */ function backup( $args, $assoc_args ) { // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  • 37. 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  
  • 38.   // 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  
  • 39. // 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_CLIUtilsesc_cmd( "       tar                                --exclude '.git'            --exclude '.svn'              --exclude '.hg’               --exclude '.bzr'              -czf %s . -C %s %s     ", $filename, $backup_directory, $dbname ), false ); // ... Mike  Schroder  |  @GetSource  |  #wcuma  
  • 40.    // 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    
  • 41.     WP-CLI: APRENDE MÁS: -­‐    wp-­‐cli.org   -­‐    getsource.net/tag/wp-­‐cli/   -­‐    halfelf.org/2012/command-­‐line-­‐wp       Chuleta de CLI: -­‐    ailes.fosswire.com/2007/08/fwunixref.pdf     Mike  Schroder  |  @GetSource  |  #wcuma