Bagaimana saya bisa membuat skrip instalasi bash untuk pengaturan situs Wordpress saya (WP + plugins + theme)?


9

Saya membangun banyak situs web dengan Wordpress, dan pengaturan awal saya pada dasarnya selalu sama:

  • Versi WP terbaru
  • Versi terbaru sekitar 5 plugin
  • Tema pengembangan telanjang saya

Alih-alih mengunduh / mengunggah hal-hal ini secara terpisah dan melakukannya dengan tangan setiap kali saya memulai proyek baru, saya ingin membuat skrip bash yang akan melakukan ini:

  • Unduh versi terbaru dari Wordpress
  • Unzip
  • Unduh versi terbaru plugin X
  • Buka zip folder plugins WP
  • Unduh tema telanjang saya
  • Buka zip folder tema

Sekarang mengunduh WP terbaru itu mudah (http://wordpress.org/latest.tar.gz), mengunduh tema saya yang telanjang juga, tetapi saya kesulitan mendapatkan versi terbaru dari sebuah plugin, karena tidak disebut latest.tar.gztetapi spesifik nama dengan versi (mis: wptouch.1.9.26.zip)

EDIT: Jadi saya bertanya-tanya sekarang apakah mungkin menggunakan cURL dalam skrip bash saya untuk menemukan URL yang tepat dari versi Plugin saat ini. Idenya adalah untuk mengambil halaman, dan kemudian menemukan nilai hrefyang ada di paragraf setelah <h3>Current Version</h3>.

Berikut ini contohnya, semua halaman pengunduhan plugin di WP seperti ini:

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

Jawaban:


4

Untuk selalu mendapatkan plugin terbaru, ambil contoh plugin saya:

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

tautan unduhan untuk yang terbaru adalah:

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

tetapi jika Anda menghapus versi dari tautan unduhan, Anda selalu mendapatkan versi terbaru:

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

EDIT: Sudahkah Anda mempertimbangkan untuk menyimpan folder wordpress dan plugin terbaru? Kemudian segera setelah plugin baru atau wordpress keluar Anda cukup membongkar itu atas apa yang Anda miliki. Kemudian skrip bash Anda hanya mengemas seluruh lot yang akan digunakan pada instalasi.


1
Sialan, itu mudah, terima kasih. Sekarang saya bash scripting, saya harap saya bisa menyatukan sesuatu. Saya akan memposting hasilnya di sini.
mike23

Namun satu pertanyaan, dalam contoh Anda wordpress-file-monitor-plus.zip terdaftar di "Versi Pembangunan", itu tidak sama dengan versi stabil terbaru, bukan?
mike23

Oh begitu. Ini mungkin bukan versi terbaru ... Ini mungkin yang terbaru di bagasi. Maaf saya mungkin telah kehilangan informasi tentang Anda.
Scott

2
Saya akan pergi dengan SVN di sini. Di sana Anda dapat checkout / ekspor tag dengan angka tertinggi atau hanya trunk dari setiap plugin. Hal yang sama berlaku untuk WordPress Core .
rofflox

1
Tidak bisakah Anda membuka http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, menguraikan Stable Tag: Xbaris, lalu unduh http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn

1

Buat skrip bash:

touch wp_plugins_theme.sh

Jadikan Dapat Dieksekusi:

chmod +x ./wp_plugins_theme.sh

Salin ini ke dalamnya:

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

Jalankan perintah

./wp_plugins_theme.sh

Saya tahu ini sudah tua sekarang, tetapi yang paling dekat dengan jawaban yang benarhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer

0

Saya membuat skrip bash untuk memperbarui Wordpress menggunakan subversi seperti yang mereka rekomendasikan .

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

Saya telah memodifikasi ini untuk melakukan instalasi. Skrip kedua ini belum teruji tetapi Anda harus mulai. Anda perlu menulis create_wordpress_database_and_user.sql Anda sendiri - tetapi Anda tetap tidak menanyakannya dalam pertanyaan, jadi mungkin Anda bisa mengabaikannya.

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

Saya telah menggunakan git clonesebagai semacam bash orang miskin.

WordPress git diperbarui setiap 30 menit jadi saya mengkloningnya ke repo saya sendiri dengan plugin / tema saya sendiri atau cukup menarik langsung darinya.

Semuanya cukup cepat, sebenarnya hanya sekitar 2 baris, dan satu-satunya hal yang harus saya lakukan secara manual adalah membuat DB lokal dan mengedit config.php. Mungkin agak sulit memastikan Anda memperbarui WordPress ke versi terbaru jika Anda ingin melakukannya setiap 30 menit, tetapi saya biasanya hanya menggunakan versi stabil, dan menyimpan versi dev di lingkungan lain.

Ini terlihat seperti ini:

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

Kelemahan lainnya adalah agak sulit untuk mendapatkan plugin dari repo WordPress yang sebenarnya melalui git, dimungkinkan untuk melakukannya, menggunakan git svnperintah tetapi saya merasa itu tidak mudah untuk dikerjakan.


0

Saya telah membuat skrip bash untuk menginstal wordpress.

Script ini akan mengotomatiskan hal berikut:

  • Downlaod dan instal Wordpress secara otomatis
  • Buat Pengguna Default dengan kata sandi
  • Instal semua plugin default
  • Instal tema default atau khusus dengan url zip yang sering Anda gunakan.

Anda dapat menemukan skrip di github.com

https://github.com/jeoga/wordpress_install_bash_script

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.