-
-
Save PontusTideman/aab36bad688aa428eeaba9e3320afb12 to your computer and use it in GitHub Desktop.
Bash script to install and set up WordPress on new cPanel account in WHM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#/bin/bash | |
# Script for automating new account setups with WordPress installed | |
echo Lets setup a new WordPress dev site! | |
# Get user input | |
# Us RegEx to check for valid domain | |
read -p 'Enter the domain name: ' domain | |
result=`echo $domain | grep -P '(?=^.{1,254}$)(^(?>(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{2,})$)'` | |
if [[ -z "$result" ]] | |
then | |
echo -e "\nNot a valid domain!" | |
exit | |
fi | |
read -p 'Enter a username for the account (15 characters max): ' username | |
read -sp 'Enter a password for the account: ' password | |
# Create cPanel account | |
echo -e "\n\nCreating new cPanel account for $domain" | |
whmapi1 createacct username=${username:0:15} domain=$domain plan=Unlimited featurelist=default quota=0 password=$password ip=n cgi=0 hasshell=1 contactemail=info@thisisvisceral.com cpmod=paper_lantern maxftp=unlimited maxsql=unlimited maxpop=unlimited maxlst=unlimited maxsub=unlimited maxpark=unlimited maxaddon=unlimited bwlimit=unlimited language=en useregns=1 hasuseregns=1 reseller=0 forcedns=1 mxcheck=local max_email_per_hour=500 max_defer_fail_percentage=80 | |
# Create mySQL database | |
dbname=${username:0:8}"_wordpress" | |
dbuser=${username:0:8}"_dbuser" | |
dbpassword=$password"sql" | |
echo -e "\n\nCreating mySQL database ($dbname) in new cPanel account" | |
uapi --user=$username Mysql create_database name=$dbname | |
uapi --user=$username Mysql create_user name=$dbuser password=$dbpassword | |
uapi --user=$username Mysql set_privileges_on_database user=$dbuser database=$dbname privileges=ALL%20PRIVILEGES | |
# Install WordPress | |
wppassword=$password"wp" | |
echo -e "\n\nInstalling WordPress" | |
cd /home/${username:0:15}/public_html | |
wp core download --allow-root | |
chown -R ${username:0:15}:${username:0:15} * | |
wp core config --dbname=$dbname --dbuser=$dbuser --dbpass=$dbpassword --allow-root | |
wp core install --url=$domain --title=$domain --admin_user=Visceral_Dev_Admin --admin_email=info@thisisvisceral.com --admin_password=$wppassword --allow-root | |
chown -R ${username:0:15}:${username:0:15} * | |
# Finish | |
echo -e "\n\nSuccess!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment