Làm cách nào tôi có thể tạo tập lệnh cài đặt bash cho thiết lập trang Wordpress của mình (WP + plugin + theme)?


9

Tôi xây dựng rất nhiều trang web với Wordpress và thiết lập ban đầu của tôi về cơ bản luôn giống nhau:

  • Phiên bản mới nhất của WP
  • Phiên bản mới nhất của khoảng 5 plugin
  • Chủ đề phát triển trần trụi của tôi

Thay vì tải xuống / tải lên những thứ này một cách riêng biệt và làm điều đó bằng tay mỗi khi tôi bắt đầu một dự án mới, tôi muốn tạo một tập lệnh bash sẽ làm điều này:

  • Tải xuống phiên bản Wordpress mới nhất
  • Giải nén
  • Tải xuống phiên bản mới nhất của plugin X
  • Giải nén vào thư mục plugin WP
  • Tải về chủ đề trần trụi của tôi
  • Giải nén vào thư mục chủ đề

Bây giờ việc tải xuống WP mới nhất rất dễ dàng (http://wordpress.org/latest.tar.gz), cũng tải xuống chủ đề trần trụi của tôi, nhưng tôi gặp khó khăn khi tải phiên bản mới nhất của plugin, vì chúng không được gọi latest.tar.gznhưng chỉ định tên với phiên bản (ví dụ: wptouch.1.9.26.zip)

EDIT: Vì vậy, bây giờ tôi tự hỏi liệu có thể sử dụng cURL trong tập lệnh bash của tôi để tìm URL chính xác của phiên bản hiện tại của plugin không. Ý tưởng sẽ là tìm nạp trang, và sau đó tìm giá trị của cái hrefđó trong đoạn ngay sau <h3>Current Version</h3>.

Dưới đây là một ví dụ, tất cả các trang tải xuống plugin trên WP đều như thế này:

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

Câu trả lời:


4

Để luôn nhận được plugin mới nhất, ví dụ như plugin của tôi:

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

liên kết tải xuống mới nhất là:

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

nhưng nếu bạn xóa phiên bản khỏi liên kết tải xuống, bạn luôn có phiên bản mới nhất:

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

EDIT: Bạn đã xem xét việc giữ một thư mục của wordpress và plugin mới nhất chưa được giải nén chưa? Sau đó, ngay khi một plugin hoặc wordpress mới xuất hiện, bạn chỉ cần giải nén nó qua những gì bạn có. Sau đó, tập lệnh bash của bạn chỉ gói toàn bộ lô được sử dụng khi cài đặt.


1
Chết tiệt, thật dễ dàng, cảm ơn. Bây giờ tôi đã tắt bash scripting, tôi hy vọng tôi có thể đặt một cái gì đó lại với nhau. Tôi sẽ đăng kết quả ở đây.
mike23

Mặc dù vậy, một câu hỏi, trong ví dụ của bạn wordpress-file-monitor-plus.zip được liệt kê trong "Phiên bản phát triển", nó không giống với phiên bản ổn định mới nhất, phải không?
mike23

Ồ tôi hiểu rồi. Đây có thể không phải là phiên bản mới nhất ... Nó có thể là những gì hiện tại mới nhất trong thân cây. Xin lỗi tôi có thể đã bỏ lỡ thông báo cho bạn.
Brady

2
Tôi sẽ đi với SVN ở đây. Ở đó bạn có thể kiểm tra / xuất thẻ với số lượng cao nhất hoặc chỉ thân cây từ mỗi plugin. Tương tự với WordPress Core .
rofflox

1
Bạn không thể mở http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, phân tích Stable Tag: Xdòng, sau đó tải xuống http://downloads.wordpress.org/plugin/plugin-name.X.zip?
Ian Dunn

1

Tạo tập lệnh bash:

touch wp_plugins_theme.sh

Thực hiện:

chmod +x ./wp_plugins_theme.sh

Sao chép này vào nó:

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

Chạy lệnh

./wp_plugins_theme.sh

Tôi biết rằng bây giờ nó đã cũ nhưng nó là câu trả lời gần nhất với câu trả lời đúng nên đơn giản làhttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer

0

Tôi đã tạo một tập lệnh bash để cập nhật Wordpress bằng cách sử dụng lật đổ như họ đề xuất .

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

Tôi đã sửa đổi điều này để thực hiện cài đặt. Kịch bản thứ hai này chưa được kiểm tra nhưng nó sẽ giúp bạn bắt đầu. Bạn sẽ cần phải tự tạo created_wordpress_database_and_user.sql - nhưng dù sao bạn cũng không hỏi điều đó trong câu hỏi, vì vậy có lẽ bạn có thể bỏ qua nó.

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

Tôi đã được sử dụng git clonenhư một loại bash người nghèo.

WordPress git được cập nhật cứ sau 30 phút, vì vậy tôi sao chép nó vào repo của riêng tôi với các plugin / chủ đề của riêng tôi hoặc chỉ cần lấy trực tiếp từ nó.

Toàn bộ điều này khá nhanh, thực tế nó chỉ có khoảng 2 dòng và điều duy nhất tôi phải làm thủ công là tạo DB cục bộ và chỉnh sửa config.php. Có thể hơi khó để đảm bảo bạn cập nhật WordPress lên phiên bản mới nhất nếu bạn muốn làm điều đó cứ sau 30 phút, nhưng tôi thường chỉ sử dụng phiên bản ổn định và giữ phiên bản dev ở môi trường khác.

Nó trông như thế này:

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

Nhược điểm khác là hơi khó để có được các plugin từ repo WordPress thực tế thông qua git, có thể làm điều đó, bằng cách sử dụng git svnlệnh nhưng tôi thấy nó không dễ để làm việc với nó.


0

Tôi đã tạo một tập lệnh bash để cài đặt wordpress.

Kịch bản này sẽ tự động hóa như sau:

  • Downlaod và cài đặt Wordpress tự động
  • Tạo người dùng mặc định bằng mật khẩu
  • Cài đặt tất cả các plugin mặc định
  • Cài đặt chủ đề mặc định hoặc tùy chỉnh bằng url zip mà bạn chủ yếu sử dụng.

Bạn có thể tìm thấy tập lệnh trên github.com

https://github.com/jeoga/wordpress_install_bash_script

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.