Comment puis-je créer un script d'installation bash pour la configuration de mes sites Wordpress (WP + plugins + thème)?

9

Je crée beaucoup de sites Web avec Wordpress, et ma configuration initiale est fondamentalement toujours la même:

  • Dernière version de WP
  • Dernières versions d'environ 5 plugins
  • Mon thème de développement nu

Au lieu de télécharger / télécharger ces choses séparément et de le faire à la main chaque fois que je démarre un nouveau projet, je voudrais créer un script bash qui ferait ceci:

  • Téléchargez la dernière version de Wordpress
  • Décompressez
  • Téléchargez la dernière version du plugin X
  • Décompressez dans le dossier des plugins WP
  • Téléchargez mon thème nu
  • Décompressez dans le dossier des thèmes

Il est désormais facile de télécharger le dernier WP (http://wordpress.org/latest.tar.gz), en téléchargeant mon thème nu aussi, mais j'ai du mal à obtenir la dernière version d'un plugin, car ils ne sont pas appelés latest.tar.gzmais spécifiques noms avec la version (ex: wptouch.1.9.26.zip)

EDIT: Je me demande donc maintenant s'il est possible d'utiliser cURL dans mon script bash pour trouver l'URL exacte de la version actuelle d'un plugin. L'idée serait de récupérer la page, puis de trouver la valeur du hrefqui se trouve dans le paragraphe juste après le <h3>Current Version</h3>.

Voici un exemple, toutes les pages de téléchargement de plugin sur WP sont comme ceci:

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

Réponses:

4

Pour toujours obtenir le dernier plugin, prenez par exemple mon plugin:

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

le lien de téléchargement pour la dernière est:

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

mais si vous supprimez la version du lien de téléchargement, vous obtenez toujours la dernière version:

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

EDIT: Avez-vous envisagé de conserver un dossier des derniers wordpress et plugins déballés? Ensuite, dès qu'un nouveau plugin ou wordpress sort, vous décompressez simplement ce que vous avez. Ensuite, votre script bash empaquette tout le lot à utiliser lors d'une installation.

Scott
la source
1
Bon sang, c'était facile, merci. Maintenant que je suis hors script bash, j'espère pouvoir mettre quelque chose ensemble. Je posterai le résultat ici.
mike23
Une question cependant, dans votre exemple wordpress-file-monitor-plus.zip est répertoriée sous "Version de développement", ce n'est pas la même que la dernière version stable, n'est-ce pas?
mike23
Oh je vois. Ce n'est peut-être pas la dernière version ... C'est peut-être ce qui est actuellement le plus récent dans le coffre. Désolé, je pourrais avoir manqué de vous informer.
Scott
2
J'irais avec SVN ici. Là, vous pouvez extraire / exporter la balise avec le nombre le plus élevé ou simplement le tronc de chaque plugin. Il en va de même pour le WordPress Core .
rofflox
1
Ne pourriez-vous pas simplement ouvrir http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, analyser la Stable Tag: Xligne, puis télécharger http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn
1

Créez le script bash:

touch wp_plugins_theme.sh

Rendre exécutable:

chmod +x ./wp_plugins_theme.sh

Copiez ceci dedans:

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

Exécutez la commande

./wp_plugins_theme.sh
jgraup
la source
Je sais que c'est vieux maintenant, mais c'est la plus proche de la bonne réponse qui devrait être simplementhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer
0

J'ai créé un script bash pour mettre à jour Wordpress en utilisant subversion comme ils le recommandent .

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

J'ai modifié cela pour faire l'installation. Ce deuxième script n'est pas testé mais il devrait vous aider à démarrer. Vous devrez écrire votre propre create_wordpress_database_and_user.sql - mais vous ne l'avez pas demandé dans la question de toute façon, alors vous pouvez peut-être l'ignorer.

#!/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
la source
0

J'utilise git clonecomme une sorte de pauvre bash mans.

Le git WordPress est mis à jour toutes les 30 minutes, donc je le clone dans mon propre référentiel avec mes propres plugins / thèmes ou je le tire directement.

Le tout est assez rapide, en fait il ne s'agit que d'environ 2 lignes, et la seule chose que je dois faire manuellement est de créer la base de données locale et d'éditer le config.php. Il peut être un peu difficile de mettre à jour WordPress vers la dernière version si vous voulez le faire toutes les 30 minutes, mais j'utilise généralement uniquement la version stable et conserve la version de développement dans un autre environnement.

Cela ressemble à ceci:

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

L'autre inconvénient est qu'il est un peu difficile d'obtenir des plugins à partir du référentiel WordPress réel via git, il est possible de le faire, en utilisant la git svncommande, mais je trouve que ce n'est pas facile à travailler pour l'instant.

Wyck
la source
0

J'ai créé un script bash pour installer wordpress.

Ce script automatisera les éléments suivants:

  • Téléchargez et installez Wordpress automatiquement
  • Créer des utilisateurs par défaut avec des mots de passe
  • Installer tous les plugins par défaut
  • Installez le thème par défaut ou personnalisé par l'URL zip que vous avez principalement utilisé.

Vous pouvez trouver le script sur github.com

https://github.com/jeoga/wordpress_install_bash_script

Aman Bansal
la source