Як я можу створити скрипт встановлення bash для налаштування моїх сайтів Wordpress (WP + плагіни + тема)?


9

Я будую багато веб-сайтів за допомогою Wordpress, і мої початкові налаштування завжди однакові:

  • Остання версія WP
  • Останні версії про близько 5 плагінів
  • Моя гола тема розвитку

Замість того, щоб завантажувати / завантажувати ці речі окремо, і робити це вручну кожного разу, коли я запускаю новий проект, я хотів би створити сценарій bash, який би це зробив:

  • Завантажте останню версію Wordpress
  • Розпакуйте
  • Завантажте останню версію плагіна X
  • Розпакуйте папку плагінів WP
  • Завантажте мою голу тему
  • Розпакуйте папку з темами

Тепер завантажувати останню версію WP легко (http://wordpress.org/latest.tar.gz), завантажуючи також мою голу тему, але у мене виникають проблеми з отриманням останньої версії плагіна, оскільки вони не називаються, latest.tar.gzа конкретні. імена з версією (наприклад: wptouch.1.9.26.zip)

EDIT: Тож мені цікаво, чи можна використовувати CURL в моєму скрипті bash, щоб знайти точну URL-адресу поточної версії плагіна. Ідеєю було б отримати сторінку, а потім знайти значення того, hrefщо є в абзаці відразу після <h3>Current Version</h3>.

Ось приклад, всі сторінки для завантаження плагінів на WP виглядають так:

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

Відповіді:


4

Щоб завжди отримувати останній плагін, візьміть, наприклад, мій плагін:

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

посилання для завантаження останніх:

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

але якщо ви видалите версію зі посилання для завантаження, ви завжди отримуєте останню версію:

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

РЕДАКТУВАННЯ: Чи розглядали ви можливість розпакування папки останнього Wordpress та плагінів? Потім, як тільки вийде новий плагін або wordpress, ви просто розпакуйте те, що у вас є. Тоді ваш скрипт bash просто пакує весь пакет, який буде використаний при встановленні.


1
Чорт, це було легко, дякую. Зараз я закінчуюсь грамотними сценаріями, сподіваюся, що зможу щось скласти разом. Я опублікую результат тут.
mike23

Хоча одне питання, але у вашому прикладі wordpress-file-monitor-plus.zip вказаний у розділі "Версія розробки", це не те саме, що остання стабільна версія, чи не так?
mike23

О Я бачу. Це, можливо, не найновіша версія ... Це може бути те, що зараз в багажнику. Вибачте, що я, можливо, пропустив вас.
Скотт

2
Я б пішов сюди зі СВН. Там ви можете перевірити / експортувати тег з найбільшою кількістю або просто багажник з кожного плагіна. Те саме стосується і WordPress Core .
rofflox

1
Не могли ви просто відкрити http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, розібрати Stable Tag: Xрядок і завантажити http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ян Данн

1

Створіть сценарій bash:

touch wp_plugins_theme.sh

Зробити виконуваним:

chmod +x ./wp_plugins_theme.sh

Скопіюйте це в нього:

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

Виконайте команду

./wp_plugins_theme.sh

Я знаю, що це вже старе, але це найближча до правильної відповіді, яка повинна бути простоhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
кувалда

0

Я створив сценарій bash, щоб оновити Wordpress, використовуючи підривну функцію рекомендують .

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

Я змінив це для встановлення. Цей другий сценарій неперевірений, але він повинен вас почати. Вам потрібно буде написати власний create_wordpress_database_and_user.sql - але ви в цьому питанні цього не запитували, тому, можливо, ви можете його проігнорувати.

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

Я використовую git clone як свого роду бідний ман баш.

Git WordPress оновлюється кожні 30 хвилин, тому я клоную його до власного репо-версії за допомогою власних плагінів / тем або просто витягую з нього безпосередньо.

Вся справа досить швидка, насправді мова йде лише про 2 рядки, і єдине, що мені потрібно зробити вручну, - це створити локальний БД та редагувати config.php. Це може бути трохи складно, переконайтесь, що ви оновлюєте WordPress до останньої версії, якщо ви хочете робити це кожні 30 хвилин, але я, як правило, використовую лише стабільну версію і зберігаю версію розробника в іншому середовищі.

Це виглядає приблизно так:

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

Інший недолік полягає в тому, що плагіни з фактичного репортажу WordPress через git трохи важко отримати, це можна зробити, використовуючи git svnкоманду, але мені здається, що з цим працювати не так просто.


0

Я створив сценарій bash для встановлення wordpress.

Цей скрипт автоматизує наступне:

  • Завантажте і встановіть Wordpress автоматично
  • Створіть користувачів за замовчуванням з паролями
  • Встановіть усі додатки за замовчуванням
  • Встановіть за замовчуванням або власну тему за поштовим URL-адресою, яку ви в основному використовували.

Ви можете знайти сценарій на github.com

https://github.com/jeoga/wordpress_install_bash_script

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.