Last active
January 1, 2016 09:39
-
-
Save thejsj/8126749 to your computer and use it in GitHub Desktop.
Create a Wordpress installation through the command line with its corresponding MySQL database.
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 | |
# Creating Wordpress Instalation | |
THIS_YEAR=$(date +%Y) | |
if [[ -z "$1" ]]; then | |
PROJECT_NAME=$1 | |
fi; | |
if [[ -z "$PROJECT_NAME" ]]; then | |
read -p "Wordpress Project Name : " PROJECT_NAME | |
fi; | |
DATABASE_NAME=${PROJECT_NAME//-/_} | |
USER_NAME=${DATABASE_NAME:0:15} | |
echo "PROJECT_NAME : ${PROJECT_NAME}" | |
echo "DATABASE_NAME : ${DATABASE_NAME}" | |
echo "USER_NAME : ${USER_NAME}" | |
mkdir ~/Sites/${THIS_YEAR}/${PROJECT_NAME} | |
cd ~/Sites/${THIS_YEAR}/${PROJECT_NAME} | |
wget http://wordpress.org/latest.tar.gz | |
tar -xzvf latest.tar.gz | |
mv ./wordpress/* ./ | |
rm ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/latest.tar.gz | |
rmdir ./wordpress/ | |
# Ask For Database | |
echo -n "Create Database for WP instalation with Project Name ? (y/n) > " | |
if read -t 60 response_create_db; then | |
if [ 'y' = "$response_create_db" ]; then | |
echo -n "Root MySQL Password ? > " | |
if read -t 60 mysql_pass; then | |
NEW_PASSWORD=$(env LC_CTYPE=C tr -dc "a-zA-Z0-9-_\$\?" < /dev/urandom | head -c 10) | |
mysql -u root -p${mysql_pass} -e "CREATE DATABASE IF NOT EXISTS ${PROJECT_NAME}"; | |
mysql -u root -p${mysql_pass} -e "DROP USER ${PROJECT_NAME}"; | |
mysql -u root -p${mysql_pass} -e "GRANT ALL PRIVILEGES ON ${PROJECT_NAME}.* TO '${PROJECT_NAME}'@'localhost' IDENTIFIED BY '${NEW_PASSWORD}';" | |
mysql -u root -p${mysql_pass} -e "FLUSH PRIVILEGES;" # Is this really necesary? Probably not. | |
fi; | |
fi; | |
# Re-Write WP-Config | |
echo -n "Change Config File ? (y/n) > " | |
if read -t 60 change_config_file; then | |
cp ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config-sample.php ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
# | |
# /** The name of the database for WordPress */ | |
# define('DB_NAME', 'database_name_here'); | |
# | |
# /** MySQL database username */ | |
# define('DB_USER', 'username_here'); | |
# | |
# /** MySQL database password */ | |
# define('DB_PASSWORD', 'password_here'); | |
# | |
echo "/** The name of the database for WordPress */" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
echo "define('DB_NAME', '$PROJECT_NAME');" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
echo "/** MySQL database username */" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
echo "define('DB_USER', '$PROJECT_NAME');" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
echo "/** MySQL database password */" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
echo "define('DB_PASSWORD', '$NEW_PASSWORD');" >> ~/Sites/${THIS_YEAR}/${PROJECT_NAME}/wp-config.php | |
fi; | |
fi; | |
cd ~/Sites/scripts/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment