Automatiser l’installation de WordPress et de vos plugins habituels en 1 clic

2

Un script pour automatiser la création de vos nouveaux projets Wordpress : Installation, configuration et activation de vos plugins préférés en une seule commande

Marre de toujours effectuer les mêmes opérations à chaque création de nouveaux projets WordPress? Voici un script simple permettant d’installer WordPress, de la configurer, d’activer vos plugins habituels et d’en ajouter en fonction de vos besoins, tout cela grâce à une simple commande : wpinstall

Installation du script

  1. Vous devez au préalable avoir WP-CLI d’installer sur votre serveur (voir : installer WP-CLI en 1 minute)
  2. Télécharger le script sur Github : wget https://github.com/plaurent75/WordpressInstaller/blob/master/install-wordpress.sh
  3. Rendre le script exécutable : chmod +x install-wordpress.sh
  4. Créer un alias pour le script echo « alias wpinstall=’/DossierOuEstStockeLeScript/install-wordpress.sh' » >> ~/.bashrc
  5. Recharger votre profil pour prendre en compte ce nouvel alias : source ~/.bashrc

Voilà, c’est fait, vous avez installé le script. Pour l’utiliser, il suffit juste de taper wpinstall dans votre console et de suivre les instructions.

Mode d’emploi

Voir la vidéo de présentation du script en bas de cet article

Dans votre console, taper simplement wpinstall (ou sudo wpinstall selon votre configuration) puis suivez les instructions. Le script vous pose 10 questions très simple auquel vous répondez directement dans votre console sh :

  1. INSTALLPATH: Chemin vers le dossier d’installation (ex: /home/demosite/www )
  2. Database Name: nom de votre base de donnée
  3. Database User: utilisateur mysql
  4. Database Password: mot de passe mysql
  5. WP username: identifiant de l’admin
  6. WP Password: mot de passe admin
  7. WP Email: email de l’admin
  8. WP URL: l’url de votre site wordpress
  9. Site Title: le nom du site
  10. Language: langue du site (télécharger la version Française si language=fr_FR, etc …)

En confirmant l’installation, le script démarre le téléchargement de la dernière version de wordpress dans la langue choisie. Il install et configure les options générale et crée le compte administrateur

Ensuite il télécharge et active les plugins désirés (la liste peut-être éditée directement dans le script). Il vous propose aussi d’ajouter des plugins supplémentaires. Il suffit de répondre y à la question « would you like to install more plugins? » et d’ensuite taper soit le slug du plugin, soit le lien direct vers le zip du plugin. Vous pouvez ajouter autant de plugins que vous le souhaitez. Une fois que vous avez ajoutés tous vos plugins, taper n à la question et le script poursuit son installation.

A la fin du script, vous avez la possibilité d’appliquer des droits différents au dossier d’installation de votre site. Si c’est le cas, répondez y et entrez le user et le group pour une mise à jour récursive des droits des dossiers et fichiers de votre installation.

Vidéo de présentation

Code Source

Information et téléchargement sur mon compte GitHub

https://github.com/plaurent75/WordpressInstaller

#!/bin/bash


echo "================================================================="
echo "WordPress Installer!!"
echo "By Patrice LAURENT"
echo "http://www.patricelaurent.net"
echo "================================================================="

#Thank you GUILLAUME for this method
#https://twitter.com/iKonenn
control_c(){
	echo -en "\n*** Ouch! Brutal Exiting :) ***\n"
exit $?
}

trap control_c SIGINT

# accept user input for the databse name
echo "INSTALLPATH (WP CLI WILL WORK IN INSTALLPATH like /home/folder/wwww without SLASH at the END ): "
read -e folderpath

if [ ! -d "$folderpath" ]; then
	echo "$folderpath ....This folder Does Not exist"
	echo "You must create this folder before ...exiting"
	echo "================================================================="
	echo "END of SCRIPT .... ERROR"
	echo "================================================================="

	exit
fi

# accept user input
echo "Database Name: "
read -e dbname

echo "Database User: "
read -e dbuser

echo "Database Password: "
read -e dbpass

echo "WP username: "
read -e wpuser

echo "WP email: "
read -e wpemail

echo "WP Password: "
read -e wppassword

echo "WP URL: "
read -e wpurl

# accept the name of our website
echo "Site Title: "
read -e wptitle

# accept the name of our website
echo "Language (e.g: fr_FR ): "
read -e wplang

# add a simple yes/no confirmation before we proceed
echo "Run Install? (y/n)"
read -e run
# if the user didn't say no, then go ahead an install
if [ "$run" == n ] ; then
	exit
else
	if [ -d "$folderpath" ]; then
		cd $folderpath
	else
		echo "$folderpath ....This folder Does Not exist"
		echo "You must create this folder before ...exiting"
		echo "================================================================="
		echo "END of SCRIPT .... ERROR"
		echo "================================================================="

		exit
	fi
#NETTOYAGE
rm index.html
echo "Directory WWW clean"

echo "Downloading wordpress...."
wp core download --locale=$wplang --force
wp core version
echo "creating wp-config.php ...."
wp core config --dbname=$dbname --dbuser=$dbuser --dbpass=$dbpass --extra-php <<PHP
define('AUTOSAVE_INTERVAL', 300 );
define('WP_POST_REVISIONS', false );
define( 'WP_AUTO_UPDATE_CORE', true );
define( 'WP_DEBUG', false );
PHP
echo "Wordpress install in progress...."
wp core install --url=$wpurl --title="$wptitle" --admin_user=$wpuser --admin_email=$wpemail --admin_password=$wppassword
echo "Wordpress Isntallation Done"
wp site empty
echo "reseting wordpress....done: wordpress is now empty"

# PARAMETRAGE GENERAL
echo "modification des options en cours"
wp option update blog_public 0
wp option update timezone_string Europe/Paris
wp option update date_format 'j F Y'
wp option update time_format 'G \h i \m\i\n'
echo "Wordpress options done"

# NETTOYAGE
echo "Cleaning in progress....."
wp post delete 1 --force # Article exemple - no trash. Comment is also deleted
wp post delete 2 --force # page exemple
wp plugin delete hello
wp theme delete twentytwelve
wp theme delete twentythirteen
wp theme delete twentyfourteen
wp widget delete $(wp widget list sidebar-1 --format=ids)
echo "done"

#PLUGINS
echo "Installing Plugins ....."
wp plugin install akismet --activate
wp plugin install contact-form-7 --activate
wp plugin install cookie-law-info --activate
wp plugin install jetpack --activate
wp plugin install tablepress --activate
wp plugin install wordpress-seo --activate
wp plugin install really-simple-captcha --activate
echo "Plugins installed"

#Function Plugins supplémentaires
MorePlug()
{
	echo "Would you like to install more plugin? (y/n)"
	read -e supplements
	if [ "$supplements" == y ] ; then

		echo "URL(Direct zip link) or slug from WordPress.org"
		read -e plugslug
		wp plugin install $plugslug --activate
		echo "$plugslug installed and activated"
		MorePlug
	else
		echo "All plugins have been installed. Go to the news Step of WordPress Easy Install"
	fi
}

MorePlug



# PARAMETRAGE PERMALIENS (avec modif du .htaccess)
wp rewrite structure "/%postname%/" --hard
wp rewrite flush --hard

#Give right to the user
echo "Do you want to Fix rights to your new install? (y/n)? :"
read -e fixrights
if [ "$fixrights" == y ] ; then

	echo "set user (username):"
	read -e userright
	if [ -n "$userright" ]; then

		echo "set group (generallys :users) :"
		read -e groupright
		if [ -n "$groupright" ]; then
			chown -R $userright:$groupright $migratepath
		fi
	fi

fi

echo "================================================================="
echo "Installation ok."
echo ""
echo "Username WP: $wpuser"
echo "Password WP: $wppassword"
echo "URL WP: $wpurl"
echo ""
echo "By Patrice LAURENT"
echo "http://www.patricelaurent.net"
echo "Have a nice day"
echo "================================================================="

exit
fi


  • Gilles Dumas

    wow chapeau pour ce script. Pas essayé mais prometteur

    • Merci Gilles. Je prépare une nouvelle version, qui sera plus intuitive
      et surtout compatible avec plus d’environnement. Wp-cli a pas mal évolué depuis. Par contre, je ne sais
      pas pour quand ^^… Trop de projets en cours, je cours après le temps

Recevoir la newsletter

Recevoir la newsletter

Recevez les dernières news et astuces Wordpress & Développement Web par email une fois par semaine

Bravo, vous êtes inscrits