#!/bin/bash # Help Function EngineHelp() { echo echo "Usage: `basename $0` [OPTION] [ARGUMENT]..." echo echo "OPTION:" echo " `basename $0` [system] [install|remove|purge] [nginx|php|mysql|postfix|--all]" echo echo " `basename $0` [site] [read] [all|active|sitename]" echo " `basename $0` [site] [create] [sitename] [--with-wordpress]" echo " `basename $0` [site] [update] [sitename] [singlesite] [w3total|wpsuper|fastcgi]" echo " `basename $0` [site] [update] [sitename] [multisite] [subdomain|subdirectory] [w3total|wpsuper|fastcgi]" echo " `basename $0` [site] [delete] [sitename] [--database|--webroot|--all]" echo echo " `basename $0` [config] [set|get] [memory|timeout]" echo echo " `basename $0` [update] " echo echo "Exit status:" echo " 0 if OK," echo " 100 sudo privilege required," echo " 101 command failed to execute," } # Make Variables Available For Later Use LOGDIR=/var/log/easyengine MAINLOG=/var/log/easyengine/main.log ERRORLOG=/var/log/easyengine/error.log # Capture Errors OwnError() { echo -e "[ `date` ] \033[31m $@ \e[0m" | tee -ai $ERRORLOG exit 101 } # GET Information Function MYSQLINFO() { # Get The MySQL Username/Password read -p "MySQL Host [localhost]: " MYSQLHOST if [ -f ~/.my.cnf ] then MYSQLUSER=$(cat ~/.my.cnf | grep user | cut -d'=' -f2) MYSQLPASS=$(cat ~/.my.cnf | grep pass | cut -d'=' -f2) else read -p "Enter The MySQL Username: " MYSQLUSER # Turn Off Echo For Passwords stty -echo read -p "Enter The MySQL Password: " MYSQLPASS stty echo echo fi read -p "Enter The MySQL Database Name [$DOMAIN]: " WPDBNAME # If Enter Is Pressed, Then Use localhost as MySQL Host if [[ $MYSQLHOST = "" ]] then MYSQLHOST=localhost #echo $MYSQLHOST fi # If Enter Is Pressed, Then Use $DOMAIN As Database Name if [[ $WPDBNAME = "" ]] then WPDBNAME=$DOMAIN #echo $WPDBNAME fi # Create Database mysql -u $MYSQLUSER -p$MYSQLPASS -e "create database \`$WPDBNAME\`" \ || OwnError "Unable To Create $WPDBNAME Database" } WEBUSERINFO() { # Nginx User NGINXUSER=$(grep user /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) \ || OwnError "Unable To Findout Nginx Username" } NGINXRELOAD() { # Test & Reload Nginx echo -e "\033[34m Reloading Nginx Configuration, Please Wait... \e[0m" nginx -t && service nginx reload || OwnError "Unable To Reload Nginx" } PHPSTART() { # Check PHP5-FPM IS Running service php5-fpm status if [ $? -ne 0 ] then echo -e "\033[34m Restarting PHP5-FPM, Please Wait... \e[0m" service php5-fpm start || OwnError "Unable To Restart PHP5-FPM" fi } # Easy Engine System Settings if [ "$1" = "system" ] then # Easy Engine Install if [ "$2" = "install" ] then if [ "$3" = "nginx" ] then # Install Python Software Properties echo -e "\033[34m Installing Python Software Properties... \e[0m" sudo apt-get -y install python-software-properties \ || OwnError "Unable To Install Python Software Properties" # Add Nginx Launchpad Repository echo -e "\033[34m Adding Brianmercer Nginx Launchpad Repository... \e[0m" sudo add-apt-repository ppa:brianmercer/nginx \ || OwnError "Unable To Add Nginx Launchpad Repository" # Fix GPG Key Problems echo -e "\033[34m Checking GPG Keys For Brianmercer Nginx Repository... \e[0m" sudo apt-get update > /dev/null 2> /tmp/keymissing \ || OwnError "Unable To Fix GPG Keys For Brianmercer Nginx Repository " for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //") do echo -e "\033[34m Processing key: $key \e[0m" gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add - done # Update The APT Cache echo -e "\033[34m Updating APT Cache... \e[0m" sudo apt-get update || OwnError "Unable To Update APT Cache" # Install Nginx echo -e "\033[34m Installing Nginx... \e[0m" sudo apt-get -y install nginx-custom || OwnError "Unable To Install Nginx" # Display Success Message echo -e "\033[34m Nginx Successfully Installed \e[0m" elif [ "$3" = "php" ] then # Install Python Software Properties echo -e "\033[34m Installing Python Software Properties... \e[0m" sudo apt-get -y install python-software-properties \ || OwnError "Unable To Install Python Software Properties" # Add PHP Launchpad Repository echo -e "\033[34m Adding PHP5 Launchpad Repository... \e[0m" sudo add-apt-repository ppa:ondrej/php5 \ || OwnError "Unable To Add PHP5 Launchpad Repository" # Fix GPG Key Problems echo -e "\033[34m Checking GPG Keys For Ondrej PHP5 Repository... \e[0m" sudo apt-get update > /dev/null 2> /tmp/keymissing \ || OwnError "Unable To Fix GPG Keys For Ondrej PHP5 Repository " for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //") do echo -e "\033[34m Processing key: $key \e[0m" gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add - done # Update The APT Cache echo -e "\033[34m Updating APT Cache... \e[0m" sudo apt-get update || OwnError "Unable To Update APT Cache" # Install PHP5 echo -e "\033[34m Installing PHP5... \e[0m" sudo apt-get -y install php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt || OwnError "Unable To Install PHP5" # Display Success Message echo -e "\033[34m PHP5 Successfully Installed \e[0m" elif [ "$3" = "mysql" ] then # Update The APT Cache echo -e "\033[34m Updating APT Cache... \e[0m" sudo apt-get update || OwnError "Unable To Update APT Cache" # Install MySQL echo -e "\033[34m Installing MySQL... \e[0m" sudo apt-get -y install mysql-server mysqltuner \ || OwnError "Unable To Install MySQL" # Display Success Message echo -e "\033[34m MySQL Successfully Installed \e[0m" elif [ "$3" = "postfix" ] then # Update The APT Cache echo -e "\033[34m Updating APT Cache... \e[0m" sudo apt-get update || OwnError "Unable To Update APT Cache" # Install Postfix echo -e "\033[34m Installing Postfix... \e[0m" sudo apt-get -y install postfix || OwnError "Unable To Install Postfix" # Display Success Message echo -e "\033[34m Postfix Successfully Installed \e[0m" elif [ "$3" = "--all" ] then # Install Python Software Properties echo -e "\033[34m Installing Python Software Properties... \e[0m" sudo apt-get -y install python-software-properties \ || OwnError "Unable To Install Python Software Properties" # Add Nginx Launchpad Repository echo -e "\033[34m Adding Brianmercer Nginx Launchpad Repository... \e[0m" sudo add-apt-repository ppa:brianmercer/nginx \ || OwnError "Unable To Add Nginx Launchpad Repository" # Add PHP Launchpad Repository echo -e "\033[34m Adding PHP5 Launchpad Repository... \e[0m" sudo add-apt-repository ppa:ondrej/php5 \ || OwnError "Unable To Add PHP5 Launchpad Repository" # Fix GPG Key Problems echo -e "\033[34m Checking GPG Keys For Brianmercer Nginx & Ondrej PHP5 Repository... \e[0m" sudo apt-get update > /dev/null 2> /tmp/keymissing \ || OwnError "Unable To Fix GPG Keys For Nginx & PHP5 Repository " for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //") do echo -e "\033[34m Processing key: $key \e[0m" gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add - done # Update The APT Cache echo -e "\033[34m Updating APT Cache... \e[0m" sudo apt-get update || OwnError "Unable To Update APT Cache" # Install Nginx PHP5 MySQL Postfix echo -e "\033[34m Installing Nginx PHP5 MySQL Postfix... \e[0m" sudo apt-get -y install nginx-custom php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt mysql-server mysqltuner postfix \ || OwnError "Unable To Install Nginx PHP5 MySQL Postfix" # Display Success Message echo -e "\033[34m Nginx PHP5 MySQL Postfix Successfully Installed \e[0m" else EngineHelp fi # Easy Engine Remove elif [ "$2" = "remove" ] then if [ "$3" = "nginx" ] then # Remove Nginx echo -e "\033[34m Removing Nginx... \e[0m" sudo apt-get -y remove nginx-custom || OwnError "Unable To Remove Nginx" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Nginx Successfully Removed \e[0m" elif [ "$3" = "php" ] then # Remove PHP5 echo -e "\033[34m Removing PHP5... \e[0m" sudo apt-get -y remove php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt || OwnError "Unable To Remove PHP5" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m PHP5 Successfully Removed \e[0m" elif [ "$3" = "mysql" ] then # Remove MySQL echo -e "\033[34m Removing MySQL... \e[0m" sudo apt-get -y remove mysql-server mysqltuner \ || OwnError "Unable To Remove MySQL" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m MySQL Successfully Removed \e[0m" elif [ "$3" = "postfix" ] then # Remove Postfix echo -e "\033[34m Removing Postfix... \e[0m" sudo apt-get -y remove postfix || OwnError "Unable To Remove Postfix" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Postfix Successfully Removed \e[0m" elif [ "$3" = "--all" ] then # Remove All echo -e "\033[34m Removing Nginx PHP5 MySQL Postfix... \e[0m" sudo apt-get -y remove nginx-custom php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt mysql-server mysqltuner postfix \ || OwnError "Unable To Remove Nginx PHP5 MySQL Postfix" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Nginx PHP5 MySQL Postfix Successfully Removed \e[0m" else EngineHelp fi # Easy Engine Purge elif [ "$2" = "purge" ] then if [ "$3" = "nginx" ] then # Purge Nginx echo -e "\033[34m Purge Nginx... \e[0m" sudo apt-get -y remove --purge nginx-custom || OwnError "Unable To Purge Nginx" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Nginx Successfully Purged \e[0m" elif [ "$3" = "php" ] then # Purge PHP5 echo -e "\033[34m Purge PHP5... \e[0m" sudo apt-get -y remove --purge php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt || OwnError "Unable To Purge PHP5" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m PHP5 Successfully Purged \e[0m" elif [ "$3" = "mysql" ] then # Purge MySQL echo -e "\033[34m Purge MySQL... \e[0m" sudo apt-get -y remove --purge mysql-server mysqltuner \ || OwnError "Unable To Purge MySQL" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m MySQL Successfully Purged \e[0m" elif [ "$3" = "postfix" ] then # Purge Postfix echo -e "\033[34m Purge Postfix... \e[0m" sudo apt-get -y remove --purge postfix || OwnError "Unable To Purge Postfix" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Postfix Successfully Purged \e[0m" elif [ "$3" = "--all" ] then # Purge All echo -e "\033[34m Purge Nginx PHP5 MySQL Postfix... \e[0m" sudo apt-get -y remove --purge nginx-custom php5-common php5-mysql php5-xmlrpc \ php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear \ php5-dev php5-imap php5-mcrypt mysql-server mysqltuner postfix \ || OwnError "Unable To Purge Nginx PHP5 MySQL Postfix" # Remove Unwanted Packages echo -e "\033[34m Removing Unwanted Packages... \e[0m" sudo apt-get -y autoremove # Display Success Message echo -e "\033[34m Nginx PHP5 MySQL Postfix Successfully Purged \e[0m" else EngineHelp fi # Easy Engine Help else EngineHelp fi # Easy Engine Site Settings elif [ "$1" = "site" ] then # Easy Engine Read if [ "$2" = "read" ] then if [ "$3" = "all" ] then # Display The List Of All Sites echo -e "\033[34m List Of All (sites-available) Websites \e[0m" ls /etc/nginx/sites-available/ \ || OwnError "Unable To Display The List Of Websites" elif [ "$3" = "active" ] then # Display The List Of Active Sites echo -e "\033[34m List Of Active (sites-enabled) Websites \e[0m" ls /etc/nginx/sites-enabled/ \ || OwnError "Unable To Display The List Of Active Websites" elif [ "$3" != "all" ] && [ "$3" != "active" ] && [ -n "$3" ] then # Check The Website Is Exist ls /etc/nginx/sites-available/$3 &> /dev/null \ || OwnError "The $3 Is Not Found In Available Websites List" if [ $? -eq 0 ] then # Display The Specific Site Configuration echo -e "\033[34m Display The $3 Configuration Settings \e[0m" cat /etc/nginx/sites-available/$3 \ || OwnError "Unable To Display The $3 Configuration Settings" fi else EngineHelp fi # Easy Engine Create elif [ "$2" = "create" ] then if [ -n "$3" ] then # Remove http:// & www. DOMAIN=$(echo $3 | sed "s'http://''" | sed "s'www.''") # Creating Site echo -e "\033[34m Creating $DOMAIN, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/singlesite/basic.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Create Configuration File For $DOMAIN" # Creating Symbolic Link echo -e "\033[34m Creating Symbolic Link \e[0m" ln -s /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/ \ || OwnError "Unable To Create Symbolic Link For $DOMAIN" # Creating Htdocs & Logs Directory echo -e "\033[34m Creating htdocs & logs Directory \e[0m" (mkdir -p /var/www/$DOMAIN/htdocs; mkdir -p /var/www/$DOMAIN/logs) \ || OwnError "Unable To Create htdocs & logs Directory" # Creating Symbolic Links For Logs echo -e "\033[34m Creating Symbolic Link For Logs \e[0m" ln -s /var/log/nginx/$DOMAIN.access.log /var/www/$DOMAIN/logs/access.log \ && ln -s /var/log/nginx/$DOMAIN.error.log /var/www/$DOMAIN/logs/error.log \ || OwnError "Unable To Create Symbolic Link For $DOMAIN Logs" if [ "$4" = "--with-wordpress" ] then # Download Latest Wordpress echo -e "\033[34m Downloading WordPress \e[0m" wget -cO /var/www/$DOMAIN/htdocs/latest.tar.gz \ http://wordpress.org/latest.tar.gz # Extracting Wordpress tar --strip-components=1 -zxf /var/www/$DOMAIN/htdocs/latest.tar.gz \ -C /var/www/$DOMAIN/htdocs/ # Removing Wordpress Archive rm /var/www/$DOMAIN/htdocs/latest.tar.gz # Call MYSQLINFO Function For MySQL Values MYSQLINFO # Modify wp-config.php & Move Outside The Webroot cp -v /var/www/$DOMAIN/htdocs/wp-config-sample.php \ /var/www/$DOMAIN/wp-config.php sed -i "s/database_name_here/$WPDBNAME/" \ /var/www/$DOMAIN/wp-config.php sed -i "s/username_here/$MYSQLUSER/" \ /var/www/$DOMAIN/wp-config.php sed -i "s/password_here/$MYSQLPASS/" \ /var/www/$DOMAIN/wp-config.php sed -i "s/localhost/$MYSQLHOST/" \ /var/www/$DOMAIN/wp-config.php printf '%s\n' "g/put your unique phrase here/d" \ a "$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)" . w \ | ed -s /var/www/$DOMAIN/wp-config.php fi # Call WEBUSERINFO Function For Web User Details WEBUSERINFO # Change Ownership echo -e "\033[34m Changing Ownership \e[0m" #echo $NGINXUSER $DOMAIN chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/ # Reload Nginx Configuration NGINXRELOAD # Start PHP-FPM If Not Running PHPSTART # Display Success Message echo -e "\033[34m http://$DOMAIN Domain Successfully Created \e[0m" else EngineHelp fi # Easy Engine Update elif [ "$2" = "update" ] then if [ -n "$3" ] then # Remove http:// & www. DOMAIN=$(echo $3 | sed "s'http://''" | sed "s'www.''") # Make Backup Directory For Storing Older Nginx Configurations if [ ! -d /etc/nginx/sites-available/backups/ ] then mkdir -p /etc/nginx/sites-available/backups/ fi if [ "$4" = "singlesite" ] then if [ "$5" = "w3total" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/singlesite/w3-total-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" elif [ "$5" = "wpsuper" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/singlesite/wp-super-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" elif [ "$5" = "fastcgi" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/singlesite/fastcgi-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" else EngineHelp fi elif [ "$4" = "multisite" ] then # Presetup For WordPress MU sed -i "/WP_DEBUG/a \define('WP_ALLOW_MULTISITE', true);" /var/www/$DOMAIN/wp-config.php sed -i "/WP_ALLOW_MULTISITE/a \define('WPMU_ACCEL_REDIRECT', true);" /var/www/$DOMAIN/wp-config.php if [ "$5" = "subdomain" ] then # Add Rules In wp-config.php gile sed -i "/WPMU_ACCEL_REDIRECT/a \define('MULTISITE', true);\n\ define('SUBDOMAIN_INSTALL', true);\n\ \$base = '/';\n\ define('DOMAIN_CURRENT_SITE', '$DOMAIN');\n\ define('PATH_CURRENT_SITE', '/');\n\ define('SITE_ID_CURRENT_SITE', 1);\n\ define('BLOG_ID_CURRENT_SITE', 1);\n" /var/www/$DOMAIN/wp-config.php # Make Blogs.Dir mkdir /var/www/$DOMAIN/htdocs/wp-content/blogs.dir # Give Ownership To WEBUSER chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/htdocs/wp-content/blogs.dir if [ "$6" = "basic" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For Basic WPMU, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdomain/basic.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "w3total" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdomain/w3-total-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "wpsuper" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdomain/wp-super-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "fastcgi" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdomain/fastcgi-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" else EngineHelp fi elif [ "$5" = "subdirectory" ] then # Add Rules In wp-config.php gile sed -i "/WPMU_ACCEL_REDIRECT/a \define('MULTISITE', true);\n\ define('SUBDOMAIN_INSTALL', false);\n\ \$base = '/';\n\ define('DOMAIN_CURRENT_SITE', '$DOMAIN');\n\ define('PATH_CURRENT_SITE', '/');\n\ define('SITE_ID_CURRENT_SITE', 1);\n\ define('BLOG_ID_CURRENT_SITE', 1);\n" /var/www/$DOMAIN/wp-config.php # Make Blogs.Dir mkdir /var/www/$DOMAIN/htdocs/wp-content/blogs.dir # Give Ownership To WEBUSER chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/htdocs/wp-content/blogs.dir if [ "$6" = "basic" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For Basic WPMU, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdir/basic.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "w3total" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdir/w3-total-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "wpsuper" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdir/wp-super-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" echo -e "\033[34m Please Configure Nginx Helper WordPress Plugin \e[0m" echo -e "\033[34m Nginx Helper: http://wordpress.org/extend/plugins/nginx-helper \e[0m" elif [ "$6" = "fastcgi" ] then # Taking Backup mv /etc/nginx/sites-available/$DOMAIN \ /etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S) # Updating Site echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m" sed "s/example.com/$DOMAIN/g" \ /usr/share/easyengine/nginx/multisite/subdir/fastcgi-cache.conf \ > /etc/nginx/sites-available/$DOMAIN \ || OwnError "Unable To Update Configuration File For $DOMAIN" # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m" else EngineHelp fi else EngineHelp fi else EngineHelp fi else EngineHelp fi # Easy Engine Delete elif [ "$2" = "delete" ] then if [ -n "$3" ] then # Remove http:// & www. DOMAIN=$(echo $3 | sed "s'http://''" | sed "s'www.''") # Delete Site echo -e "\033[34m Deleting $DOMAIN, Please Wait... \e[0m" rm /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/$DOMAIN # Remove Symbolic Links For Logs Files echo -e "\033[34m Remove Symbolic Link For $DOMAIN Logs... \e[0m" rm /var/www/$DOMAIN/logs/{access,error}.log if [ "$4" = "--database" ] then # Get The Database Details MYSQLUSER=$(grep DB_USER /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) MYSQLPASS=$(grep DB_PASSWORD /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) # Remove Database echo -e "\033[34m Removing Database $WPDBNAME... \e[0m" mysql -u $MYSQLUSER -p$MYSQLPASS -e "drop database \`$WPDBNAME\`" \ || OwnError "Unable To Drop $WPDBNAME Database" elif [ "$4" = "--webroot" ] then # Remove Webroot For $DOMAIN echo -e "\033[34m Removing /var/www/$DOMAIN Directory... \e[0m" rm -rf /var/www/$DOMAIN elif [ "$4" = "--all" ] then # Get The Database Details MYSQLUSER=$(grep DB_USER /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) MYSQLPASS=$(grep DB_PASSWORD /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/wp-config.php \ | cut -d"'" -f4) # Remove Database echo -e "\033[34m Removing Database $WPDBNAME... \e[0m" mysql -u $MYSQLUSER -p$MYSQLPASS -e "drop database \`$WPDBNAME\`" \ || OwnError "Unable To Drop $WPDBNAME Database" # Remove Webroot For $DOMAIN echo -e "\033[34m Removing /var/www/$DOMAIN Directory... \e[0m" rm -rf /var/www/$DOMAIN else EngineHelp fi # Reload Nginx Configuration NGINXRELOAD # Display Success Message echo -e "\033[34m http://$DOMAIN Successfully Deleted \e[0m" else EngineHelp fi # Easy Engine Help else EngineHelp fi # Easy Engine Config Settings elif [ "$1" = "config" ] then echo "Under Developments !!" # Easy Engine Update elif [ "$1" = "update" ] then echo -e "\033[34m Updating Easy Engine, Please wait... \e[0m" curl -L http://goo.gl/FvARq | sudo bash # Easy Engine Help else EngineHelp fi