Como posso criar um script de instalação do bash para minha configuração de sites do Wordpress (WP + plugins + tema)?


9

Eu construo muitos sites com o Wordpress, e minha configuração inicial é basicamente sempre a mesma:

  • Versão mais recente do WP
  • Versões mais recentes de cerca de 5 plugins
  • Meu tema de desenvolvimento nu

Em vez de fazer o download / upload dessas coisas separadamente e fazer isso manualmente sempre que iniciar um novo projeto, gostaria de criar um script bash que faria isso:

  • Baixe a versão mais recente do Wordpress
  • Descompactar
  • Baixe a versão mais recente do plugin X
  • Descompacte na pasta de plug-ins do WP
  • Baixe o meu tema nu
  • Descompacte na pasta de temas

Agora é fácil fazer o download do WP mais recente (http://wordpress.org/latest.tar.gz), baixar também o meu tema nu, mas estou tendo problemas para obter a versão mais recente de um plug-in, pois eles não são chamados, latest.tar.gzmas específicos. nomes com a versão (ex: wptouch.1.9.26.zip)

EDIT: Então, estou pensando agora se é possível usar cURL no meu script bash para encontrar a URL exata da versão atual de um plugin. A idéia seria buscar a página e, em seguida, encontrar o valor do valor hrefque está no parágrafo logo após o <h3>Current Version</h3>.

Aqui está um exemplo, todas as páginas de download de plugins no WP são assim:

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

Respostas:


4

Para obter sempre o plugin mais recente, por exemplo, use meu plugin:

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

o link de download da versão mais recente é:

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

mas se você remover a versão do link de download, sempre obterá a versão mais recente:

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

EDIT: Você já pensou em manter uma pasta dos mais recentes wordpress e plugins descompactados? Então, assim que um novo plugin ou wordpress for lançado, basta descompactá-lo sobre o que você possui. Então seu script bash apenas empacota todo o lote para ser usado em uma instalação.


11
Droga, isso foi fácil, obrigado. Agora que estou fora do script do bash, espero poder montar algo. Vou postar o resultado aqui.
Mike23

Uma pergunta, no seu exemplo, wordpress-file-monitor-plus.zip está listada em "Versão de Desenvolvimento", que não é a mesma que a versão estável mais recente, é?
Mike23

Ah eu vejo. Esta talvez não seja a versão mais recente ... Pode ser o que há de mais recente no porta-malas. Desculpe, eu posso ter perdido a informação.
1326 Scott

2
Eu iria com o SVN aqui. você pode fazer o checkout / exportar a tag com o número mais alto ou apenas o tronco de cada plug-in. O mesmo vale para o WordPress Core .
Rofflox

11
Você não pode simplesmente abrir http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt, analisar a Stable Tag: Xlinha e fazer o download http://downloads.wordpress.org/plugin/plugin-name.X.zip?
111111 Ian Dunn

1

Crie o script bash:

touch wp_plugins_theme.sh

Tornar executável:

chmod +x ./wp_plugins_theme.sh

Copie isso para ele:

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

Execute o comando

./wp_plugins_theme.sh

Eu sei que este é velho agora, mas é o mais próximo da resposta certa que deve ser simplesmentehttps://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
Sledge Hammer

0

Eu criei um script bash para atualizar o Wordpress usando o subversion, conforme recomendado .

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

Eu modifiquei isso para fazer a instalação. Esse segundo script não foi testado, mas deve começar. Você precisará escrever seu próprio create_wordpress_database_and_user.sql - mas não solicitou isso na pergunta de qualquer maneira, portanto, talvez você possa ignorá-lo.

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

Eu tenho usado git clonecomo uma espécie de festa do pobre homem.

O git do WordPress é atualizado a cada 30 minutos, então eu clonei-o em meu próprio repositório com meus próprios plugins / temas ou apenas puxei diretamente dele.

A coisa toda é bem rápida, na verdade, são apenas duas linhas, e a única coisa que preciso fazer manualmente é criar o banco de dados local e editar o config.php. Pode ser um pouco complicado garantir que você atualize o WordPress para a versão mais recente, se você quiser fazê-lo a cada 30 minutos, mas normalmente eu só uso a versão estável e mantenho a versão dev em outro ambiente.

Se parece com isso:

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

A outra desvantagem é que é um pouco difícil obter plugins do repositório real do WordPress através do git, é possível fazê-lo, usando o git svncomando, mas acho que ainda não é fácil trabalhar com isso.


0

Eu criei um script bash para instalar o wordpress.

Este script automatizará o seguinte:

  • Faça o downlaod e instale o Wordpress automaticamente
  • Criar usuários padrão com senhas
  • Instale todos os plugins padrão
  • Instale o tema padrão ou personalizado por URL de zip que você mais usa.

Você pode encontrar o script no github.com

https://github.com/jeoga/wordpress_install_bash_script

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.