Wie kann ich ein Bash-Installationsskript für das Setup meiner Wordpress-Sites erstellen (WP + Plugins + Theme)?

9

Ich erstelle viele Websites mit Wordpress und meine anfängliche Einrichtung ist im Grunde immer dieselbe:

  • Neueste Version von WP
  • Neueste Versionen von ca. 5 Plugins
  • Mein nacktes Entwicklungsthema

Anstatt diese Dinge separat herunterzuladen / hochzuladen und dies jedes Mal von Hand zu tun, wenn ich ein neues Projekt starte, möchte ich ein Bash-Skript erstellen, das dies tun würde:

  • Laden Sie die neueste Version von Wordpress herunter
  • Entpacken
  • Laden Sie die neueste Version von Plugin X herunter
  • In den Ordner der WP-Plugins entpacken
  • Lade mein nacktes Thema herunter
  • In den Themenordner entpacken

Das Herunterladen des neuesten WP ist jetzt einfach (http://wordpress.org/latest.tar.gz). Ich kann auch mein nacktes Thema herunterladen, aber ich habe Probleme, die neueste Version eines Plugins zu erhalten, da diese nicht als latest.tar.gzspezifisch bezeichnet werden Namen mit der Version (zB: wptouch.1.9.26.zip)

EDIT: Ich bin jetzt gespannt, ob es möglich ist, cURL in meinem Bash-Skript zu verwenden, um die genaue URL der aktuellen Version eines Plugins zu finden. Die Idee wäre, die Seite abzurufen und dann den Wert von zu finden, der hrefim Absatz direkt nach dem steht <h3>Current Version</h3>.

Hier ist ein Beispiel: Alle Plugin-Download-Seiten in WP sehen folgendermaßen aus:

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

Antworten:

4

Um immer das neueste Plugin zu erhalten, nehmen Sie zum Beispiel mein Plugin:

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

Der Download-Link für die neueste Version lautet:

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

Wenn Sie jedoch die Version vom Download-Link entfernen, erhalten Sie immer die neueste Version:

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

EDIT: Haben Sie darüber nachgedacht, einen Ordner mit den neuesten WordPress- und Plugins zu entpacken? Sobald ein neues Plugin oder WordPress herauskommt, packen Sie es einfach über das aus, was Sie haben. Dann packt Ihr Bash-Skript einfach die gesamte Menge, die für eine Installation verwendet werden soll.

Brady
quelle
1
Verdammt, das war einfach, danke. Jetzt habe ich kein Bash-Scripting mehr und hoffe, dass ich etwas zusammenstellen kann. Ich werde das Ergebnis hier posten.
Mike23
Eine Frage ist jedoch, dass in Ihrem Beispiel wordpress-file-monitor-plus.zip unter "Entwicklungsversion" aufgeführt ist. Das ist nicht dasselbe wie die neueste stabile Version, oder?
Mike23
Oh ich verstehe. Dies ist möglicherweise nicht die neueste Version ... Möglicherweise handelt es sich um die aktuellste Version im Kofferraum. Entschuldigung, ich habe Sie möglicherweise nicht informiert.
Brady
2
Ich würde hier mit SVN gehen. Dort können Sie das Tag mit der höchsten Nummer oder nur den Trunk von jedem Plugin auschecken / exportieren. Gleiches gilt für den WordPress Core .
Rofflox
1
Könnten Sie nicht einfach öffnen http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, die Stable Tag: XZeile analysieren und dann herunterladen http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn
1

Erstellen Sie das Bash-Skript:

touch wp_plugins_theme.sh

Ausführbar machen:

chmod +x ./wp_plugins_theme.sh

Kopieren Sie dies hinein:

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

Führen Sie den Befehl aus

./wp_plugins_theme.sh
jgraup
quelle
Ich weiß , dass dies jetzt alt , aber es ist die nächste zu der richtigen Antwort , die einfach sein solltehttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer
0

Ich habe ein Bash-Skript erstellt, um Wordpress mithilfe der empfohlenen Subversion zu aktualisieren .

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

Ich habe dies geändert, um die Installation durchzuführen. Dieses zweite Skript ist nicht getestet, sollte aber den Einstieg erleichtern. Sie müssen Ihre eigene create_wordpress_database_and_user.sql schreiben - aber Sie haben in der Frage sowieso nicht danach gefragt, also können Sie sie vielleicht ignorieren.

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

Ich habe es git cloneals eine Art Bash für arme Männer benutzt.

Das WordPress-Git wird alle 30 Minuten aktualisiert, sodass ich es mit meinen eigenen Plugins / Themes in mein eigenes Repo klonen oder einfach direkt daraus ziehen kann.

Das Ganze ist ziemlich schnell, tatsächlich sind es nur 2 Zeilen, und das einzige, was ich manuell tun muss, ist die lokale Datenbank zu erstellen und die config.php zu bearbeiten. Es kann etwas schwierig sein, sicherzustellen, dass Sie WordPress auf die neueste Version aktualisieren, wenn Sie dies alle 30 Minuten tun möchten. Normalerweise verwende ich jedoch nur die stabile Version und behalte die Entwicklerversion in einer anderen Umgebung.

Es sieht aus wie das:

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

Der andere Nachteil ist, dass es ein bisschen schwierig ist, Plugins vom eigentlichen WordPress-Repo über Git zu bekommen. Es ist möglich, dies mit dem git svnBefehl zu tun, aber ich finde, dass es noch nicht einfach ist, damit zu arbeiten.

Wyck
quelle
0

Ich habe ein Bash-Skript erstellt, um WordPress zu installieren.

Dieses Skript automatisiert Folgendes:

  • Wordpress automatisch herunterladen und installieren
  • Erstellen Sie Standardbenutzer mit Kennwörtern
  • Installieren Sie alle Standard-Plugins
  • Installieren Sie das Standard- oder benutzerdefinierte Design anhand der am häufigsten verwendeten Zip-URL.

Sie finden das Skript auf github.com

https://github.com/jeoga/wordpress_install_bash_script

Aman Bansal
quelle