I have previously have demonstrated how WP-CLI can be used to batch install plugins. If you are on Cloudways or Siteground then you have WP-CLI access and get easily provision new installations. If you are running wplib box, VVV or something else Vagrant based you likely have WP-CLI as well.
Automatically install the following on your local install or host if they support WP-CLI
- Plugins from wordpress.org repository
- Premium plugins from cloud storage
- Theme from wp.org repository or cloud storage
WP-CLI WordPress Provision Script for New Installations
Create an empty file for the WordPress provisioning script
nano wpsetup.sh
Paste the script and adjust the plugin and theme values
#!/usr/bin/env bash
# Purpose: WordPress provisioning script
# Source: https://guides.wp-bullet.com
# Author: Mike
# Verify WP-CLI is installed
if hash wp 2>/dev/null; then
echo "wp-cli not installed"
exit
fi
# define WordPress path
WPPATH="/var/www/wp-bullet.com"
# array containing plugin list to install from wp.org repository, separate plugin slugs with spaces
PLUGINS=(autoptimize wordpress-seo worker updraftplus aceide wp-file-manager)
# plugin list of remote urls like paid plugins stored on dropbox, separate urls with spaces
PLUGINSREMOTE=(https://github.com/wp-plugins/adminer/archive/master.zip http://exampleurl)
# plugins to remove
PLUGINSREMOVE=(akismet hello)
# choose theme to install from repository or replace with URL
THEME="generatepress"
# install theme
wp theme install $THEME --activate --path=$WPPATH --skip-plugins --skip-themes --allow-root
# install plugins
wp plugin install ${PLUGINS[@]} ${PLUGINSREMOTE[@]} --activate --path=$WPPATH --skip-plugins --skip-themes --allow-root
# delete plugins
wp plugin deactivate ${PLUGINSREMOVE[@]} --uninstall --path=$WPPATH --skip-plugins --skip-themes --allow-root
wp plugin delete ${PLUGINSREMOVE[@]} --path=$WPPATH --skip-plugins --skip-themes --allow-root
Ctrl+X, Y and Enter to Save and Exit.
If you ran the script as the root user be sure to reset permissions
sudo chown -R www-data:www-data /var/www/
sudo find /var/www/ -type f -exec chmod 644 {} +
sudo find /var/www/ -type d -exec chmod 755 {} +
Running the script is as easy as using this command
bash wpsetup.sh
This should make life easier 🙂