From 129a75c8a60394c4564ee88f4c2c414609744708 Mon Sep 17 00:00:00 2001 From: gau1991 Date: Mon, 16 Jun 2014 20:06:57 +0530 Subject: [PATCH] Added ee site conetents --- src/lib/ee_lib_process_site_name.sh | 19 ++++++++ src/lib/ee_lib_symbolic_link.sh | 9 ++++ src/lib/ee_lib_variables.sh | 8 ++++ .../site/create/ee_mod_domain_setup.sh | 31 +++++++++++++ .../site/create/ee_mode_create_database.sh | 46 +++++++++++++++++++ 5 files changed, 113 insertions(+) create mode 100644 src/lib/ee_lib_process_site_name.sh create mode 100644 src/lib/ee_lib_symbolic_link.sh create mode 100644 src/modules/site/create/ee_mod_domain_setup.sh create mode 100644 src/modules/site/create/ee_mode_create_database.sh diff --git a/src/lib/ee_lib_process_site_name.sh b/src/lib/ee_lib_process_site_name.sh new file mode 100644 index 00000000..68171cc0 --- /dev/null +++ b/src/lib/ee_lib_process_site_name.sh @@ -0,0 +1,19 @@ +# Removes https://, http://, www from site name + +function ee_lib_prcoess_site_name() +{ + # Check EE_SITE_NAME is empty or not + if [ -z "$EE_SITE_NAME" ] + then + # Ask users to enter domain name + read -p "Enter domain name: " EE_SITE_NAME + # Remove http:// https:// & www. + EE_DOMAIN=$(echo $EE_SITE_NAME | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'www.''" | sed "s'/''") + else + # Remove http:// https:// & www. + EE_DOMAIN=$(echo $EE_SITE_NAME | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'www.''" | sed "s'/''") + fi + + # Remove http:// https:// for WordPress setup (www.example.com) + EE_WWWDOMAIN=$(echo $EE_SITE_NAME | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'/''") +} diff --git a/src/lib/ee_lib_symbolic_link.sh b/src/lib/ee_lib_symbolic_link.sh new file mode 100644 index 00000000..fe4b6cf0 --- /dev/null +++ b/src/lib/ee_lib_symbolic_link.sh @@ -0,0 +1,9 @@ +# Create symbolic link for site name + +function ee_lib_symbolic_link() +{ + # Creating symbolic link + ee_lib_echo "Creating symbolic link, please wait..." + ln -sf $1 $2 \ + || ee_lib_error "Unable to create symbolic link for $1 -> $2, exit status = " $? +} diff --git a/src/lib/ee_lib_variables.sh b/src/lib/ee_lib_variables.sh index d030b9ad..c01f0ad9 100644 --- a/src/lib/ee_lib_variables.sh +++ b/src/lib/ee_lib_variables.sh @@ -39,6 +39,14 @@ else readonly EE_PHP_USER=www-data fi +# Find out MySQL hostname + +if [ -z $($EE_CONFIG_GET mysql.host) ]; then + readonly EE_MYSQL_HOST=localhost +else + readonly EE_MYSQL_HOST=$($EE_CONFIG_GET mysql.host) +fi + # Find out MySQL login if [ -f ~/.my.cnf ];then readonly EE_MYSQL_USER=$(cat ~/.my.cnf | grep user | cut -d'=' -f2) diff --git a/src/modules/site/create/ee_mod_domain_setup.sh b/src/modules/site/create/ee_mod_domain_setup.sh new file mode 100644 index 00000000..4f1c1a5c --- /dev/null +++ b/src/modules/site/create/ee_mod_domain_setup.sh @@ -0,0 +1,31 @@ +#Setup domain + +function ee_domain_setup() +{ + #Check the NGINX configuration exist for $EE_DOMAIN + ls /etc/nginx/sites-available/$EE_DOMAIN &> $EE_ERROR_LOG + + if [ $? -ne 0 ];then + # Creating website $EE_DOMAIN + ee_lib_echo "Creating $EE_DOMAIN, please wait..." + sed "s/example.com/$EE_DOMAIN/g" \ + /usr/share/easyengine/nginx/$EE_NGINX_CONF \ + > /etc/nginx/sites-available/$EE_DOMAIN \ + || ee_lib_error "Unable to create NGINX configuration file for $EE_DOMAIN, exit status = " $? + + # Creating symbolic link + ee_lib_symbolic_link /etc/nginx/sites-available/$EE_DOMAIN /etc/nginx/sites-enabled/ + + # Creating htdocs & logs directory + ee_lib_echo "Creating htdocs & logs directory" + mkdir -p /var/www/$EE_DOMAIN/htdocs && mkdir -p /var/www/$EE_DOMAIN/logs \ + || ee_lib_error "Unable to create htdocs & logs directory, exit status = " $? + + # Creating symbolic links for logs + ee_lib_echo "Creating symbolic link for logs" + ee_lib_symbolic_link /var/log/nginx/$EE_DOMAIN.access.log /var/www/$EE_DOMAIN/logs/access.log + ee_lib_symbolic_link /var/log/nginx/$EE_DOMAIN.error.log /var/www/$EE_DOMAIN/logs/error.log + else + ee_lib_error "$EE_DOMAIN already exist, exit status = " $? + fi +} diff --git a/src/modules/site/create/ee_mode_create_database.sh b/src/modules/site/create/ee_mode_create_database.sh new file mode 100644 index 00000000..12ee7d68 --- /dev/null +++ b/src/modules/site/create/ee_mode_create_database.sh @@ -0,0 +1,46 @@ +# Create Database for WordPress site + +function ee_mod_create_database() +{ + local ee_replace_dot=$(echo $EE_DOMAIN | tr '.' '_') + # Check use default database user or custom database user + EE_WP_DB_RANDOM_PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) + + # Setup MySQL database + if [ $($EE_CONFIG_GET mysql.db-name) == "true" ];then + read -p "Enter the MySQL database name [$ee_replace_dot]: " ee_database_name + fi + + if [ $ee_database_name = "" ]; then + ee_database_name=$ee_replace_dot + fi + + mysql -e "create database \`${ee_database_name}\`" \ + || ee_lib_error "Unable to create $ee_database_name database" + + # Setup MySQL user + if [ $($EE_CONFIG_GET mysql.db-user) == "true" ];then + read -p "Enter the MySQL database username [$ee_replace_dot]: " ee_database_user + read -sp "Enter The MySQL Database Password [$EE_WP_DB_RANDOM_PASSWORD]: " EE_WP_DB_PASS + fi + elif + ee_database_user=$ee_replace_dot + # Fix MySQL USER ERROR 1470 (HY000) + EE_WP_DB_PASS=$EE_WP_DB_RANDOM_PASSWORD + fi + + local ee_mysql_user_16=$(echo -n $ee_database_user | wc -c) + + if [[ $ee_mysql_user_16 -gt 16 ]]; then + echo "MySQL database username $ee_database_user = $ee_mysql_user_16" &>> $EE_COMMAND_LOG + ee_lib_echo "Auto fix MySQL username to the 16 characters" + local ee_random_character=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n1) + ee_database_user=$(echo $ee_mysql_user_16 | cut -c1-16 | sed "s/.\{10\}$/$ee_random_character/") + fi + + # create separate user & grant permission + echo -e "ee_database_name = $ee_database_name \nWPDBUSER = $ee_database_user \nWPDBPASS = $EE_WP_DB_PASS" &>> $EE_COMMAND_LOG + mysql -e "create user '$ee_database_user'@'$MYSQLHOST' identified by '$EE_WP_DB_PASS'" + mysql -e "grant all privileges on \`$ee_database_name\`.* to '$ee_database_user'@'$MYSQLHOST'" + mysql -e "flush privileges" +}