Come posso creare uno script di installazione bash per la configurazione dei miei siti Wordpress (plugin WP + + tema)?


9

Realizzo molti siti Web con Wordpress e la mia configurazione iniziale è praticamente sempre la stessa:

  • Ultima versione di WP
  • Ultime versioni di circa 5 plugin
  • Il mio tema di sviluppo nudo

Invece di scaricare / caricare queste cose separatamente e farlo manualmente ogni volta che avvio un nuovo progetto, mi piacerebbe creare uno script bash che farebbe questo:

  • Scarica l'ultima versione di Wordpress
  • Unzip
  • Scarica l'ultima versione del plugin X
  • Decomprimi nella cartella dei plugin WP
  • Scarica il mio tema nudo
  • Decomprimi nella cartella dei temi

Ora scaricare l'ultimo WP è facile (http://wordpress.org/latest.tar.gz), anche scaricare il mio tema nudo, ma ho problemi a ottenere l'ultima versione di un plugin, in quanto non sono chiamati latest.tar.gzma specifici nomi con la versione (es: wptouch.1.9.26.zip)

EDIT: Quindi mi chiedo ora se è possibile utilizzare cURL nel mio script bash per trovare l'URL esatto della versione corrente di un plugin. L'idea sarebbe quella di recuperare la pagina e quindi trovare il valore di quello hrefche è nel paragrafo subito dopo il <h3>Current Version</h3>.

Ecco un esempio, tutte le pagine di download dei plugin su WP sono così:

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

Risposte:


4

Per ottenere sempre il plugin più recente, prendi ad esempio il mio plugin:

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

il link per il download dell'ultimo è:

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

ma se rimuovi la versione dal link per il download otterrai sempre l'ultima versione:

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

EDIT: Hai preso in considerazione la possibilità di decomprimere una cartella degli ultimi wordpress e plugin? Quindi non appena esce un nuovo plugin o wordpress, basta decomprimerlo su ciò che hai. Quindi il tuo script bash impacchetta l'intero lotto da utilizzare su un'installazione.


1
Accidenti, è stato facile, grazie. Ora sono fuori dallo scripting bash, spero di poter mettere insieme qualcosa. Pubblicherò il risultato qui.
mike23

Una domanda però, nel tuo esempio wordpress-file-monitor-plus.zip è elencata in "Versione di sviluppo", non è la stessa dell'ultima versione stabile, vero?
mike23,

Oh, capisco. Questa forse non è l'ultima versione ... Potrebbe essere quella attualmente più recente nel bagagliaio. Mi dispiace, potrei essermi perso la comunicazione.
Scott,

2
Vorrei andare con SVN qui. puoi effettuare il checkout / esportazione del tag con il numero più alto o solo il trunk da ogni plugin. Lo stesso vale per WordPress Core .
rofflox,

1
Non potresti semplicemente aprire http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, analizzare la Stable Tag: Xlinea, quindi scaricare http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn,

1

Crea lo script bash:

touch wp_plugins_theme.sh

Rendi eseguibile:

chmod +x ./wp_plugins_theme.sh

Copia questo in esso:

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

Esegui il comando

./wp_plugins_theme.sh

So che ora è vecchio, ma è il più vicino alla risposta giusta che dovrebbe essere semplicementehttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer,

0

Ho creato uno script bash per aggiornare Wordpress usando Subversion come loro raccomandano .

#!/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/ .

Ho modificato questo per fare l'installazione. Questo secondo script non è testato ma dovrebbe iniziare. Dovrai scrivere il tuo create_wordpress_database_and_user.sql - ma non lo hai comunque chiesto nella domanda, quindi forse puoi 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/ .

0

Ho usato git clonecome una sorta di povero uomo bash.

Il git di WordPress viene aggiornato ogni 30 minuti, quindi lo clono nel mio repository con i miei plugin / temi o semplicemente estraggo direttamente da esso.

Il tutto è abbastanza veloce, in realtà si tratta solo di 2 righe e l'unica cosa che devo fare manualmente è creare il DB locale e modificare config.php. Può essere un po 'complicato assicurarti di aggiornare WordPress all'ultima versione se vuoi farlo ogni 30 minuti, ma di solito uso solo la versione stabile e mantengo la versione dev in un altro ambiente.

Sembra così:

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

L'altro aspetto negativo è che è un po 'difficile ottenere plugin dall'effettivo repository WordPress tramite git, è possibile farlo, usando il git svncomando ma trovo che non sia ancora facile lavorare con.


0

Ho creato uno script bash per installare wordpress.

Questo script automatizzerà quanto segue:

  • Scarica e installa Wordpress automaticamente
  • Crea utenti predefiniti con password
  • Installa tutti i plugin predefiniti
  • Installa il tema predefinito o personalizzato tramite l'URL zip che hai usato principalmente.

Puoi trovare lo script su github.com

https://github.com/jeoga/wordpress_install_bash_script

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.