Skip to content

Instantly share code, notes, and snippets.

@dimaguy
Forked from bgallagh3r/wp.sh
Last active August 2, 2018 22:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimaguy/9229c8626edb757ba6c9bdc77afae843 to your computer and use it in GitHub Desktop.
Save dimaguy/9229c8626edb757ba6c9bdc77afae843 to your computer and use it in GitHub Desktop.
Wordpress: Bash Install Script -- Downloads latest WP version AND it's dependencies(unlike the others), updates wp-config with user supplied DB name, username and password, creates and CHMOD's uploads dir, copies all the files into the root dir you run the script from, then it does NOT deletes itself(unlike the others), because so it can be re-u…
#!/bin/bash -e
clear
echo "============================================"
echo "WordPress Install Script"
echo "============================================"
echo "Database Name: "
read -e dbname
echo "Database User: "
read -e dbuser
echo "Database Password: "
read -s dbpass
echo "run install? (y/n)"
read -e run
if [ "$run" == n ] ; then
exit
else
echo "============================================"
echo "A robot is now installing WordPress for you."
echo "============================================"
#download wordpress and its dependencies
sudo apt-get update
sudo apt-get install apache2 mysql-server php-curl php-gd php-mbstring php-xml php-xmlrpc php-mysql
curl -O https://wordpress.org/latest.tar.gz
#unzip wordpress
tar -zxvf latest.tar.gz
#change dir to wordpress
cd wordpress
#copy file to parent dir
cp -rf . ..
#move back to parent dir
cd ..
#remove files from wordpress folder
rm -R wordpress
#create wp config
cp wp-config-sample.php wp-config.php
#set database details with perl find and replace
perl -pi -e "s/database_name_here/$dbname/g" wp-config.php
perl -pi -e "s/username_here/$dbuser/g" wp-config.php
perl -pi -e "s/password_here/$dbpass/g" wp-config.php
#set WP salts
perl -i -pe'
BEGIN {
@chars = ("a" .. "z", "A" .. "Z", 0 .. 9);
push @chars, split //, "!@#$%^&*()-_ []{}<>~\`+=,.;:/?|";
sub salt { join "", map $chars[ rand @chars ], 1 .. 64 }
}
s/put your unique phrase here/salt()/ge
' wp-config.php
#create uploads folder and set permissions
mkdir wp-content/uploads
chmod 775 wp-content/uploads
echo "Cleaning..."
#remove zip file
rm latest.tar.gz
echo "========================="
echo "Installation is complete."
echo "========================="
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment