Jak mogę utworzyć skrypt instalacyjny bash do konfiguracji stron Wordpress (WP + wtyczki + motyw)?


9

Z Wordpress buduję wiele stron internetowych, a moja początkowa konfiguracja jest w zasadzie zawsze taka sama:

  • Najnowsza wersja WP
  • Najnowsze wersje około 5 wtyczek
  • Mój nagi motyw programistyczny

Zamiast pobierać / przesyłać te rzeczy osobno i robić to ręcznie za każdym razem, gdy rozpoczynam nowy projekt, chciałbym stworzyć skrypt bash, który by to zrobił:

  • Pobierz najnowszą wersję Wordpress
  • Rozsunąć suwak
  • Pobierz najnowszą wersję wtyczki X.
  • Rozpakuj do folderu wtyczek WP
  • Pobierz mój nagi motyw
  • Rozpakuj do folderu motywów

Teraz pobranie najnowszej wersji WP jest łatwe (http://wordpress.org/latest.tar.gz), pobieranie też mojego nagiego motywu, ale mam problem z pobraniem najnowszej wersji wtyczki, ponieważ nie są one wywoływane, latest.tar.gzale specyficzne nazwy z wersją (np .: wptouch.1.9.26.zip)

EDYCJA: Zastanawiam się teraz, czy można użyć cURL w skrypcie bash, aby znaleźć dokładny adres URL bieżącej wersji wtyczki. Chodzi o to, aby pobrać stronę, a następnie znaleźć wartość tego, hrefktóry jest w akapicie tuż po <h3>Current Version</h3>.

Oto przykład, wszystkie strony pobierania wtyczek na WP są takie:

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

Odpowiedzi:


4

Aby zawsze otrzymywać najnowszą wtyczkę, weź na przykład moją wtyczkę:

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

najnowszy link do pobrania to:

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

ale jeśli usuniesz wersję z linku do pobrania, zawsze otrzymasz najnowszą wersję:

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

EDYCJA: Czy zastanawiałeś się nad rozpakowaniem folderu z najnowszymi wersjami WordPress i wtyczek? Gdy tylko pojawi się nowa wtyczka lub wordpress, po prostu rozpakuj to, co masz. Następnie twój skrypt bash po prostu pakuje cały pakiet do użycia podczas instalacji.


1
Cholera, to było łatwe, dzięki. Teraz kończę pisanie skryptów, mam nadzieję, że uda mi się coś połączyć. Zamieszczę wynik tutaj.
mike23

Jedno pytanie w twoim przykładzie wordpress-file-monitor-plus.zip jest wymienione w „Wersja rozwojowa”, to nie to samo co najnowsza stabilna wersja, prawda?
mike23

Rozumiem. To może nie najnowsza wersja ... To może być najnowsza wersja w bagażniku. Przepraszam, mogłem przegapić poinformować cię.
Scott

2
Poszedłbym tutaj z SVN. Tam możesz pobrać / wyeksportować tag z najwyższym numerem lub tylko łącze z każdej wtyczki. To samo dotyczy rdzenia WordPress .
rofflox

1
Nie możesz po prostu otworzyć http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, przeanalizować Stable Tag: Xlinii, a następnie pobrać http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn

1

Utwórz skrypt bash:

touch wp_plugins_theme.sh

Udostępnij plik wykonywalny:

chmod +x ./wp_plugins_theme.sh

Skopiuj to do niego:

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

Uruchom polecenie

./wp_plugins_theme.sh

Wiem, że jest już stary, ale jest najbliższy właściwej odpowiedzi, która powinna być po prostuhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer

0

Stworzyłem skrypt bash, aby zaktualizować Wordpress przy użyciu subversion, jak zalecają .

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

Zmodyfikowałem to, aby przeprowadzić instalację. Ten drugi skrypt nie został przetestowany, ale powinien zacząć. Musisz napisać własny plik create_wordpress_database_and_user.sql - ale i tak o to nie pytałeś w pytaniu, więc może możesz to zignorować.

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

Używałem git clonejako swego rodzaju kiepskiej mash.

Git WordPress jest aktualizowany co 30 minut, więc klonuję go do mojego repozytorium z własnymi wtyczkami / motywami lub po prostu wyciągam bezpośrednio z niego.

Cała sprawa jest dość szybka, w rzeczywistości chodzi tylko o 2 linie i jedyne, co muszę zrobić ręcznie, to utworzyć lokalną bazę danych i edytować config.php. Może to być trochę trudne, upewniając się, że aktualizujesz WordPress do najnowszej wersji, jeśli chcesz to robić co 30 minut, ale zwykle używam tylko wersji stabilnej i trzymam wersję programistyczną w innym środowisku.

To wygląda tak:

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

Inną wadą jest to, że trochę trudno jest uzyskać wtyczki z rzeczywistego repozytorium WordPress przez git, można to zrobić za pomocą git svnpolecenia, ale uważam, że nie jest jeszcze łatwo z nim pracować.


0

Stworzyłem skrypt bash, aby zainstalować wordpress.

Ten skrypt zautomatyzuje następujące elementy:

  • Pobierz i zainstaluj Wordpress automatycznie
  • Utwórz domyślnych użytkowników za pomocą haseł
  • Zainstaluj wszystkie domyślne wtyczki
  • Zainstaluj domyślny lub niestandardowy motyw według najczęściej używanego adresu URL.

Możesz znaleźć skrypt na github.com

https://github.com/jeoga/wordpress_install_bash_script

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.