¿Cómo puedo crear un script de instalación bash para la configuración de mis sitios de Wordpress (WP + plugins + tema)?

9

Construyo muchos sitios web con Wordpress, y mi configuración inicial es básicamente la misma:

  • Última versión de WP
  • Últimas versiones de aproximadamente 5 complementos
  • Mi tema de desarrollo desnudo

En lugar de descargar / cargar estas cosas por separado y hacerlo manualmente cada vez que inicio un nuevo proyecto, me gustaría crear un script bash que haga esto:

  • Descargue la última versión de Wordpress
  • Abrir la cremallera
  • Descargue la última versión del complemento X
  • Descomprima la carpeta de complementos de WP
  • Descargar mi tema desnudo
  • Descomprimir a la carpeta de temas

Ahora descargar la última versión de WP es fácil (http://wordpress.org/latest.tar.gz), también descargo mi tema desnudo, pero tengo problemas para obtener la última versión de un complemento, ya que no se llaman latest.tar.gzsino que son específicos nombres con la versión (ej: wptouch.1.9.26.zip)

EDITAR: ahora me pregunto si es posible usar cURL en mi script bash para encontrar la URL exacta de la versión actual de un complemento. La idea sería buscar la página y luego encontrar el valor de la hrefque está en el párrafo justo después de <h3>Current Version</h3>.

Aquí hay un ejemplo, todas las páginas de descarga de complementos en WP son así:

<h3>Current Version</h3>
<p class="unmarked-list">
    <a href="http://downloads.wordpress.org/plugin/jetpack.1.1.2.zip">1.1.2</a>
</p>
mike23
fuente

Respuestas:

4

Para obtener siempre el último complemento, tome por ejemplo mi complemento:

http://wordpress.org/extend/plugins/wordpress-file-monitor-plus/

El enlace de descarga para la última versión es:

http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.1.1.zip

pero si elimina la versión del enlace de descarga, siempre obtendrá la última versión:

http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.zip

EDITAR: ¿Ha considerado mantener desempaquetada una carpeta de los últimos complementos y wordpress? Luego, tan pronto como salga un nuevo complemento o wordpress, simplemente desempaquete eso sobre lo que tiene. Luego, su script bash simplemente empaqueta todo para ser utilizado en una instalación.

Scott
fuente
1
Maldición, eso fue fácil, gracias. Ahora estoy fuera de las secuencias de comandos bash, espero poder armar algo. Publicaré el resultado aquí.
mike23
Sin embargo, una pregunta, en su ejemplo, wordpress-file-monitor-plus.zip aparece en "Versión de desarrollo", eso no es lo mismo que la última versión estable, ¿verdad?
mike23
Oh ya veo. Tal vez esta no sea la última versión ... Podría ser la última versión actual en el maletero. Lo siento, podría haberte informado.
Scott,
2
Yo iría con SVN aquí. Allí puede pagar / exportar la etiqueta con el número más alto o solo el tronco de cada complemento. Lo mismo ocurre con el núcleo de WordPress .
rofflox
1
¿No podría simplemente abrir http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, analizar la Stable Tag: Xlínea y luego descargar http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn
1

Crea el script bash:

touch wp_plugins_theme.sh

Hacer ejecutable:

chmod +x ./wp_plugins_theme.sh

Copie esto en él:

#!/bin/bash
#
#  This script is to automate a common WP setup.
#
#   - Download the latest version of Wordpress
#   - Unzip
#   - Download the latest version of plugin X
#   - Unzip to WP plugins folder
#   - Download theme
#   - Unzip to themes folder

: ' Define Directory
'

# Change to your directory name
# Final site will be $PWD/$dirname/www/

dirname=ExampleWPPluginsTheme

# WordPress Directories used later

plugins=$PWD/$dirname/www/wp-content/plugins
themes=$PWD/$dirname/www/wp-content/themes

: ' Clear Example Dir
'

rm -rf $PWD/$dirname
mkdir -p $PWD/$dirname/www
cd $PWD/$dirname;

: ' Download the latest version of Wordpress
'

curl -OL "https://wordpress.org/latest.tar.gz"

: ' Unzip
'

tar -zxvf "./latest.tar.gz" -C 'www' --strip-components=1

: ' Download the latest version of plugin X
'

curl -OL "https://downloads.wordpress.org/plugin/query-monitor.latest-stable.zip"
curl -OL "https://downloads.wordpress.org/plugin/wp-optimize.latest-stable.zip"

: ' Unzip to WP plugins folder
'

tar -zxvf "./query-monitor.latest-stable.zip" -C $plugins
tar -zxvf "./wp-optimize.latest-stable.zip" -C $plugins

: ' Download theme
'

curl -OL "https://github.com/Automattic/_s/archive/master.zip"

: ' Unzip to themes folder
'

tar -zxvf "./master.zip" -C $themes

: ' Done
'

# List the folder contents

ls -la $PWD

Ejecuta el comando

./wp_plugins_theme.sh
jgraup
fuente
Sé que esto es viejo ahora, pero es el más cercano a la respuesta correcta que simplemente debería serhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer,
0

Creé un script bash para actualizar Wordpress usando subversion como recomiendan .

#!/bin/bash
# usage: upgrade_wordpress.sh X.X.X
# http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion

# http://stackoverflow.com/a/699613/327074
die () {
    echo >&2 "$@"
    exit 1
}

# check that there is one argument
[ "$#" -eq 1 ] || die "usage: upgrade_wordpress.sh X.X.X"
# http://stackoverflow.com/a/2220646/327074
response=$(curl --write-out %{http_code} --silent --output /dev/null http://core.svn.wordpress.org/tags/$1/)
# check that the tag repository exists, i.e. returns a HTTP 200 status code
[ "$response" -eq 200 ] || die "Couldn't find Wordpress version, http error: $response"
# Take a backup
mysqldump -u root -p wordpress > wordpress_upgrade_to_$1_bak.sql
# Updating to a New Stable Version
cd /path/to/wordpress/dir/
svn sw http://core.svn.wordpress.org/tags/$1/ .

He modificado esto para hacer la instalación. Este segundo script no se ha probado, pero debería ayudarlo a comenzar. Tendrá que escribir su propia create_wordpress_database_and_user.sql, pero de todos modos no pidió eso en la pregunta, por lo que tal vez pueda ignorarlo.

#!/bin/bash
# usage: install_wordpress.sh X.X.X /path/to/wordpress/dir
# http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion

# http://stackoverflow.com/a/699613/327074
die () {
    echo >&2 "$@"
    exit 1
}
# check that there are two arguments
[ "$#" -eq 2 ] || die "usage: install_wordpress.sh X.X.X /path/to/wordpress/dir"
# http://stackoverflow.com/a/2220646/327074
response=$(curl --write-out %{http_code} --silent --output /dev/null http://core.svn.wordpress.org/tags/$1/)
# check that the tag repository exists, i.e. returns a HTTP 200 status code
[ "$response" -eq 200 ] || die "Could not find Wordpress version, http error: $response"
# create directory if needed
if [ ! -d $2 ]; then
    mkdir $2
fi
# Install the database
mysql -u root -p < create_wordpress_database_and_user.sql
# Checking out stable version
cd $2
svn co http://core.svn.wordpress.org/tags/$1/ .
icc97
fuente
0

He estado usando git clonecomo una especie de pobre mans bash.

El git de WordPress se actualiza cada 30 minutos, así que lo clono en mi propio repositorio con mis propios complementos / temas o simplemente lo saco directamente de él.

Todo es bastante rápido, de hecho, solo tiene 2 líneas, y lo único que tengo que hacer manualmente es crear el DB local y editar el config.php. Puede ser un poco complicado asegurarse de actualizar WordPress a la última versión si desea hacerlo cada 30 minutos, pero normalmente solo uso la versión estable y mantengo la versión de desarrollo en otro entorno.

Se parece a esto:

mkdir wordpress-project
git clone ..url-to-my-wordpress-base 

La otra desventaja es que es un poco difícil obtener complementos del repositorio real de WordPress a través de git, es posible hacerlo, usando el git svncomando, pero todavía no es fácil trabajar con él.

Wyck
fuente
0

He creado un script bash para instalar wordpress.

Este script automatizará lo siguiente:

  • Descargue e instale Wordpress automáticamente
  • Crear usuarios predeterminados con contraseñas
  • Instalar todos los complementos predeterminados
  • Instale el tema predeterminado o personalizado mediante la url zip que usó principalmente.

Puedes encontrar script en github.com

https://github.com/jeoga/wordpress_install_bash_script

Aman Bansal
fuente