From 73d7df296becf1cc45f6279b808d2ddb41efbb8e Mon Sep 17 00:00:00 2001 From: Mitesh Shah Date: Tue, 3 Jun 2014 14:45:34 +0530 Subject: [PATCH] EasyEngine refactor --- bin/ee | 3327 +++++++++++++++++ src/lib/ee_lib_dotdeb.sh | 1 + src/lib/ee_lib_variables.sh | 2 +- .../system/install/ee_mod_install_mysql.sh} | 16 +- .../system/install/ee_mod_install_nginx.sh} | 2 +- .../system/install/ee_mod_install_php.sh} | 2 +- .../system/install/ee_mod_repo_nginx.sh} | 2 +- .../system/install/ee_mod_repo_php.sh} | 2 +- .../system/install/ee_mod_setup_mysql.sh} | 4 +- .../system/install/ee_mod_setup_nginx.sh} | 4 +- .../system/install/ee_mod_setup_php.sh} | 2 +- 11 files changed, 3348 insertions(+), 16 deletions(-) create mode 100644 bin/ee rename src/{lib/ee_lib_install_mysql.sh => modules/system/install/ee_mod_install_mysql.sh} (64%) rename src/{lib/ee_lib_install_nginx.sh => modules/system/install/ee_mod_install_nginx.sh} (85%) rename src/{lib/ee_lib_install_php.sh => modules/system/install/ee_mod_install_php.sh} (90%) rename src/{lib/ee_lib_repo_nginx.sh => modules/system/install/ee_mod_repo_nginx.sh} (96%) rename src/{lib/ee_lib_repo_php.sh => modules/system/install/ee_mod_repo_php.sh} (97%) rename src/{lib/ee_lib_setup_mysql.sh => modules/system/install/ee_mod_setup_mysql.sh} (65%) rename src/{lib/ee_lib_setup_nginx.sh => modules/system/install/ee_mod_setup_nginx.sh} (98%) rename src/{lib/ee_lib_setup_php.sh => modules/system/install/ee_mod_setup_php.sh} (99%) diff --git a/bin/ee b/bin/ee new file mode 100644 index 00000000..6f3fd149 --- /dev/null +++ b/bin/ee @@ -0,0 +1,3327 @@ +#!/bin/bash + +# Make Variables Available For Later Use +EE_LOG_DIR=/var/log/easyengine +EE_ERROR_LOG=/var/log/easyengine/error.log +EE_COMMAND_LOG=/var/log/easyengine/install.log +EE_LINUX_DISTRO=$(lsb_release -i |awk '{print $3}') +EE_IP_ADDRESS=$(grep ip_address /etc/easyengine/ee.conf | cut -d'=' -f2 |sed 's/ //g' | tr ',' '\n') + +# Main EasyEngine Function To Log All The Outputs +EasyEngine() +{ + +# Add TimeStamps In Install Log File +echo &>> $EE_COMMAND_LOG +echo &>> $EE_COMMAND_LOG +ee_lib_echo "EasyEngine (ee) Execution Started [$(date)]" &>> $EE_COMMAND_LOG +ee_lib_echo "EasyEngine (ee) Command: $0 $@" &>> $EE_COMMAND_LOG + + +# Capture Errors +ee_lib_error() +{ + echo -e "[ `date` ] \033[31m $@ " | tee -ai $EE_ERROR_LOG + exit 101 +} + +# Check Auto Assume Yes Or No To Apt-Get +APTASSUMEYES () +{ + grep apt-get-assume-yes /etc/easyengine/ee.conf | grep -i true &>> /dev/null + if [ $? -eq 0 ] + then + EE_APT_GET="apt-get -y" + else + # Check Any WebServer Package Is Installed Or Not + dpkg -l | egrep -e 'nginx|php|mysql|postfix|apache' &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + EE_APT_GET="apt-get -y" + else + EE_APT_GET="apt-get" + fi + fi +} + +# Install Package Functions +PYTHONSOFTWARE() +{ + if [ "$EE_LINUX_DISTRO" == "Ubuntu" ] + then + + # Install Python Software Properties + ee_lib_echo "Installing Python Software Properties, Please Wait..." + $EE_APT_GET install python-software-properties software-properties-common \ + || ee_lib_error "Unable To Install Python Software Properties" + elif [ "$EE_LINUX_DISTRO" == "Debian" ] + then + # Install Python Software Properties + ee_lib_echo "Installing Python Software Properties, Please Wait..." + $EE_APT_GET install python-software-properties \ + || ee_lib_error "Unable To Install Python Software Properties" + fi +} + +ee_mod_repo_nginx() +{ + if [ "$EE_LINUX_DISTRO" == "Ubuntu" ] + then + # Add Nginx Launchpad Repository + ee_lib_echo "Adding rtCamp Nginx Launchpad Repository, Please Wait..." + add-apt-repository -y ppa:rtcamp/nginx &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Add Nginx Launchpad Repository" + + elif [ "$EE_LINUX_DISTRO" == "Debian" ] + then + # Add Nginx DotDeb Repository + ee_lib_echo "Adding Nginx DotDeb Repository, Please Wait..." + echo "deb http://packages.dotdeb.org $(lsb_release -c | awk '{print($2)}') all" > /etc/apt/sources.list.d/dotdeb-$(lsb_release -c | awk '{print($2)}').list \ + || ee_lib_error "Unable To Add Nginx DotDeb Repository" + + # Fetch And Install The GnuPG Key + wget --no-check-certificate -cqO /tmp/dotdeb.gpg http://www.dotdeb.org/dotdeb.gpg || ee_lib_error "Unable To Download DotDeb GnuPG Key" + apt-key add /tmp/dotdeb.gpg &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Add DotDeb GnuPG Key" + fi +} + +ee_mod_repo_php() +{ + if [ "$EE_LINUX_DISTRO" == "Ubuntu" ] + then + # Add PHP Launchpad Repository + ee_lib_echo "Adding Ondrej PHP5 Launchpad Repository, Please Wait..." + add-apt-repository -y ppa:ondrej/php5 &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Add PHP5 Launchpad Repository" + + elif [ "$EE_LINUX_DISTRO" == "Debian" ] + then + # Detect Debian Version To Select PHP Repo + EE_DEBIAN_VERSION=$(lsb_release -r | awk '{print($2)}' | cut -d'.' -f1) + + if [ $EE_DEBIAN_VERSION -eq 6 ] + then + # Add PHP DotDeb Repository + ee_lib_echo "Adding PHP5.4 DotDeb Repository, Please Wait..." + echo "deb http://packages.dotdeb.org $(lsb_release -c | awk '{print($2)}')-php54 all" > /etc/apt/sources.list.d/dotdeb-$(lsb_release -c | awk '{print($2)}')-php54.list \ + || ee_lib_error "Unable To Add PHP5.4 DotDeb Repository" + + elif [ $EE_DEBIAN_VERSION -eq 7 ] + then + # Add PHP DotDeb Repository + ee_lib_echo "Adding PHP5.5 DotDeb Repository, Please Wait..." + echo "deb http://packages.dotdeb.org $(lsb_release -c | awk '{print($2)}')-php55 all" > /etc/apt/sources.list.d/dotdeb-$(lsb_release -c | awk '{print($2)}')-php55.list \ + || ee_lib_error "Unable To Add PHP5.5 DotDeb Repository" + fi + + # Fetch And Install The GnuPG Key + wget --no-check-certificate -cqO /tmp/dotdeb.gpg http://www.dotdeb.org/dotdeb.gpg || ee_lib_error "Unable To Download DotDeb GnuPG Key" + apt-key add /tmp/dotdeb.gpg &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Add DotDeb GnuPG Key" + fi +} + +# PERCONA_REPO() +# { +# # Fetch And Install The GnuPG Key +# gpg --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Fetch Percona GnuPG Key" +# gpg --export CD2EFD2A | apt-key add - &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Add Percona GnuPG Key" + +# # Add Percona Repository +# echo -e "deb http://repo.percona.com/apt $(lsb_release -cs) main \ndeb-src http://repo.percona.com/apt $(lsb_release -cs) main" > /etc/apt/sources.list.d/percona.list +# } + +ee_lib_gpg_key_fix() +{ + # Force GPG KEYS Check + grep gpg-keys-fix /etc/easyengine/ee.conf | grep -i true &>> /dev/null + + if [ $? -eq 0 ] + then + # Fix GPG Key Problems + ee_lib_echo "Checking GPG Keys For Brianmercer Nginx Repository, Please Wait..." + apt-get update > /dev/null 2> /tmp/keymissing \ + || ee_lib_error "Unable To Fix GPG Keys For Brianmercer Nginx Repository " + + for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //") + do + ee_lib_echo "Processing key: $key" + gpg --keyserver subkeys.pgp.net --recv $key && gpg --export --armor $key | apt-key add - + done + fi +} + +ee_lib_apt_get_update() +{ + # Update The APT Cache + ee_lib_echo "Updating APT Cache, Please Wait..." + apt-get update &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Update APT Cache" +} + +NGINXINSTALLTWEAKS () +{ + # Define Nginx Package + if [ "$EE_LINUX_DISTRO" == "Ubuntu" ] + then + EE_NGINX_PACKAGE=nginx-custom + + elif [ "$EE_LINUX_DISTRO" == "Debian" ] + then + EE_NGINX_PACKAGE=nginx-full + fi +} + +ee_mod_install_nginx() +{ + # Select Nginx Package + NGINXINSTALLTWEAKS + + # Install Nginx Package + ee_lib_echo "Installing Nginx, Please Wait..." + $EE_APT_GET install $EE_NGINX_PACKAGE || ee_lib_error "Unable To Install Nginx" +} + +EEMD5SUM() +{ + SOURCE=$EESOURCE + DEST=$EEDEST + + for i in $SOURCE/* + do + # Get File Name + EEFILE=$(basename $i) + + SOURCEMD5SUM=$(md5sum $SOURCE/$EEFILE | cut -d' ' -f1) + DESTMD5SUM=$(md5sum $DEST/$EEFILE 2> /dev/null | cut -d' ' -f1) + + # Check If Destination File Exist + if [ -z "$DESTMD5SUM" ] + then + # Copy Missing Destination Files + cp -i $SOURCE/$EEFILE $DEST/$EEFILE + + elif [ "$SOURCEMD5SUM" != "$DESTMD5SUM" ] + then + # Update Destination On MD5SUM Not Matched + cp -i $SOURCE/$EEFILE $DEST/$EEFILE + fi + done +} + +ee_lib_http_auth() +{ + # Get The htpasswd Details + HTPASSWDUSER=$(grep htpasswduser /etc/easyengine/ee.conf | awk '{print($3)}') + HTPASSWDPASS=$(grep htpasswdpass /etc/easyengine/ee.conf | awk '{print($3)}') + + # Ask User To Provide HTTP AUTH Username & Password + if [ -z "$HTPASSWDUSER" ] + then + read -p "Enter The HTTP AUTH Username [easyengine]: " HTPASSWDUSER + # Turn Off Echo For Passwords + stty -echo + read -p "Enter The HTTP AUTH Password [easyengine]: " HTPASSWDPASS + stty echo + echo + fi + + # If Enter Is Pressed, User Defaults + if [[ $HTPASSWDUSER = "" ]] + then + HTPASSWDUSER=easyengine + fi + + if [[ $HTPASSWDPASS = "" ]] + then + HTPASSWDPASS=easyengine + fi + + # Add HTTP Auth Details In EE Configuration File + sed -i "s/htpasswduser.*/htpasswduser = $HTPASSWDUSER/" /etc/easyengine/ee.conf + sed -i "s/htpasswdpass.*/htpasswdpass = $HTPASSWDPASS/" /etc/easyengine/ee.conf + + # Generate htpasswd-ee file + printf "$HTPASSWDUSER:$(openssl passwd -crypt $HTPASSWDPASS 2> /dev/null)\n" > /etc/nginx/htpasswd-ee 2> /dev/null +} + +ee_mod_setup_nginx() +{ + # Personal Settings For Nginx + ee_lib_echo "Updating Nginx Configuration Files, Please Wait..." + + grep "Easy Engine" /etc/nginx/nginx.conf &> /dev/null + if [ $? -ne 0 ] + then + + # Change Nginx Main Section Settings + sed -i "s/worker_processes.*/worker_processes auto;/" /etc/nginx/nginx.conf + sed -i "/worker_processes/a \worker_rlimit_nofile 100000;" /etc/nginx/nginx.conf + + # Change Nginx Events Section Settings + sed -i "s/worker_connections.*/worker_connections 1024;/" /etc/nginx/nginx.conf + sed -i "s/# multi_accept/multi_accept/" /etc/nginx/nginx.conf + + # Disable Nginx Version Set Custom Headers Proxy And SSL Settings + sed -i "s/http {/http {\n\t##\n\t# Easy Engine Settings\n\t##\n\n\tserver_tokens off;\n\treset_timedout_connection on;\n\tadd_header X-Powered-By "EasyEngine";\n\tadd_header rt-Fastcgi-Cache \$upstream_cache_status;\n\n\t# Limit Request\n\tlimit_req_status 403;\n\tlimit_req_zone \$binary_remote_addr zone=one:10m rate=1r\/s;\n\n\t# Proxy Settings\n\t# set_real_ip_from\tproxy-server-ip;\n\t# real_ip_header\tX-Forwarded-For;\n\n\tfastcgi_read_timeout 300;\n\tclient_max_body_size 100m;\n\n\t# SSL Settings\n\tssl_session_cache shared:SSL:20m;\n\tssl_session_timeout 10m;\n\tssl_prefer_server_ciphers on;\n\tssl_ciphers HIGH:\!aNULL:\!MD5:\!kEDH;\n\n/" /etc/nginx/nginx.conf + + # Change Keepalive Timeout Settings + sed -i "s/keepalive_timeout.*/keepalive_timeout 30;/" /etc/nginx/nginx.conf + + # Set Custom Logs + sed -i "s/error_log.*/error_log \/var\/log\/nginx\/error.log;\n\n\tlog_format rt_cache '\$remote_addr \$upstream_response_time \$upstream_cache_status [\$time_local] '\n\t\t'\$http_host \"\$request\" \$status \$body_bytes_sent '\n\t\t'\"\$http_referer\" \"\$http_user_agent\"';/" /etc/nginx/nginx.conf + + # Enable Gzip + sed -i "s/# gzip/gzip/" /etc/nginx/nginx.conf + fi + + # Check Directory Exist + if [ ! -d /etc/nginx/conf.d ] + then + mkdir /etc/nginx/conf.d || ee_lib_error "Unable To Create /etc/nginx/conf.d" + fi + + if [ ! -d /etc/nginx/common ] + then + mkdir /etc/nginx/common || ee_lib_error "Unable To Create /etc/nginx/common" + fi + + # Update Nginx Configuration Files + EESOURCE="/usr/share/easyengine/nginx/conf.d" + EEDEST="/etc/nginx/conf.d" + EEMD5SUM + + # Update Nginx Common Files + EESOURCE="/usr/share/easyengine/nginx/common" + EEDEST="/etc/nginx/common" + EEMD5SUM + + # EasyEngine Admin Setup + if [ "$EE_LINUX_DISTRO" == "Debian" ] + then + # DotDeb Repo Does't Support spdy Module + sed -i "s/ spdy//;" /usr/share/easyengine/nginx/22222 + fi + + cp /usr/share/easyengine/nginx/22222 /etc/nginx/sites-available/ || ee_lib_error "Unable To Copy 22222 Nginx Configuration File" + ln -s /etc/nginx/sites-available/22222 /etc/nginx/sites-enabled/ || ee_lib_error "Unable To Create Symbolic Link For 22222 Nginx Configuration" + + # EasyEngine Admin Logs Setup + if [ ! -d /var/www/22222/logs ] + then + mkdir -p /var/www/22222/logs || ee_lib_error "Unable To Create /var/www/22222/logs" + fi + + # Symbolic Links + ln -s /var/log/nginx/eeadmin.access.log /var/www/22222/logs/access.log + ln -s /var/log/nginx/eeadmin.error.log /var/www/22222/logs/error.log + + # EasyEngine Admin SSL Setup + if [ ! -d /var/www/22222/cert ] + then + mkdir -p /var/www/22222/cert || ee_lib_error "Unable To Create /var/www/22222/cert" + fi + + # Generate SSL Key + ee_lib_echo "Generating SSL Private Key, Please Wait..." + openssl genrsa -out /var/www/22222/cert/22222.key 2048 &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Generate SSL Private Key" + + ee_lib_echo "Generating a Certificate Signing Request (CSR), Please Wait..." + openssl req -new -batch -subj /commonName=127.0.0.1/ -key /var/www/22222/cert/22222.key -out /var/www/22222/cert/22222.csr &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Generate Certificate Signing Request (CSR)" + + ee_lib_echo "Removing Passphrase From SSL Private Key, Please Wait..." + mv /var/www/22222/cert/22222.key /var/www/22222/cert/22222.key.org + openssl rsa -in /var/www/22222/cert/22222.key.org -out /var/www/22222/cert/22222.key &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Remove Passphrase From SSL Private Key" + + ee_lib_echo "Generating SSL Certificate, Please Wait..." + openssl x509 -req -days 3652 -in /var/www/22222/cert/22222.csr -signkey /var/www/22222/cert/22222.key -out /var/www/22222/cert/22222.crt &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Generate SSL Certificate" + + # White List IP Address + ee_lib_echo "EasyEngine (ee) Allow To Access Protected Files By Using Whitelisted IP Address Or HTTP Authentication" + if [ -n "$EE_IP_ADDRESS" ] + then + for WHITELIST_IP_ADDRESS in $(echo $EE_IP_ADDRESS) + do + sed -i "/deny/i $(echo allow $WHITELIST_IP_ADDRESS\;)" /etc/nginx/common/acl.conf + done + else + ee_lib_echo "EasyEngine (ee) Don't Find IP Address in /etc/easyengine/ee.conf file" + fi + + # Protect EE Locations + ee_lib_http_auth +} + +ee_mod_install_php() +{ + # Install PHP5 + ee_lib_echo "Installing PHP5, Please Wait..." + $EE_APT_GET install php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached || ee_lib_error "Unable To Install PHP5" +} + +ee_lib_setup_php() +{ + # Personal Settings For PHP + ee_lib_echo "Updating PHP Configuration Files, Please Wait..." + + # Needed For Custome PHP5 Logs + if [ ! -d /var/log/php5/ ] + then + mkdir -p /var/log/php5/ || ee_lib_error "Unable To Create PHP5 Log Directory: /var/log/php5/" + fi + + grep "Easy Engine" /etc/php5/fpm/php.ini &> /dev/null + if [ $? -ne 0 ] + then + + ee_time_zone=$(cat /etc/timezone | head -n1 | sed "s'/'\\\/'") + + # Move PHP’s Session Storage To Memcache + sed -i "/extension/a \session.save_handler = memcache\nsession.save_path = \"tcp://localhost:11211\"" /etc/php5/mods-available/memcache.ini + + # Change PHP Settings + sed -i "s/\[PHP\]/[PHP]\n; Easy Engine/" /etc/php5/fpm/php.ini + sed -i "s/expose_php.*/expose_php = Off/" /etc/php5/fpm/php.ini + sed -i "s/post_max_size.*/post_max_size = 100M/" /etc/php5/fpm/php.ini + sed -i "s/upload_max_filesize.*/upload_max_filesize = 100M/" /etc/php5/fpm/php.ini + sed -i "s/max_execution_time.*/max_execution_time = 300/" /etc/php5/fpm/php.ini + sed -i "s/;date.timezone.*/date.timezone = $ee_time_zone/" /etc/php5/fpm/php.ini + + # Change PHP5-FPM Error Logs Location + sed -i "s'error_log.*'error_log = /var/log/php5/fpm.log'" /etc/php5/fpm/php-fpm.conf + + # Enable PHP Status & Ping + sed -i "s/;ping.path/ping.path/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/;pm.status_path/pm.status_path/" /etc/php5/fpm/pool.d/www.conf + + # Change PHP Pool Settings MAX Servers & Request Terminate Timeout + sed -i "s/;pm.max_requests/pm.max_requests/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/pm.max_children = 5/pm.max_children = 100/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/pm.start_servers = 2/pm.start_servers = 20/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/pm.min_spare_servers = 1/pm.min_spare_servers = 10/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/pm.max_spare_servers = 3/pm.max_spare_servers = 30/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/;request_terminate_timeout.*/request_terminate_timeout = 300/" /etc/php5/fpm/pool.d/www.conf + sed -i "s/pm = dynamic/pm = ondemand/" /etc/php5/fpm/pool.d/www.conf || ee_lib_error "Unable To Chnage Process Manager From Dynamic To Ondemand" + + # Change PHP Fastcgi Socket + sed -i "s'listen = /var/run/php5-fpm.sock'listen = 127.0.0.1:9000'" /etc/php5/fpm/pool.d/www.conf || ee_lib_error "Unable To Change PHP Fastcgi Socket" + + # Separate PHP POOL For Slow Logs + cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/debug.conf + sed -i "s'\[www\]'[debug]'" /etc/php5/fpm/pool.d/debug.conf || ee_lib_error "Unable To Change PHP Pool Name" + sed -i "s'listen = 127.0.0.1:9000'listen = 127.0.0.1:9001'" /etc/php5/fpm/pool.d/debug.conf || ee_lib_error "Unable To Change PHP Fastcgi Listen Port" + #sed -i "s/pm = dynamic/pm = ondemand/" /etc/php5/fpm/pool.d/debug.conf || ee_lib_error "Unable To Chnage Process Manager From Dynamic To Ondemand" + sed -i "s';slowlog.*'slowlog = /var/log/php5/slow.log'" /etc/php5/fpm/pool.d/debug.conf || ee_lib_error "Unable To Change PHP Slowlog" + sed -i "s';request_slowlog_timeout.*'request_slowlog_timeout = 10s'" /etc/php5/fpm/pool.d/debug.conf || ee_lib_error "Unable To Change PHP Request Slowlog Timeout" + echo -e "php_admin_value[xdebug.profiler_output_dir] = /tmp/ \nphp_admin_value[xdebug.profiler_output_name] = cachegrind.out.%p-%H-%R \nphp_admin_flag[xdebug.profiler_enable_trigger] = on \nphp_admin_flag[xdebug.profiler_enable] = off" | tee -ai /etc/php5/fpm/pool.d/debug.conf &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Add Xdebug Settings" + fi +} + +WP-CLI() +{ + # Install WP-CLI + if [ ! -d /usr/share/easyengine/wp-cli ] + then + ee_lib_echo_fail "WP-CLI Command Not Found" + ee_lib_echo "Installing WP-CLI, Please Wait..." + curl -sL https://raw.github.com/wp-cli/wp-cli.github.com/master/installer.sh | INSTALL_DIR='/usr/share/easyengine/wp-cli' VERSION='0.14.1' bash &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Install WP-CLI" + + # Add WP-CLI Command In PATH Variable + ln -s /usr/share/easyengine/wp-cli/bin/wp /usr/bin/wp || ee_lib_error "Unable To Create Symbolic Link For WP-CLI Command" + + # Add WP-CLI Auto Completion + cp -i /usr/share/easyengine/wp-cli/vendor/wp-cli/wp-cli/utils/wp-completion.bash /etc/bash_completion.d/ + source /etc/bash_completion.d/wp-completion.bash + else + ee_lib_echo "Already Installed WP-CLI (/usr/share/easyengine/wp-cli)" + fi +} + +PHP_PACKAGES() +{ + # Nginx Fastcgi Cache Cleanup + if [ ! -d /var/www/22222/htdocs/cache/nginx ] + then + mkdir -p /var/www/22222/htdocs/cache/nginx || ee_lib_error "Unable To Create Nginx Fastcgi Cleanup Directory" + + # Downloading Nginx FastCGI Cleanup Script + ee_lib_echo "Downloading Nginx FastCGI Cleanup Script, Please Wait..." + wget --no-check-certificate -cqO /var/www/22222/htdocs/cache/nginx/clean.php https://raw.githubusercontent.com/rtCamp/eeadmin/master/cache/nginx/clean.php \ + || ee_lib_error "Unable To Download Nginx Fastcgi Cleanup Script" + fi + + # Opcache Settings + if [ ! -d /var/www/22222/htdocs/cache/opcache ] + then + # Create Directory + mkdir -p /var/www/22222/htdocs/cache/opcache || ee_lib_error "Unable To Create Opcache Directory" + + # Download Opcache Status Files + ee_lib_echo "Installing Opcache Tool, Please Wait..." + wget --no-check-certificate -cqO /var/www/22222/htdocs/cache/opcache/opcache.php https://raw.github.com/rlerdorf/opcache-status/master/opcache.php || ee_lib_error "Unable To Download Opcache Tool opcache.php" + wget --no-check-certificate -cqO /var/www/22222/htdocs/cache/opcache/opgui.php https://raw.github.com/amnuts/opcache-gui/master/index.php || ee_lib_error "Unable To Download Opcache Tool opgui.php" + wget --no-check-certificate -cqO /var/www/22222/htdocs/cache/opcache/ocp.php https://gist.github.com/ck-on/4959032/raw/0b871b345fd6cfcd6d2be030c1f33d1ad6a475cb/ocp.php || ee_lib_error "Unable To Download Opcache Toolocp.php" + fi + + # Memcache Settings + if [ ! -d /var/www/22222/htdocs/cache/memcache ] + then + # Create Directory + mkdir -p /var/www/22222/htdocs/cache/memcache || ee_lib_error "Unable To Create Memcache Directory" + + # Download phpMemcachedAdmin + ee_lib_echo "Installing Memcache Tool, Please Wait..." + wget --no-check-certificate -cqO /var/www/22222/htdocs/cache/memcache/memcache.tar.gz http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz \ + || ee_lib_error "Unable To Download Memcache Tool" + + # Extract phpMemcachedAdmin + tar -zxf /var/www/22222/htdocs/cache/memcache/memcache.tar.gz -C /var/www/22222/htdocs/cache/memcache + + # Remove Unwanted Files + rm -f /var/www/22222/htdocs/cache/memcache/memcache.tar.gz + fi + + if [ ! -d /var/www/22222/htdocs/php/webgrind/ ] + then + # Download Opcache Status Files + mkdir -p mkdir -p /var/www/22222/htdocs/php/webgrind/ || ee_lib_error "Unable To Create webgrind Directory" + + # Download Webgrind + ee_lib_echo "Cloning Webgrind, Please Wait..." + git clone https://github.com/jokkedk/webgrind.git /var/www/22222/htdocs/php/webgrind/ &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Clone Webgrind" + sed -i "s'/usr/local/bin/dot'/usr/bin/dot'" /var/www/22222/htdocs/php/webgrind/config.php + fi + + # Create info.php File To Display The phpinfo Information + echo -e "" &>> /var/www/22222/htdocs/php/info.php + + # Fake PHP5-FPM Status Pages + if [ ! -d /var/www/22222/htdocs/fpm/status/ ] + then + mkdir -p /var/www/22222/htdocs/fpm/status/ || ee_lib_error "Unable To Create FPM Status Directory" + touch /var/www/22222/htdocs/fpm/status/{php,debug} + fi + + # Call PHPUSERINFO Function For PHP User Details + PHPUSERINFO + + # Change Ownership + chown -R $PHPUSER:$PHPUSER /var/www/22222 || ee_lib_error "Unable To Change Ownership For /var/www/22222" +} + +INSTALLPMA() +{ + # Install PMA/phpMyAdmin + if [ ! -d /var/www/22222/htdocs/db/pma ] || [ ! -d /var/www/22222/htdocs/db/adminer ] + then + if [ ! -d /var/www/22222/htdocs/db/pma ] + then + ee_lib_echo "Downloading phpMyAdmin, Please Wait..." + + # Setup PMA/phpMyAdmin + mkdir -p /var/www/22222/htdocs/db/pma/ || ee_lib_error "Unable To Create phpMyAdmin Directory: /var/www/22222/htdocs/db/pma/" + + # Download PMA/phpMyAdmin + wget --no-check-certificate -cqO /var/www/22222/htdocs/db/pma/pma.tar.gz https://github.com/phpmyadmin/phpmyadmin/archive/STABLE.tar.gz \ + || ee_lib_error "Unable To Download phpMyAdmin" + + # Extract PMA/phpMyAdmin + tar --strip-components=1 -zxf /var/www/22222/htdocs/db/pma/pma.tar.gz -C /var/www/22222/htdocs/db/pma/ \ + || ee_lib_error "Unable To Extract phpMyAdmin" + + # Remove Unwanted Files + rm -f /var/www/22222/htdocs/db/pma/pma.tar.gz + + fi + + if [ ! -d /var/www/22222/htdocs/db/adminer ] + then + ee_lib_echo "Downloading Adminer, Please Wait..." + # Setup Adminer + mkdir -p /var/www/22222/htdocs/db/adminer/ || ee_lib_error "Unable To Create Adminer Directory: /var/www/22222/htdocs/db/adminer/" + + # Download Adminer + wget --no-check-certificate -cqO /var/www/22222/htdocs/db/adminer/index.php http://downloads.sourceforge.net/adminer/adminer-4.0.3.php \ + || ee_lib_error "Unable To Download Adminer" + + fi + + else + ee_lib_echo "Already Installed phpMyAdmin (/var/www/22222/htdocs/db/pma)..." + fi +} + +MYSQLINSTALLTWEAKS() +{ + # MySQL Password Only Set If MySQL Is Not Installed + # If MySQL Is Installed Don't Set Wrong Password In ~/.my.cnf + dpkg -l | grep mysql-server &>> $EE_COMMAND_LOG + + if [ $? -ne 0 ] + then + # Setting Up MySQL Password + MYSQLAUTOPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) + debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQLAUTOPASS" + debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQLAUTOPASS" + + # Generate ~/.my.cnf + echo -e "[client]\nuser=root\npassword=$MYSQLAUTOPASS" > ~/.my.cnf + fi +} + +INSTALLMYSQL() +{ + # Setting Up MySQL Password + MYSQLINSTALLTWEAKS + + # Install MySQL + ee_lib_echo "Installing MySQL, Please Wait..." + $EE_APT_GET install mysql-server mysqltuner percona-toolkit \ + || ee_lib_error "Unable To Install MySQL" +} + +COMMONMYSQL() +{ + # Personal Settings For MySQL + ee_lib_echo "Updating MySQL Configuration Files, Please Wait..." + + # Decrease MySQL Wait Timeout + sed -i "/#max_connections/a wait_timeout = 30 \ninteractive_timeout = 60" /etc/mysql/my.cnf + + # Anemometer Setup + if [ ! -d /var/www/22222/htdocs/db/anemometer ] + then + mkdir -p /var/www/22222/htdocs/db/anemometer/ || ee_lib_error "Unable To Create Anemometer Directory" + + # Download Anemometer + ee_lib_echo "Cloning Anemometer, Please Wait..." + git clone https://github.com/box/Anemometer.git /var/www/22222/htdocs/db/anemometer &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Clone Anemometer" + + # Setup Anemometer + # Collect MySQL Login Details + MYSQLROOT + + # Setup Anemometer Database + mysql -u $MYSQLUSER -p$MYSQLPASS < /var/www/22222/htdocs/db/anemometer/install.sql \ + || ee_lib_error "Unable To Import Anemometer Database" + + # Setup Anemometer Database Grants + ANEMOMETERPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) + mysql -u $MYSQLUSER -p$MYSQLPASS -e "grant all on slow_query_log.* to 'anemometer'@'localhost' IDENTIFIED BY '$ANEMOMETERPASS';" + + # Execute On MySQL Logrotation + sed -i "/endscript/,/}/d" /etc/logrotate.d/mysql-server + echo -e " pt-query-digest --user=anemometer --password=$ANEMOMETERPASS \\" >> /etc/logrotate.d/mysql-server + echo -e " --review D=slow_query_log,t=global_query_review \\" >> /etc/logrotate.d/mysql-server + echo -e " --review-history D=slow_query_log,t=global_query_review_history \\" >> /etc/logrotate.d/mysql-server + echo -e " --no-report --limit=0% --filter=\" \\\$event->{Bytes} = length(\\\$event->{arg}) and \\\$event->{hostname}="\\\"\$HOSTNAME\\\"\" /var/log/mysql/slow.log >> /etc/logrotate.d/mysql-server + echo -e "\t\tendscript" >> /etc/logrotate.d/mysql-server + echo -e "}" >> /etc/logrotate.d/mysql-server + + # Copy Anemometer Configuration File + cp /var/www/22222/htdocs/db/anemometer/conf/sample.config.inc.php /var/www/22222/htdocs/db/anemometer/conf/config.inc.php \ + || ee_lib_error "Unable To Copy Anemometer Configuration File" + + # Update Anemoneter Configuration File + sed -i "s/root/anemometer/g" /var/www/22222/htdocs/db/anemometer/conf/config.inc.php + sed -i "/password/ s/''/'$ANEMOMETERPASS'/g" /var/www/22222/htdocs/db/anemometer/conf/config.inc.php + + fi + + # Call PHPUSERINFO Function For PHP User Details + PHPUSERINFO + + # Change Ownership + chown -R $PHPUSER:$PHPUSER /var/www/22222/htdocs/db/anemometer/ || ee_lib_error "Unable To Change Ownership For Anemometer" +} + +POSTFIXINSTALLTWEAKS() +{ + # Setting Up Postfix + debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'" + debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)" +} + +INSTALLPOSTFIX() +{ + # Setting Up Postfix + POSTFIXINSTALLTWEAKS + + # Install Postfix + ee_lib_echo "Installing Postfix, Please Wait..." + $EE_APT_GET install postfix || ee_lib_error "Unable To Install Postfix" +} + +INSTALLALL() +{ + # Setting Up Nginx MySQL & Postfix + NGINXINSTALLTWEAKS + MYSQLINSTALLTWEAKS + POSTFIXINSTALLTWEAKS + + # Install Nginx PHP5 MySQL Postfix + ee_lib_echo "Installing Nginx PHP5 MySQL Postfix, Please Wait..." + $EE_APT_GET install $EE_NGINX_PACKAGE php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached mysql-server mysqltuner percona-toolkit postfix \ + || ee_lib_error "Unable To Install Nginx PHP5 MySQL Postfix" +} + + +# Remove Package Functions +REMOVENGINX() +{ + # Select Nginx Package + NGINXINSTALLTWEAKS + + # Remove Nginx + ee_lib_echo "Removing Nginx, Please Wait..." + $EE_APT_GET remove $EE_NGINX_PACKAGE nginx-common || ee_lib_error "Unable To Remove Nginx" +} + +REMOVEPHP() +{ + # Remove PHP5 + ee_lib_echo "Removing PHP5, Please Wait..." + $EE_APT_GET remove php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached || ee_lib_error "Unable To Remove PHP5" +} + +REMOVEWPCLI() +{ + # Remove WP-CLI + ee_lib_echo "Removing WP-CLI, Please Wait..." + rm -rf /usr/share/easyengine/wp-cli /usr/bin/wp /etc/bash_completion.d/wp-completion.bash || ee_lib_error "Unable To Remove WP-CLI" +} + +REMOVEPMA() +{ + # Remove PMA/phpMyAdmin + ee_lib_echo "Removing phpMyAdmin, Please Wait..." + rm -rf /var/www/22222/htdocs/db/pma || ee_lib_error "Unable To Remove phpMyAdmin" +} + +REMOVEMYSQL() +{ + # Remove MySQL + ee_lib_echo "Removing MySQL, Please Wait..." + $EE_APT_GET remove mysql-server mysqltuner percona-toolkit \ + || ee_lib_error "Unable To Remove MySQL" +} + +REMOVEPOSTFIX() +{ + # Remove Postfix + ee_lib_echo "Removing Postfix, Please Wait..." + $EE_APT_GET remove postfix || ee_lib_error "Unable To Remove Postfix" +} + +REMOVEALL() +{ + # Select Nginx Package + NGINXINSTALLTWEAKS + + # Remove Nginx PHP5 MySQL Postfix + ee_lib_echo "Removing Nginx PHP5 MySQL Postfix, Please Wait..." + $EE_APT_GET remove $EE_NGINX_PACKAGE nginx-common php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached mysql-server mysqltuner percona-toolkit postfix \ + || ee_lib_error "Unable To Remove Nginx PHP5 MySQL Postfix" +} + +AUTOREMOVE() +{ + # Remove Unwanted Packages + ee_lib_echo "Removing Unwanted Packages, Please Wait..." + $EE_APT_GET autoremove || ee_lib_error "Unable To Auto Remove" +} + + +# Purge Package Functions +PURGENGINX() +{ + # Select Nginx Package + NGINXINSTALLTWEAKS + + # Purge Nginx + ee_lib_echo "Purge Nginx, Please Wait..." + $EE_APT_GET purge $EE_NGINX_PACKAGE nginx-common || ee_lib_error "Unable To Purge Nginx" +} + +PURGEPHP() +{ + # Purge PHP5 + ee_lib_echo "Purge PHP5, Please Wait..." + $EE_APT_GET purge php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached || ee_lib_error "Unable To Purge PHP5" +} + +PURGEMYSQL() +{ + # Purge MySQL + ee_lib_echo "Purge MySQL, Please Wait..." + $EE_APT_GET purge mysql-server mysqltuner percona-toolkit \ + || ee_lib_error "Unable To Purge MySQL" +} + +PURGEPOSTFIX() +{ + # Purge Postfix + ee_lib_echo "Purge Postfix, Please Wait..." + $EE_APT_GET purge postfix || ee_lib_error "Unable To Purge Postfix" +} + +PURGEALL() +{ + # Purge Nginx PHP5 MySQL Postfix + ee_lib_echo "Removing Nginx PHP5 MySQL Postfix, Please Wait..." + $EE_APT_GET purge $EE_NGINX_PACKAGE nginx-common php5-common php5-mysqlnd php5-xmlrpc \ + php5-curl php5-gd php5-cli php5-fpm php5-imap php5-mcrypt php5-xdebug \ + php5-memcache memcached mysql-server mysqltuner percona-toolkit postfix \ + || ee_lib_error "Unable To Purge Nginx PHP5 MySQL Postfix" +} + +# EasyEngine Status Function +EE_SYSTEM_STATUS() +{ + OPERATING_SYSTEM=$(lsb_release -d | awk '{print $2,$3,$4}') + SYSTEM_LOAD=$(cat /proc/loadavg | awk '{print $1}') + PROCESSES=$(ps ax | wc -l) + MEMORY_TOTAL=$(free | grep Mem: | awk '{print $2}') + MEMORY_USED=$(free | grep Mem: | awk '{print $3}') + MEMORY_BUFFERS=$(free | grep Mem: | awk '{print $6}') + MEMORY_CACHE=$(free | grep Mem: | awk '{print $7}') + SWAP_TOTAL=$(free | grep Swap: | awk '{print $2}') + MEMORY_USAGE=$(echo "($MEMORY_USED-$MEMORY_BUFFERS-$MEMORY_CACHE)*100/$MEMORY_TOTAL" | bc -l | cut -d'.' -f1) + if [[ $SWAP_TOTAL > 0 ]] + then + SWAP_USED=$(free | grep Swap: | awk '{print $3}') + SWAP_USAGE=$(echo "$SWAP_USED*100/$SWAP_TOTAL" | bc -l | cut -d'.' -f1)% + else + SWAP_USAGE=$(echo "N/A") + fi + LOGGED_IN_USERS=$(w -h | wc -l) + ROOT_PARTITION_USAGE=$(df -h | grep /$ | awk '{print $5}') + + NGINX_STATUS=$(service nginx status | grep 'nginx is running' &>> $EE_COMMAND_LOG && ee_lib_echo "Running" || ee_lib_echo_fail "Stopped") + PHP_STATUS=$(service php5-fpm status | grep running &>> $EE_COMMAND_LOG && ee_lib_echo "Running" || ee_lib_echo_fail "Stopped") + MYSQL_STATUS=$(service mysql status | grep running &>> $EE_COMMAND_LOG && ee_lib_echo "Running" || ee_lib_echo_fail "Stopped") + POSTFIX_STATUS=$(service postfix status | grep 'postfix is running' &>> $EE_COMMAND_LOG && ee_lib_echo "Running" || ee_lib_echo_fail "Stopped") + + echo + echo + ee_lib_echo_info " System information as of $(/bin/date)" + echo + echo -e " System load:\t$SYSTEM_LOAD\t\t Processes:\t\t$PROCESSES" + echo -e " Usage of /:\t$ROOT_PARTITION_USAGE\t\t Users logged in:\t$LOGGED_IN_USERS" + echo -e " Memory usage:\t$MEMORY_USAGE%\t\t Swap usage:\t\t$SWAP_USAGE" + echo + ee_lib_echo_info " Service status information" + echo + echo -e " Nginx:\t$NGINX_STATUS" + echo -e " PHP5-FPM:\t$PHP_STATUS" + echo -e " MySQL:\t$MYSQL_STATUS" + echo -e " Postfix:\t$POSTFIX_STATUS" + echo + echo +} + + +# EE GIT Function +EEGITINIT() +{ + # Change Directory + cd $EEGITDIR || ee_lib_error "Unable To Change Directory $EEGITDIR" + + # Check .git + if [ ! -d .git ] + then + # Initialise Git + ee_lib_echo "Initialise Git On $EEGITDIR..." + git init &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Initialize Git On $EEGITDIR" + fi + + # Check For Untracked Files + if [ $(git status -s | wc -l) -ne 0 ] + then + # Add Files In Git Version Control + git add --all && git commit -am "Initialize Git On $EEGITDIR" &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Git Commit On $EEGITDIR" + fi +} + +EEGITCOMMIT() +{ + cd $EEGITDIR || ee_lib_error "Unable To Change Directory $EEGITDIR" + + if [ $(git status -s | wc -l) -ne 0 ] + then + # Git Commit Functionality + ee_lib_echo "Take $EEGITDIR Configuration In Git Version Control..." + + # Add Newly Created Files && Commit It + git add --all && git commit -am "$EEGITMESSAGE" &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Git Commits On $EEGITDIR" + fi +} + +MYSQLUSERPASS() +{ + read -p "Enter The MySQL Username [root]: " MYSQLUSER + # If Enter Is Pressed, Then Use root as MySQL User + if [[ $MYSQLUSER = "" ]] + then + MYSQLUSER=root + fi + + # Turn Off Echo For Passwords + stty -echo + read -p "Enter The MySQL Password: " MYSQLPASS + stty echo + echo +} + + +MYSQLPASSCHECK() +{ + while [ -n $(mysqladmin -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS ping 2> /dev/null | grep alive) &> /dev/null ] + do + # Verify MySQL Credentials + MYSQLUSERPASS + done +} + +MYSQLROOT() +{ + MYSQLUSER=$(cat ~/.my.cnf | grep user | cut -d'=' -f2) + MYSQLPASS=$(cat ~/.my.cnf | grep pass | cut -d'=' -f2 | sed -e 's/^"//' -e 's/"$//') +} +# GET Information Function +MYSQLINFO() +{ + # Get The MySQL Host + MYSQLHOST=$(grep mysqlhost /etc/easyengine/ee.conf | awk '{print($3)}') + + # MySQL Default Host: localhost + if [[ $MYSQLHOST = "" ]] + then + MYSQLHOST=localhost + fi + + if [ -f ~/.my.cnf ] + then + MYSQLROOT + else + # Verify MySQL Credentials + MYSQLUSERPASS + fi + + # Verify MySQL Credentials + MYSQLPASSCHECK + + # Replace Dot With Underscore In $DOMAIN Name + REPLACEDOT=$(echo $DOMAIN | tr '.' '_') + + # Check Use Default DB Name Or Custom DB Name + grep customdbname /etc/easyengine/ee.conf | grep -i true &>> /dev/null + + if [ $? -eq 0 ] + then + read -p "Enter The MySQL Database Name [$REPLACEDOT]: " WPDBNAME + fi + + # If customdbname = false + # Then It Never Ask For MySQL Database Name In This Case $WPDBNAME Is Empty + # If customdbname = true + # User Enter Custom Databse Name Then WPDBNAME Is Not Empty & We Used Provided Database Name + # If User Pressed Enter Then $WPDBNAME Is Empty + + if [[ $WPDBNAME = "" ]] + then + WPDBNAME=$REPLACEDOT + fi +} + +EEWPDBPREFIX() +{ + # Get The WordPress Database Table Prefix + WPDBPREFIX=$(grep wpdbprefix /etc/easyengine/ee.conf | awk '{print($3)}') + + # Display WPDBPREFIX Valid Characters Warning & Try Again + while [ $(echo $WPDBPREFIX | grep '[^[:alnum:] _]') ] + do + ee_lib_echo_fail "Warning: \033[34mTable Prefix Can Only Contain Numbers, Letters, And Underscores." + # For Proper read Command Output + stty echo + read -p "Enter The MySQL Database Table Prefix [wp_]: " WPDBPREFIX + done + + # WordPress Database Table Prefix Default: wp_ + if [[ $WPDBPREFIX = "" ]] + then + WPDBPREFIX=wp_ + fi +} + +FIXMYSQLUSER16() +{ + # Fix MySQL USER ERROR 1470 (HY000) + MYSQLUSER16=$(echo -n $WPDBUSER | wc -c) + + if [[ $MYSQLUSER16 -gt 16 ]] + then + echo MySQL Database Username $WPDBUSER = $MYSQLUSER16 &>> $EE_COMMAND_LOG + ee_lib_echo "Auto Fix MySQL Username To The 16 Characters" + RANDOM_CHARACTER=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 10 | head -n1) + WPDBUSER=$(echo $REPLACEDOT | cut -c1-16 | sed "s/.\{10\}$/$RANDOM_CHARACTER/") + + #ee_lib_echo_fail "ERROR 1470 (HY000): $WPDBUSER Is Too Long For MySQL Username" + # Turn Off Echo For Passwords + #stty echo + #read -p "Enter The MySQL Database Username [$REPLACEDOT16]: " WPDBUSER + + #if [[ $WPDBUSER = "" ]] + #then + # WPDBUSER=$REPLACEDOT16 + #fi + + fi + +} + +EECREATEDATABASE() +{ + # Create Database + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "create database \`$WPDBNAME\`" \ + || ee_lib_error "Unable To Create $WPDBNAME Database" + + # Check Use Default DB User Or Custom DB User + WPDBRANDOMPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) + grep customdbuser /etc/easyengine/ee.conf | grep -i true &>> /dev/null + + if [ $? -eq 0 ] + then + read -p "Enter The MySQL Database Username [$REPLACEDOT]: " WPDBUSER + + if [[ $WPDBUSER = "" ]] + then + WPDBUSER=$REPLACEDOT + fi + + # Fix MySQL USER ERROR 1470 (HY000) + FIXMYSQLUSER16 + + # Turn Off Echo For Passwords + stty -echo + read -p "Enter The MySQL Database Password [$WPDBRANDOMPASS]: " WPDBPASS + stty echo + echo + fi + + if [[ $WPDBUSER = "" ]] + then + WPDBUSER=$REPLACEDOT + # Fix MySQL USER ERROR 1470 (HY000) + FIXMYSQLUSER16 + fi + + if [[ $WPDBPASS = "" ]] + then + WPDBPASS=$WPDBRANDOMPASS + fi + + # Create Separate User & Grant Permission + echo -e "WPDBNAME = $WPDBNAME \nWPDBUSER = $WPDBUSER \nWPDBPASS = $WPDBPASS" &>> $EE_COMMAND_LOG + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "create user '$WPDBUSER'@'$MYSQLHOST' identified by '$WPDBPASS'" + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "grant all privileges on \`$WPDBNAME\`.* to '$WPDBUSER'@'$MYSQLHOST'" + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "flush privileges" +} + +PHPUSERINFO() +{ + # PHP User + PHPUSER=$(grep ^user /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2 | cut -d' ' -f2) \ + || ee_lib_error "Unable To Find Out PHP Username" +} + +EEINFO() +{ + # Nginx Information + NGINXVER=$(nginx -v 2>&1 | cut -d':' -f2 | cut -d' ' -f2) + NGINXUSER=$(grep ^user /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + NGINXPROCESSES=$(grep worker_processes /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + NGINXCONNECTIONS=$(grep worker_connections /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + NGINXKEEPALIVE=$(grep keepalive_timeout /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + FASTCGITIMEOUT=$(grep fastcgi_read_timeout /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + CLIENTMAXBODYSIZE=$(grep client_max_body_size /etc/nginx/nginx.conf | cut -d' ' -f2 | cut -d';' -f1) + NGINXALLOWEDIPADD=$(grep ^allow /etc/nginx/common/acl.conf | cut -d' ' -f2 | cut -d';' -f1 | tr '\n' ' ') + + ee_lib_echo "Nginx ($NGINXVER) Information:\n" + ee_lib_echo "Nginx User:\t\t\t \033[37m$NGINXUSER" + ee_lib_echo "Nginx worker_processes:\t\t \033[37m$NGINXPROCESSES" + ee_lib_echo "Nginx worker_connections:\t \033[37m$NGINXCONNECTIONS" + ee_lib_echo "Nginx keepalive_timeout:\t \033[37m$NGINXKEEPALIVE" + ee_lib_echo "Nginx fastcgi_read_timeout:\t \033[37m$FASTCGITIMEOUT" + ee_lib_echo "Nginx client_max_body_size:\t \033[37m$CLIENTMAXBODYSIZE" + ee_lib_echo "Nginx Allowed IP Address:\t \033[37m$NGINXALLOWEDIPADD" + + # PHP Information + # Collect Information From php.ini + PHPUSERINFO + PHPVER=$(php -v | head -n1 | cut -d' ' -f2 | cut -d'+' -f1) + PHPMEM=$(grep ^memory_limit /etc/php5/fpm/php.ini | awk '{print $3}') + PHPEXPOSE=$(grep ^expose_php /etc/php5/fpm/php.ini | cut -d'=' -f2 | cut -d' ' -f2) + PHPPOSTMAXSIZE=$(grep post_max_size /etc/php5/fpm/php.ini | cut -d'=' -f2 | cut -d' ' -f2) + PHPUPLOADMAXFSIZE=$(grep upload_max_filesize /etc/php5/fpm/php.ini | cut -d'=' -f2 | cut -d' ' -f2) + PHPMAXEXECUTIONTIME=$(grep max_execution_time /etc/php5/fpm/php.ini | cut -d'=' -f2 | cut -d' ' -f2) + + # Collect Information From www.conf + PHPPINGPATH=$(grep ^ping.path /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PHPSTATUSPATH=$(grep ^pm.status_path /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PHPFPMPROCESS=$(grep "^pm =" /etc/php5/fpm/pool.d/www.conf | awk '{print $3}') + PMMAXREQUEST=$(grep ^pm.max_requests /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PMMAXCHILDREN=$(grep ^pm.max_children /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PMSTARTSERVERS=$(grep ^pm.start_servers /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PMMINSPARESERVERS=$(grep ^pm.min_spare_servers /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PMMAXSPARESERVERS=$(grep ^pm.max_spare_servers /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PHPREQUESTTERMINATE=$(grep ^request_terminate_timeout /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + PHPFASTCGIREQUEST=$(grep ^listen /etc/php5/fpm/pool.d/www.conf | cut -d'=' -f2| cut -d' ' -f2) + + ee_lib_echo "\n\nPHP ($PHPVER) Information:\n" + ee_lib_echo "PHP User:\t\t\t \033[37m$PHPUSER" + ee_lib_echo "PHP expose_php:\t\t\t \033[37m$PHPEXPOSE" + ee_lib_echo "PHP memory_limit:\t\t \033[37m$PHPMEM" + ee_lib_echo "PHP post_max_size:\t\t \033[37m$PHPPOSTMAXSIZE" + ee_lib_echo "PHP upload_max_filesize:\t \033[37m$PHPUPLOADMAXFSIZE" + ee_lib_echo "PHP max_execution_time:\t\t \033[37m$PHPMAXEXECUTIONTIME\n" + + ee_lib_echo "PHP ping.path:\t\t\t \033[37m$PHPPINGPATH" + ee_lib_echo "PHP pm.status_path:\t\t \033[37m$PHPSTATUSPATH" + ee_lib_echo "PHP process manager:\t\t \033[37m$PHPFPMPROCESS" + ee_lib_echo "PHP pm.max_requests:\t\t \033[37m$PMMAXREQUEST" + ee_lib_echo "PHP pm.max_children:\t\t \033[37m$PMMAXCHILDREN" + ee_lib_echo "PHP pm.start_servers:\t\t \033[37m$PMSTARTSERVERS" + ee_lib_echo "PHP pm.min_spare_servers:\t \033[37m$PMMINSPARESERVERS" + ee_lib_echo "PHP pm.max_spare_servers:\t \033[37m$PMMAXSPARESERVERS" + ee_lib_echo "PHP request_terminate_timeout:\t \033[37m$PHPREQUESTTERMINATE" + ee_lib_echo "PHP Fastcgi Listen:\t\t \033[37m$PHPFASTCGIREQUEST" + + # MySQL Information + MYSQLVER=$(mysql -V | awk '{print($5)}' | cut -d ',' -f1) + MYSQLUSER=$(grep ^user /etc/mysql/my.cnf | awk '{print($3)}') + MYSQLPORT=$(mysql -e "show variables" | grep ^port | awk '{print($2)}') + MYSQLSOCKET=$(mysql -e "show variables" | grep "^socket" | awk '{print($2)}') + MYSQLDATADIR=$(mysql -e "show variables" | grep datadir | awk '{print($2)}') + MYSQLWAITTIMEOUT=$(mysql -e "show variables" | grep ^wait_timeout | awk '{print($2)}') + MYSQLINTERACTIVE=$(mysql -e "show variables" | grep ^interactive_timeout | awk '{print($2)}') + MYSQLMAXCONNECTION=$(mysql -e "show variables" | grep "^max_connections" | awk '{print($2)}') + MYSQLMAXUSEDCONNECTION=$(mysql -e "show global status" | grep Max_used_connections | awk '{print($2)}') + + ee_lib_echo "\n\nMySQL ($MYSQLVER) Information:\n" + ee_lib_echo "MySQL User:\t\t\t \033[37m$MYSQLUSER" + ee_lib_echo "MySQL port:\t\t\t \033[37m$MYSQLPORT" + ee_lib_echo "MySQL wait_timeout:\t\t \033[37m$MYSQLWAITTIMEOUT" + ee_lib_echo "MySQL interactive_timeout:\t \033[37m$MYSQLINTERACTIVE" + ee_lib_echo "MySQL Max_used_connections:\t \033[37m$MYSQLMAXUSEDCONNECTION/$MYSQLMAXCONNECTION" + ee_lib_echo "MySQL datadir:\t\t\t \033[37m$MYSQLDATADIR" + ee_lib_echo "MySQL socket:\t\t\t \033[37m$MYSQLSOCKET" + + # Common Locations: + ee_lib_echo "\n\nEasyEngine ($(ee version| awk '{print $3}')) Common Locations:\n" + ee_lib_echo "phpMyAdmin:\t\t\t \033[37mhttp://example.com/pma" + ee_lib_echo "PHP Status:\t\t\t \033[37mhttp://example.com/status" + ee_lib_echo "Nginx Status:\t\t\t \033[37mhttp://example.com/nginx_status" + ee_lib_echo "EasyEngine Log File:\t\t \033[37m/var/log/easyengine/install.log" + ee_lib_echo "EasyEngine Configuration File:\t \033[37m/etc/easyengine/ee.conf" + +} + +EESITEINFO() +{ + # Display The Specific Site Configuration + SITESTATUS=$(ls /etc/nginx/sites-enabled/$DOMAIN &> /dev/null && echo Enable || echo Disable) + SITEINFO=$(head -n1 /etc/nginx/sites-available/$DOMAIN | grep "NGINX CONFIGURATION" | rev | cut -d' ' -f3,4,5,6,7 | rev | cut -d ' ' -f2,3,4,5) + ACCESSLOG=$(grep access_log /etc/nginx/sites-available/$DOMAIN | grep "/var/log/nginx/" | awk '{print($2)}' | cut -d ';' -f1) + EE_ERROR_LOG=$(grep error_log /etc/nginx/sites-available/$DOMAIN | grep "/var/log/nginx/" | awk '{print($2)}' | cut -d ';' -f1) + WEBROOT=$(grep root /etc/nginx/sites-available/$DOMAIN | grep htdocs | awk '{print($2)}' | cut -d ';' -f1) + WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/wp-config.php 2> /dev/null | cut -d"'" -f4) + + ee_lib_echo "$DOMAIN Information:\n" + ee_lib_echo "Nginx Configuration:\t\t \033[37m$SITEINFO ($SITESTATUS)" + ee_lib_echo "Nginx access_log:\t\t \033[37m$ACCESSLOG" + ee_lib_echo "Nginx error_log:\t\t \033[37m$EE_ERROR_LOG" + ee_lib_echo "Nginx root:\t\t\t \033[37m$WEBROOT" + ee_lib_echo "$DOMAIN Database:\t\t \033[37m$WPDBNAME" +} + +EESITEEDIT() +{ + # Open Website In Default Editor + sensible-editor /etc/nginx/sites-available/$DOMAIN 2> /dev/null +} + +NGINXBUCKETSIZE() +{ + nginx -t 2>&1 | grep server_names_hash_bucket_size &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + NGINXCALCULATION=$(echo "l($(ls /etc/nginx/sites-enabled/ | wc -c))/l(2)+2" | bc -l) + NGINXSETBUCKET=$(echo "2^$NGINXCALCULATION" | bc -l 2> /dev/null) + sed -i "s/.*server_names_hash_bucket_size.*/\tserver_names_hash_bucket_size $NGINXSETBUCKET;/" /etc/nginx/nginx.conf + fi +} + +NGINXSTART () +{ + # Check Nginx server_names_hash_bucket_size Value + NGINXBUCKETSIZE + + # Start Nginx Service + ee_lib_echo "Starting Nginx Service, Please Wait..." + (nginx -t && service nginx start) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Start Nginx" +} + +NGINXRELOAD() +{ + # Check Nginx server_names_hash_bucket_size Value + NGINXBUCKETSIZE + + # Reload Nginx Service + ee_lib_echo "Reloading Nginx Service, Please Wait..." + (nginx -t && service nginx reload) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Reload Nginx" +} + +NGINXRESTART() +{ + # Check Nginx server_names_hash_bucket_size Value + NGINXBUCKETSIZE + + # Test & Restart Nginx Service + ee_lib_echo "Restarting Nginx Service, Please Wait..." + (nginx -t && service nginx restart) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Restart Nginx" +} + +PHPSTART() +{ + # Start PHP5-FPM Service + ee_lib_echo "Starting PHP5-FPM Service, Please Wait..." + (php5-fpm -t && service php5-fpm start) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Start PHP5-FPM" +} + +PHPRELOAD() +{ + # Reload PHP5-FPM Service + ee_lib_echo "Reloading PHP5-FPM Service, Please Wait..." + (php5-fpm -t && service php5-fpm reload) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Reloading PHP5-FPM" +} + +PHPRESTART() +{ + # Restart PHP5-FPM Service + ee_lib_echo "Restarting PHP5-FPM Service, Please Wait..." + (php5-fpm -t && service php5-fpm restart) &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Restart PHP5-FPM" +} + +MYSQLSTART() +{ + # Start MySQL Service + ee_lib_echo "Starting MySQL Service, Please Wait..." + service mysql start &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Start MySQL" +} + +MYSQLRELOAD() +{ + # Reload MySQL Service + ee_lib_echo "Reloading MySQL Service, Please Wait..." + service mysql reload &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Reloading MySQL" +} + +MYSQLRESTART() +{ + # Restart MySQL Service + ee_lib_echo "Restarting MySQL Service, Please Wait..." + service mysql restart &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Restart MySQL" +} + +POSTFIXSTART() +{ + # Start Postfix Service + ee_lib_echo "Starting Postfix Service, Please Wait..." + service postfix start &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Start Postfix" +} + +POSTFIXRELOAD() +{ + # Reload Postfix Service + ee_lib_echo "Reloading Postfix Service, Please Wait..." + service postfix reload &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Reloading Postfix" +} + +POSTFIXRESTART() +{ + # Restart Postfix Service + ee_lib_echo "Restarting Postfix Service, Please Wait..." + service postfix restart &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Restart Postfix" +} + + + +# EE Domain Functions +EESITENAME() +{ + # Check SITENAME Is Empty Or Not + if [ -z "$SITENAMECHECK" ] + then + # Ask Users To Enter Domain Name + read -p "Enter Domain Name: " SITENAMECHECK + # Remove http:// https:// & www. + DOMAIN=$(echo $SITENAMECHECK | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'www.''" | sed "s'/''") + else + # Remove http:// https:// & www. + DOMAIN=$(echo $SITENAMECHECK | 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) + WWWDOMAIN=$(echo $SITENAMECHECK | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'/''") +} + +NGINXSYMBOLICLINK() +{ + # Creating Symbolic Link + ee_lib_echo "Creating Symbolic Link For $DOMAIN" + ln -s /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/ \ + || ee_lib_error "Unable To Create Symbolic Link For $DOMAIN" +} + +EEDOMAINSETUP() +{ + #Check The Nginx Configuration Exist For $DOMAIN + ls /etc/nginx/sites-available/$DOMAIN &> $EE_ERROR_LOG + + if [ $? -ne 0 ] + then + # Creating Website $DOMAIN + ee_lib_echo "Creating $DOMAIN, Please Wait..." + sed "s/example.com/$DOMAIN/g" \ + /usr/share/easyengine/nginx/$NGINXCONF \ + > /etc/nginx/sites-available/$DOMAIN \ + || ee_lib_error "Unable To Create Nginx Configuration File For $DOMAIN" + + # Creating Symbolic Link + NGINXSYMBOLICLINK + + # Creating Htdocs & Logs Directory + ee_lib_echo "Creating htdocs & logs Directory" + mkdir -p /var/www/$DOMAIN/htdocs && mkdir -p /var/www/$DOMAIN/logs \ + || ee_lib_error "Unable To Create htdocs & logs Directory" + + # Creating Symbolic Links For Logs + ee_lib_echo "Creating Symbolic Link For Logs" + 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 \ + || ee_lib_error "Unable To Create Symbolic Link For $DOMAIN Logs" + else + ee_lib_error "$DOMAIN Already Exist" + fi +} + +EEWPSETUP() +{ + # Download Latest WordPress + ee_lib_echo "Downloading WordPress, Please Wait..." + wget --no-check-certificate -cqO /var/www/$DOMAIN/htdocs/latest.tar.gz \ + http://wordpress.org/latest.tar.gz \ + || ee_lib_error "Unable To Download WordPress" + + # Extracting WordPress + tar --strip-components=1 -zxf /var/www/$DOMAIN/htdocs/latest.tar.gz \ + -C /var/www/$DOMAIN/htdocs/ \ + || ee_lib_error "Unable To Extract WordPress" + + # Removing WordPress Archive + rm /var/www/$DOMAIN/htdocs/latest.tar.gz + + # Call MYSQLINFO Function For MySQL Values + MYSQLINFO + EEWPDBPREFIX + EECREATEDATABASE + + # Modify wp-config.php & Move Outside The Webroot + cp /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/$WPDBUSER/" \ + /var/www/$DOMAIN/wp-config.php + + sed -i "s/password_here/$WPDBPASS/" \ + /var/www/$DOMAIN/wp-config.php + + sed -i "s/localhost/$MYSQLHOST/" \ + /var/www/$DOMAIN/wp-config.php + + sed -i "s/wp_/$WPDBPREFIX/" \ + /var/www/$DOMAIN/wp-config.php + + printf '%s\n' "g/put your unique phrase here/d" \ + a "$(curl -sL https://api.wordpress.org/secret-key/1.1/salt/)" . w \ + | ed -s /var/www/$DOMAIN/wp-config.php +} + +EEWPDBSETUP() +{ + # Get WordPress Site Title + #ee_lib_echo "WordPress Information Required..." + + # WordPress Default User: admin + WPADMINUSER=$(grep wpadminuser /etc/easyengine/ee.conf | awk '{print($3)}') + if [[ $WPADMINUSER = "" ]] + then + WPADMINUSER=admin + fi + + # WordPress Default Password: Random Password + WPADMINPASS=$(grep wpadminpass /etc/easyengine/ee.conf | awk '{print($3)}') + if [[ $WPADMINPASS = "" ]] + then + WPADMINPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) + fi + + # WordPress Default Email: `git config user.email` + WPADMINEMAIL=$(grep wpadminemail /etc/easyengine/ee.conf | awk '{print($3)}') + if [[ $WPADMINEMAIL = "" ]] + then + WPADMINEMAIL=`git config user.email` + fi + + # Create WordPress Tables + ee_lib_echo "Setting Up WordPress, Please Wait..." + cd /var/www/$DOMAIN/htdocs || ee_lib_error "Unable To Change Directory To Install WordPress" + wp core install --allow-root --url=$WWWDOMAIN --title="$WWWDOMAIN" \ + --admin_name=$WPADMINUSER --admin_password=$WPADMINPASS --admin_email=$WPADMINEMAIL &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Create WordPress Tables For $DOMAIN" + + # Update WordPress Permalink Structure Day and Postname + ee_lib_echo "Updating WordPress Permalink, Please Wait..." + wp rewrite structure --allow-root /%year%/%monthnum%/%day%/%postname%/ &>> $EE_COMMAND_LOG \ + || ee_lib_error "Unable To Update WordPress Permalink For $DOMAIN" +} + +EEPERMISSION() +{ + # Call PHPUSERINFO Function For PHP User Details + PHPUSERINFO + + # Change Ownership + ee_lib_echo "Changing Ownership" + chown -R $PHPUSER:$PHPUSER /var/www/$DOMAIN/ || ee_lib_error "Unable To Change Ownership For $DOMAIN" + + # Reload Nginx Configuration + NGINXRELOAD +} + + +# NGINX Configuration Function +SETUPDOMAIN() +{ + # Check SITENAME Is Empty Or Not + EESITENAME + + # Creating Website $DOMAIN + EEDOMAINSETUP + + # Setup WordPress Webroot & Database + EEWPSETUP + EEWPDBSETUP +} + +PERMISSIONANDGIT() +{ + # Change Webroot Permission + EEPERMISSION + + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Create Website With $WPNETWORKSITE $WPCACHEOPTION Option: $DOMAIN" + EEGITCOMMIT +} + +TOTALCACHENGINX() +{ + # Installing W3 Total Cache + cd /var/www/$DOMAIN/htdocs/ + ee_lib_echo "Installing W3 Total Cache Plugin, Please Wait..." + wp plugin --allow-root install w3-total-cache &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Install W3 Total Cache Plugin" + + # Activate W3 Total Cache + wp plugin --allow-root activate w3-total-cache $NETWORKACTIVATE &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Activate W3 Total Cache Plugin" +} + +SUPERCACHENGINX() +{ + # Installing WP Super Cache + cd /var/www/$DOMAIN/htdocs/ + ee_lib_echo "Installing WP Super Cache Plugin, Please Wait..." + wp plugin --allow-root install wp-super-cache &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Install WP Super Cache Plugin" + + # Activate WP Super Cache + wp plugin --allow-root activate wp-super-cache $NETWORKACTIVATE &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Activate WP Super Cache Plugin" +} + +NGINXHELPER() +{ + # Installing Nginx Helper + cd /var/www/$DOMAIN/htdocs/ + ee_lib_echo "Installing Nginx Helper Plugin, Please Wait..." + wp plugin --allow-root install nginx-helper &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Install Nginx Helper" + + # Activate Nginx Helper + wp plugin --allow-root activate nginx-helper $NETWORKACTIVATE &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Activate Nginx Helper Plugin" +} + + +# Setup Wordpress Network +SETUPWPNETWORK() +{ + # Prepare wp-config.php File Foe WordPress Multisite With SubDirectory + cd /var/www/$DOMAIN/htdocs || ee_lib_error "Unable To Change Directory" + wp core install-network --allow-root --title="$WWWDOMAIN" $WPSUBDOMAINS &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Setup WordPress SubDirectory Network" + + 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 + + # Remove index.php from permalink + # Install Nginx Helper + NGINXHELPER +} + + +# Remove Database +REMOVEDB() +{ + # HTML & PHP Website Doesn't Have Database + head -n1 /etc/nginx/sites-available/$DOMAIN | egrep -e 'HTML|PHP' &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # MySQL Information + MYSQLROOT + WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/*-config.php | cut -d"'" -f4) + WPDBUSER=$(grep DB_USER /var/www/$DOMAIN/*-config.php | cut -d"'" -f4) + WPDBPASS=$(grep DB_PASS /var/www/$DOMAIN/*-config.php | cut -d"'" -f4) + MYSQLHOST=$(grep DB_HOST /var/www/$DOMAIN/*-config.php | cut -d"'" -f4) + echo -e " WPDBNAME = $WPDBNAME \n WPDBUSER = $WPDBUSER \n MYSQLHOST = $MYSQLHOST" + + # Remove Database + # For Proper read Command Output + stty echo + if [ "$1" = "no-prompt" ] + then + # Assume yes + ANSWER="y" + else + # Ask user for confirmation + read -p "Are You Sure To Drop $WPDBNAME Database (y/n): " ANSWER + fi + + if [ "$ANSWER" = "y" ] + then + # Remove Database + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "drop database \`$WPDBNAME\`" \ + || ee_lib_error "Unable To Drop $WPDBNAME Database" + + # Never Remove root User + if [ "$WPDBUSER" != "root" ] + then + # Remove Database User + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "drop user '$WPDBUSER'@'$MYSQLHOST'" \ + || ee_lib_error "Unable To Drop Database User $WPDBUSER" + mysql -h $MYSQLHOST -u $MYSQLUSER -p$MYSQLPASS -e "flush privileges" \ + || ee_lib_error "Unable To Flush MySQL Privileges" + fi + else + # User Denied Messages + ee_lib_echo_fail "User Denied To Drop $WPDBNAME Database." + fi + else + ee_lib_echo_fail "No Database Found For $DOMAIN" + fi +} + +REMOVEFILES() +{ + # Remove Webroot + # For Proper read Command Output + stty echo + if [ "$1" = "no-prompt" ] + then + # Assume yes + ANSWER="y" + else + # Ask user for confirmation + read -p "Are You Sure To Remove $DOMAIN Webroot (y/n): " ANSWER + fi + + if [ "$ANSWER" = "y" ] + then + # Remove Webroot + rm -rf /var/www/$DOMAIN || ee_lib_error "Unable To Remove $DOMAIN Webroot" + else + # User Denied Messages + ee_lib_echo_fail "User Denied To Remove $DOMAIN Webroot." + fi +} + +REMOVENGINXCONF() +{ + # Remove Nginx Configuration + # For Proper read Command Output + stty echo + if [ "$1" = "no-prompt" ] + then + # Assume yes + ANSWER="y" + else + # Ask user for confirmation + read -p "Are You Sure To Remove $DOMAIN Nginx Configuration (y/n): " ANSWER + fi + if [ "$ANSWER" = "y" ] + then + # Remove Webroot + rm -rf /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/$DOMAIN \ + || ee_lib_error "Unable To Remove $DOMAIN Nginx Configuration" + else + # User Denied Messages + ee_lib_echo_fail "User Denied To Remove $DOMAIN Nginx Configuration." + fi +} + +DEBUG_NGINX() +{ + # Lets Disable Nginx Reload Trigger + EE_DEBUG_NGINX="" + + if [ -z "$EE_IP_ADDRESS" ] + then + #read -p "Enter The Single IP Address For Debugging: " EE_IP_ADDRESS + EE_IP_ADDRESS="0.0.0.0/0" + fi + + for DEBUG_IP_ADDRESS in $(echo $EE_IP_ADDRESS) + do + grep "debug_connection $DEBUG_IP_ADDRESS" /etc/nginx/nginx.conf &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Enable Debug Connection + ee_lib_echo "Setting Up Nginx Debug Connection, Please Wait..." + + # EasyEngine Found New IP Address Which Is Not Present In nginx.conf + sed -i "/events {/a \\\t$(echo debug_connection $DEBUG_IP_ADDRESS\;)" /etc/nginx/nginx.conf + + # Lets Trigger The Nginx Reload + EE_DEBUG_NGINX="--nginx" + fi + done + + if [ -z "$EE_DEBUG_NGINX" ] + then + ee_lib_echo "Nginx Debug Connection Already Enabled" + fi +} + +DEBUG_NGINX_STOP() +{ + grep "debug_connection" /etc/nginx/nginx.conf &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + ee_lib_echo "Stopping Nginx Debug Connection, Please Wait..." + sed -i "/debug_connection.*/d" /etc/nginx/nginx.conf + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_NGINX="" + ee_lib_echo "Nginx Debug Connection Already Stopped" + fi +} + +DEBUG_NGINX_REWRITE() +{ + grep "rewrite_log on;" /etc/nginx/nginx.conf &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Enable Nginx Rewrite Logs + ee_lib_echo "Setting Up Nginx Rewrite Logs, Please Wait..." + sed -i '/http {/a \\trewrite_log on;' /etc/nginx/nginx.conf + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_REWRITE="" + ee_lib_echo "Nginx Rewrites Logs Already ON" + fi +} + +DEBUG_NGINX_REWRITE_STOP() +{ + grep "rewrite_log on;" /etc/nginx/nginx.conf &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + # Disable Nginx Rewrite Logs + ee_lib_echo "Stopping Nginx Rewrite Logs, Please Wait..." + sed -i "/rewrite_log.*/d" /etc/nginx/nginx.conf + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_REWRITE="" + ee_lib_echo "Nginx Rewrites Logs Already STOP" + fi +} + +DEBUG_NGINX_SITE() +{ + grep "error.log debug" /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Enable Nginx Debug Log + ee_lib_echo "Setting Up $DOMAIN Error Logs In Debugging Mode,Please Wait..." + sed -i "s/error.log;/error.log debug;/" /etc/nginx/sites-available/$DOMAIN + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_NGINX="" + ee_lib_echo "Already Started $DOMAIN Error Logs In Debugging Mode" + fi +} + +DEBUG_NGINX_SITE_STOP() +{ + grep "error.log debug" /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + # Disable Nginx Debug Log + ee_lib_echo "Disable $DOMAIN Error Logs In Debugging Mode,Please Wait..." + sed -i "s/error.log debug;/error.log;/" /etc/nginx/sites-available/$DOMAIN + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_NGINX="" + ee_lib_echo "Already Stopped $DOMAIN Error Logs In Debugging Mode" + fi +} + +DEBUG_NGINX_REWRITE_SITE() +{ + grep "rewrite_log on;" /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Enable Nginx Rewrite Logs + ee_lib_echo "Setting Up Nginx Rewrite Logs For $DOMAIN" + sed -i "/access_log/i \\\trewrite_log on;" /etc/nginx/sites-available/$DOMAIN + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_REWRITE="" + ee_lib_echo "Rewrites Logs Already ON For $DOMAIN" + fi +} + +DEBUG_NGINX_REWRITE_SITE_STOP() +{ + grep "rewrite_log on;" /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + # Disable Nginx Rewrite Logs + ee_lib_echo "Stopping Up Nginx Rewrite Logs For $DOMAIN" + sed -i "/rewrite_log.*/d" /etc/nginx/sites-available/$DOMAIN + else + # Lets Disable Nginx Reload Trigger + EE_DEBUG_REWRITE="" + ee_lib_echo "Rewrites Logs Already Stop For $DOMAIN" + fi +} + +DEBUG_PHP() +{ + # Lets Disable PHP Restart Trigger + EE_DEBUG_PHP="" + + if [ -z $EE_DEBUG_SITENAME ] + then + grep -B2 9001 /etc/nginx/conf.d/upstream.conf | grep php &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + ee_lib_echo "Enable PHP5-FPM Slow Log, Please Wait..." + sed -i "4 s/9000/9001/" /etc/nginx/conf.d/upstream.conf + + # Lets Trigger The Nginx Reload + EE_DEBUG_NGINX="--nginx" + else + ee_lib_echo "PHP5-FPM Slow Log Already Enabled" + fi + else + grep 9001 /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + ee_lib_echo "Enable PHP5-FPM Slow Log For $DOMAIN, Please Wait..." + sed -i "s/fastcgi_pass.*/fastcgi_pass debug;/g" /etc/nginx/sites-available/$DOMAIN + + # Lets Trigger The Nginx Reload + EE_DEBUG_NGINX="--nginx" + else + ee_lib_echo "PHP5-FPM Slow Log Already Enabled For $DOMAIN" + fi + fi +} + +DEBUG_PHP_STOP() +{ + # Lets Disable PHP Restart Trigger + EE_DEBUG_PHP="" + + if [ -z $EE_DEBUG_SITENAME ] + then + grep -B2 9001 /etc/nginx/conf.d/upstream.conf | grep php &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + ee_lib_echo "Disable PHP5-FPM Slow Log, Please Wait..." + sed -i "4 s/9001/9000/" /etc/nginx/conf.d/upstream.conf + + # Lets Trigger The Nginx Reload + EE_DEBUG_NGINX="--nginx" + else + ee_lib_echo "PHP5-FPM Slow Log Already Disabled" + fi + else + grep "fastcgi_pass debug;" /etc/nginx/sites-available/$DOMAIN &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + ee_lib_echo "Disable PHP5-FPM Slow Log For $DOMAIN, Please Wait..." + sed -i "s/fastcgi_pass.*/fastcgi_pass php;/g" /etc/nginx/sites-available/$DOMAIN + + # Lets Trigger The Nginx Reload + EE_DEBUG_NGINX="--nginx" + else + ee_lib_echo "PHP5-FPM Slow Log Already Disabled For $DOMAIN" + fi + fi +} + +DEBUG_PHP_FPM() +{ + grep "log_level = debug" /etc/php5/fpm/php-fpm.conf &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Enable PHP5-FPM Error Logs In Debug Mode + ee_lib_echo "Setting Up PHP5-FPM Log Level In Debug Mode, Please Wait..." + sed -i "s';log_level.*'log_level = debug'" /etc/php5/fpm/php-fpm.conf + else + EE_DEBUG_FPM="" + ee_lib_echo "PHP5-FPM Log Level Is Already In Debug Mode" + fi +} + +DEBUG_PHP_FPM_STOP() +{ + grep "log_level = notice" /etc/php5/fpm/php-fpm.conf &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Disable PHP5-FPM Error Logs In Debug Mode + ee_lib_echo "Stopping PHP5-FPM Log Level In Debug Mode, Please Wait..." + sed -i "s/log_level = debug/log_level = notice/" /etc/php5/fpm/php-fpm.conf + else + EE_DEBUG_FPM="" + ee_lib_echo "PHP5-FPM Log Level Already In Notice (Default) Mode" + fi +} + +DEBUG_MYSQL() +{ + # Collect MySQL Login Details + MYSQLROOT + + # Check MySql Slow Logs Is ON + #grep slow-query-log /etc/mysql/my.cnf &>> $EE_COMMAND_LOG + mysql -u $MYSQLUSER -p$MYSQLPASS -e "show variables like 'slow_query_log';" | grep ON &>> $EE_COMMAND_LOG + + if [ $? -ne 0 ] + then + # Enable MySQL Slow Logs + ee_lib_echo "Setting Up MySQL Slow Log, Please Wait..." + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global slow_query_log = 'ON';" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global slow_query_log_file = '/var/log/mysql/slow.log';" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global long_query_time=2;" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global log_queries_not_using_indexes = 'ON';" + #sed -i "/#long_query_time/i slow-query-log = 1\nslow-query-log-file = /var/log/mysql/slow.log" /etc/mysql/my.cnf + #sed -i "s/#long_query_time/long_query_time/" /etc/mysql/my.cnf + #sed -i "s/#log-queries-not-using-indexes/log-queries-not-using-indexes/" /etc/mysql/my.cnf + else + # Lets Disable MySQL Restart Trigger + #EE_DEBUG_MYSQL="" + ee_lib_echo "MySQL Slow Log Already Enabled" + fi +} + +DEBUG_MYSQL_STOP() +{ + # Collect MySQL Login Details + MYSQLROOT + + # Check MySql Slow Logs Is OFF + #grep slow-query-log /etc/mysql/my.cnf &>> $EE_COMMAND_LOG + mysql -u $MYSQLUSER -p$MYSQLPASS -e "show variables like 'slow_query_log';" | grep ON &>> $EE_COMMAND_LOG + + if [ $? -eq 0 ] + then + # Disable MySQL Slow Logs + ee_lib_echo "Stopping MySQL Slow Log, Please Wait..." + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global slow_query_log = 'OFF';" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global slow_query_log_file = '/var/log/mysql/slow.log';" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global long_query_time=10;" + mysql -u $MYSQLUSER -p$MYSQLPASS -e "set global log_queries_not_using_indexes = 'OFF';" + #sed -i "/slow-query-log/d" /etc/mysql/my.cnf + #sed -i "s/long_query_time/#long_query_time/" /etc/mysql/my.cnf + #sed -i "s/log-queries-not-using-indexes/#log-queries-not-using-indexes/" /etc/mysql/my.cnf + else + # Lets Disable MySQL Restart Trigger + #EE_DEBUG_MYSQL="" + ee_lib_echo "MySQL Slow Log Already Disable" + fi +} + +DEBUG_WORDPRESS() +{ + if [ -e /var/www/$DOMAIN/wp-config.php ] + then + + grep "'WP_DEBUG'" /var/www/$DOMAIN/wp-config.php | grep true &>> $EE_COMMAND_LOG + if [ $? -ne 0 ] + then + # Debug WordPress + ee_lib_echo "Start WordPress Debug Logs For $DOMAIN" + + # Call PHPUSERINFO Function For PHP User Details + PHPUSERINFO + + # Create debug.log & Change Permission + touch /var/www/$DOMAIN/htdocs/wp-content/debug.log + chown $PHPUSER:$PHPUSER /var/www/$DOMAIN/htdocs/wp-content/debug.log + + # Turn On Debug + sed -i "s/define('WP_DEBUG'.*/define('WP_DEBUG', true);\ndefine('WP_DEBUG_DISPLAY', false);\ndefine('WP_DEBUG_LOG', true);\ndefine('SAVEQUERIES', true);/" /var/www/$DOMAIN/wp-config.php + + # Install Developer Plugin + # Installing Nginx Helper + cd /var/www/$DOMAIN/htdocs/ + ee_lib_echo "Installing Developer Plugin, Please Wait..." + wp plugin --allow-root install developer &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Install Developer Plugin" + + else + ee_lib_echo "WordPress Debug Log Already Started For $DOMAIN" + fi + else + ee_lib_echo_fail "Unable To Find wp-config.php File, Seems Like Not WordPress Site" + fi +} + +DEBUG_WORDPRESS_STOP() +{ + grep "'WP_DEBUG'" /var/www/$DOMAIN/wp-config.php | grep true &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + # Stop Debug WordPress + ee_lib_echo "Stopping WordPress Debug Logs For $DOMAIN" + sed -i "s/define('WP_DEBUG', true);/define('WP_DEBUG', false);/" /var/www/$DOMAIN/wp-config.php + sed -i "/define('WP_DEBUG_DISPLAY', false);/d" /var/www/$DOMAIN/wp-config.php + sed -i "/define('WP_DEBUG_LOG', true);/d" /var/www/$DOMAIN/wp-config.php + sed -i "/define('SAVEQUERIES', true);/d" /var/www/$DOMAIN/wp-config.php + else + ee_lib_echo "WordPress Debug Log Already Stopped For $DOMAIN" + fi +} + +DEBUG_KILL() +{ + if [ "$EE_DEBUG" = "--start" ] + then + if [ -z "$EE_DEBUG_SITENAME" ] + then + ee debug --stop + else + ee debug --stop $EE_DEBUG_SITENAME + fi + fi + + # Unset Trap So We Don't Get Infinate Loop + trap - EXIT + + # Flush File System Buffers + # More Details: info coreutils 'sync invocation' + sync + + # Successfull Exit + exit 0; +} +trap "DEBUG_KILL" EXIT + +DEBUG_INTERACTIVE() +{ + if [ -z "$EE_DEBUG_SITENAME" ] + then + tail -f /var/log/nginx/*.error.log /var/log/php5/*.log /var/log/mysql/*.log + else + tail -f /var/log/nginx/*.error.log /var/log/php5/*.log /var/log/mysql/*.log /var/www/$DOMAIN/htdocs/wp-content/debug.log + fi +} + + +# Easy Engine Version +if [ "$1" = "version" ] || [ "$1" = "--version" ] || [ "$1" = "-v" ] +then + + # Display Easy Engine Version + echo "easyengine version: 1.3.8" + +# Easy Engine Info +elif [ "$1" = "info" ] +then + + # Get Nginx PHP & MySQL Information + EEINFO + +# Easy Engine Help +elif [ "$1" = "help" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ] +then + + # Display Man Pages + man ee + + +# Easy Engine System Settings +elif [ "$1" = "system" ] +then + + # Easy Engine Install + if [ "$2" = "install" ] + then + + # Check Auto Assume Yes Or No To Apt-Get + APTASSUMEYES + + if [ "$3" = "nginx" ] + then + + # Install Python Software Properties + PYTHONSOFTWARE + + # Add Nginx Launchpad Repository + ee_mod_repo_nginx + + # Fix GPG Key Problems + ee_lib_gpg_key_fix + + # Update The APT Cache + ee_lib_apt_get_update + + # Install Nginx + ee_mod_install_nginx + + # Personal Settings For Nginx + ee_mod_setup_nginx + + # Restart Nginx To Take Effect Of ee_mod_setup_nginx Functions + NGINXRESTART + + # Initialise Git + EEGITDIR=/etc/nginx/ + EEGITINIT + + # Display Success Message + ee_lib_echo "Nginx Successfully Installed" + + elif [ "$3" = "php" ] + then + + # Install Python Software Properties + PYTHONSOFTWARE + + # Add PHP Launchpad Repository + ee_mod_repo_php + + # Fix GPG Key Problems + ee_lib_gpg_key_fix + + # Update The APT Cache + ee_lib_apt_get_update + + # Install PHP5 + ee_mod_install_php + + # Personal Settings For PHP + ee_lib_setup_php + + # Restart PHP To Take Effect Of ee_lib_setup_php Functions + PHPRESTART + + # Install WP-CLI & PHP Packages + WP-CLI + PHP_PACKAGES + + # Initialise Git + EEGITDIR=/etc/php5/ + EEGITINIT + + # Display Success Message + ee_lib_echo "PHP5 & WP-CLI Successfully Installed" + + elif [ "$3" = "phpmyadmin" ] || [ "$3" = "pma" ] + then + + # Install PMA/phpMyAdmin + INSTALLPMA + + # Initialise Git + #EEGITDIR=/var/www/22222/htdocs/db/pma/ + #EEGITINIT + + # Display Success Message + ee_lib_echo "phpMyAdmin Successfully Installed" + + elif [ "$3" = "mysql" ] + then + + # Add Percona Repository + #PERCONA_REPO + + # Fix GPG Key Problems + #ee_lib_gpg_key_fix + + # Update The APT Cache + ee_lib_apt_get_update + + # Install MySQL + INSTALLMYSQL + + # Personal Settings For MySQL + COMMONMYSQL + + # Restart MySQL + MYSQLRESTART + + # Initialize Git + EEGITDIR=/etc/mysql/ + EEGITINIT + + # Display Success Message + ee_lib_echo "MySQL Successfully Installed" + + elif [ "$3" = "postfix" ] + then + + # Update The APT Cache + ee_lib_apt_get_update + + # Install Postfix + INSTALLPOSTFIX + + # Initialize Git + EEGITDIR=/etc/postfix/ + EEGITINIT + + # Display Success Message + ee_lib_echo "Postfix Successfully Installed" + + elif [ "$3" = "all" ] || [ "$3" = "" ] + then + + # Install Python Software Properties + PYTHONSOFTWARE + + # Add Nginx Launchpad Repository + ee_mod_repo_nginx + + # Add PHP Launchpad Repository + ee_mod_repo_php + + # Add Percona Repository + #PERCONA_REPO + + # Fix GPG Key Problems + ee_lib_gpg_key_fix + + # Update The APT Cache + ee_lib_apt_get_update + + # Install Nginx PHP5 MySQL Postfix + INSTALLALL + + # Personal Settings For Nginx + ee_mod_setup_nginx + + # Reload Nginx To Take Effect Of ee_mod_setup_nginx Functions + NGINXRESTART + + # Personal Settings For PHP + ee_lib_setup_php + + # Restart PHP To Take Effect Of ee_lib_setup_php Functions + PHPRESTART + + # Install WP-CLI & PHP Packages + WP-CLI + PHP_PACKAGES + + # Install PMA/phpMyAdmin + INSTALLPMA + + # Personal Settings For MySQL + COMMONMYSQL + + # Restart MySQL + MYSQLRESTART + + # Initialize Git + EEGITDIR=/etc/nginx/ + EEGITINIT + + # Initialize Git + EEGITDIR=/etc/php5/ + EEGITINIT + + # Initialize Git + EEGITDIR=/etc/mysql/ + EEGITINIT + + # Initialize Git + #EEGITDIR=/var/www/22222/htdocs/db/pma/ + #EEGITINIT + + # Initialize Git + EEGITDIR=/etc/postfix/ + EEGITINIT + + # Display Success Message + ee_lib_echo "Nginx PHP5 WP-CLI MySQL Postfix phpMyAdmin Successfully Installed" + ee_lib_echo "You Can Now Create Your First WordPress Site Powered By Nginx Using:" + ee_lib_echo_info "ee site create example.com --wp" + + fi + + # Easy Engine Remove + elif [ "$2" = "remove" ] + then + + # Check Auto Assume Yes Or No To Apt-Get + APTASSUMEYES + + if [ "$3" = "nginx" ] + then + + # Remove Nginx + REMOVENGINX + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "Nginx Successfully Removed" + + elif [ "$3" = "php" ] + then + + # Remove PHP5 + REMOVEPHP + REMOVEWPCLI + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "PHP5 & WP-CLI Successfully Removed" + + elif [ "$3" = "phpmyadmin" ] || [ "$3" = "pma" ] + then + + # Remove PMA/phpMyAdmin + REMOVEPMA + + # Display Success Message + ee_lib_echo "phpMyAdmin Successfully Removed" + + elif [ "$3" = "mysql" ] + then + + # Remove MySQL + REMOVEMYSQL + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "MySQL Successfully Removed" + + elif [ "$3" = "postfix" ] + then + + # Remove Postfix + REMOVEPOSTFIX + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "Postfix Successfully Removed" + + elif [ "$3" = "all" ] || [ "$3" = "" ] + then + + # Remove Nginx PHP5 MySQL Postfix + REMOVEALL + + # Remove Unwanted Packages + AUTOREMOVE + REMOVEWPCLI + REMOVEPMA + + # Display Success Message + ee_lib_echo "Nginx PHP5 WP-CLI MySQL Postfix phpMyAdmin Successfully Removed" + + fi + + # Easy Engine Purge + elif [ "$2" = "purge" ] + then + + # Check Auto Assume Yes Or No To Apt-Get + APTASSUMEYES + + if [ "$3" = "nginx" ] + then + + # Purge Nginx + PURGENGINX + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "Nginx Successfully Purged" + + elif [ "$3" = "php" ] + then + + # Purge PHP5 + PURGEPHP + REMOVEWPCLI + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "PHP5 & WP-CLI Successfully Purged" + + elif [ "$3" = "phpmyadmin" ] || [ "$3" = "pma" ] + then + + # Purge PMA/phpMyAdmin + REMOVEPMA + + # Display Success Message + ee_lib_echo "phpMyAdmin Successfully Purged" + + elif [ "$3" = "mysql" ] + then + + # Purge MySQL + PURGEMYSQL + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "MySQL Successfully Purged" + + elif [ "$3" = "postfix" ] + then + + # Purge Postfix + PURGEPOSTFIX + + # Remove Unwanted Packages + AUTOREMOVE + + # Display Success Message + ee_lib_echo "Postfix Successfully Purged" + + elif [ "$3" = "all" ] || [ "$3" = "" ] + then + + # Purge Nginx PHP5 MySQL Postfix + PURGEALL + + # Remove Unwanted Packages + AUTOREMOVE + REMOVEWPCLI + REMOVEPMA + + # Display Success Message + ee_lib_echo "Nginx PHP5 WP-CLI MySQL Postfix phpMyAdmin Successfully Purged" + + fi + + elif [ "$2" = "status" ] + then + # Call The System Status Function + EE_SYSTEM_STATUS + + elif [ "$2" = "stop" ] + then + # Stop Nginx PHP5-FPM MySQL & Postfix + ee_lib_echo "Stopping Nginx Service, Please Wait..." + service nginx stop &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Stop Nginx" + ee_lib_echo "Stopping PHP5-FPM Service, Please Wait..." + service php5-fpm stop &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Stop PHP5-FPM" + ee_lib_echo "Stopping MySQL Service, Please Wait..." + service mysql stop &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Stop MySQL" + ee_lib_echo "Stopping Postfix Service, Please Wait..." + service postfix stop &>> $EE_COMMAND_LOG || ee_lib_error "Unable To Stop Postfix" + + elif [ "$2" = "start" ] + then + # Start Nginx PHP5-FPM MySQL & Postfix + NGINXSTART + PHPSTART + MYSQLSTART + POSTFIXSTART + + elif [ "$2" = "reload" ] + then + # Restart Nginx PHP5-FPM MySQL & Postfix + NGINXRELOAD + PHPRELOAD + MYSQLRELOAD + POSTFIXRELOAD + + elif [ "$2" = "restart" ] + then + # Restart Nginx PHP5-FPM MySQL & Postfix + NGINXRESTART + PHPRESTART + MYSQLRESTART + POSTFIXRESTART + + else + ee_lib_echo "List Of Available Commands:" + echo -e "\tstatus:\t Display The System Status Information" + echo -e "\tstop:\t Stop Nginx PHP5-FPM MySQL And Postfix Services" + echo -e "\tstart:\t Start Nginx PHP5-FPM MySQL And Postfix Services" + echo -e "\treload:\t Reload Nginx PHP5-FPM MySQL And Postfix Services" + echo -e "\trestart: Restart Nginx PHP5-FPM MySQL And Postfix Services" + echo -e "\tpurge:\t Purge Nginx PHP5-FPM phpMyAdmin MySQL And Postfix Packages" + echo -e "\tremove:\t Remove Nginx PHP5-FPM phpMyAdmin MySQL And Postfix Packages" + echo -e "\tinstall: Install Nginx PHP5-FPM phpMyAdmin MySQL And Postfix Packages" + + fi + + +# Easy Engine Site Settings +elif [ "$1" = "site" ] +then + + # Easy Engine Site Enabled List + if [ "$2" = "list" ] + then + + if [ "$3" = "available" ] + then + + # Display The List Of Available Sites + ee_lib_echo "Display The List Of Available Websites:" + ls /etc/nginx/sites-available/ \ + || ee_lib_error "Unable To Display The List Of Available Websites" + + else + + # Display The List Of Enabled Websites + ee_lib_echo "Display The List Of Enabled Websites:" + ls /etc/nginx/sites-enabled/ \ + || ee_lib_error "Unable To Display The List Of Enabled Websites" + fi + + elif [ "$2" = "show" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + EESITENAME + + # Check The Website Is Exist + ls /etc/nginx/sites-available/$DOMAIN &> /dev/null \ + || ee_lib_error "The $DOMAIN Is Not Found In Available Websites List" + + if [ $? -eq 0 ] + then + + # Display The Specific Site Configuration + ee_lib_echo "Display Nginx Configuration For $DOMAIN" + cat /etc/nginx/sites-available/$DOMAIN \ + || ee_lib_error "Unable To Display Nginx Configuration For $DOMAIN" + + fi + + elif [ "$2" = "info" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + EESITENAME + + # Display The Specific Site Configuration + EESITEINFO + + elif [ "$2" = "create" ] + then + + # Configure Variables + SITENAMECHECK=$3 + EESITECREATE=$4 + WPCACHEOPTION=$5 + + # Auto Switch The Options + if [ "$EESITECREATE" = "--basic" ] || [ "$EESITECREATE" = "--w3tc" ] || [ "$EESITECREATE" = "--wpsc" ] || [ "$EESITECREATE" = "--wpfc" ] + then + if [ "$WPCACHEOPTION" = "--wpsubdir" ] || [ "$WPCACHEOPTION" = "--wpsubdirectory" ] || [ "$WPCACHEOPTION" = "--wpsubdom" ] || [ "$WPCACHEOPTION" = "--wpsubdomain" ] + then + EESITECREATE=$5 + WPCACHEOPTION=$4 + else + EESITECREATE=--wp + WPCACHEOPTION=$4 + fi + fi + + # WordPress SubDirectory Variables + if [ "$EESITECREATE" = "--wpsubdir" ] || [ "$EESITECREATE" = "--wpsubdirectory" ] + then + NETWORKACTIVATE="--network" + fi + + # WordPress SubDomain Variables + if [ "$EESITECREATE" = "--wpsubdom" ] || [ "$EESITECREATE" = "--wpsubdomain" ] + then + NETWORKACTIVATE="--network" + WPSUBDOMAINS="--subdomains" + fi + + # USE DEFAULT WHEN POSSIBLES + # ee site create example.com + if [ "$EESITECREATE" = "" ] + then + EESITECREATE=--html + fi + + + # If No Cache Specified Use --basic As Default On WordPress Sites + if [ "$WPCACHEOPTION" = "" ] && [ "$EESITECREATE" != "--html" ] && [ "$EESITECREATE" != "--php" ] && [ "$EESITECREATE" != "--mysql" ] + then + WPCACHEOPTION=--basic + fi + + + if [ "$EESITECREATE" = "--html" ] + then + + # Configure Variable + NGINXCONF=html/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup HTML Nginx + EESITENAME + EEDOMAINSETUP + PERMISSIONANDGIT + + # Display Success Message + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$EESITECREATE" = "--php" ] + then + + # Configure Variable + NGINXCONF=php/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup PHP Nginx + EESITENAME + EEDOMAINSETUP + PERMISSIONANDGIT + + # Display Success Message + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$EESITECREATE" = "--mysql" ] + then + + # Configure Variable + NGINXCONF=mysql/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup PHP Nginx + EESITENAME + EEDOMAINSETUP + PERMISSIONANDGIT + + # Call MYSQLINFO Function For MySQL Values + MYSQLINFO + EECREATEDATABASE + + # Add Database Information On ee-config.php + echo -e "define('DB_NAME', '$WPDBNAME'); \ndefine('DB_USER', '$WPDBUSER'); \ndefine('DB_PASSWORD', '$WPDBPASS'); \ndefine('DB_HOST', '$MYSQLHOST');" \ + &>> /var/www/$DOMAIN/ee-config.php + + # Display Success Message + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$EESITECREATE" = "--wp" ] + then + + if [ "$WPCACHEOPTION" = "--basic" ] + then + + # Configure Variable + NGINXCONF=wp/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Basic Nginx + SETUPDOMAIN + NGINXHELPER + PERMISSIONANDGIT + + # Display Success Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--w3tc" ] + then + + # Configure Variable + NGINXCONF=wp/w3tc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup W3 Total Cache Nginx + SETUPDOMAIN + NGINXHELPER + TOTALCACHENGINX + PERMISSIONANDGIT + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpsc" ] + then + + # Configure Variable + NGINXCONF=wp/wpsc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup WP Super Cache Nginx + SETUPDOMAIN + NGINXHELPER + SUPERCACHENGINX + PERMISSIONANDGIT + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "WP Super Cache: http://$DOMAIN/wp-admin/options-general.php?page=wpsupercache" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpfc" ] + then + + # Configure Variable + NGINXCONF=wp/wpfc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Fastcgi Cache Nginx + SETUPDOMAIN + NGINXHELPER + TOTALCACHENGINX + PERMISSIONANDGIT + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "Nginx Helper: http://$DOMAIN/wp-admin/options-general.php?page=nginx" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + fi + + elif [ "$EESITECREATE" = "--wpsubdir" ] || [ "$EESITECREATE" = "--wpsubdirectory" ] + then + + if [ "$WPCACHEOPTION" = "--basic" ] + then + + # Configure Variable + NGINXCONF=wpsubdir/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display Success Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--w3tc" ] + then + + # Configure Variable + NGINXCONF=wpsubdir/w3tc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + TOTALCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/network/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpsc" ] + then + + # Configure Variable + NGINXCONF=wpsubdir/wpsc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + SUPERCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "WP Super Cache: http://$DOMAIN/wp-admin/network/settings.php?page=wpsupercache" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpfc" ] + then + + # Configure Variable + NGINXCONF=wpsubdir/wpfc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + TOTALCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "Nginx Helper: http://$DOMAIN/wp-admin/network/settings.php?page=nginx" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/network/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + fi + + elif [ "$EESITECREATE" = "--wpsubdom" ] || [ "$EESITECREATE" = "--wpsubdomain" ] + then + + if [ "$WPCACHEOPTION" = "--basic" ] + then + + # Configure Variable + NGINXCONF=wpsubdomain/basic.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display Success Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--w3tc" ] + then + + # Configure Variable + NGINXCONF=wpsubdomain/w3tc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + TOTALCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/network/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpsc" ] + then + + # Configure Variable + NGINXCONF=wpsubdomain/wpsc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + SUPERCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "WP Super Cache: http://$DOMAIN/wp-admin/network/settings.php?page=wpsupercache" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + elif [ "$WPCACHEOPTION" = "--wpfc" ] + then + + # Configure Variable + NGINXCONF=wpsubdomain/wpfc.conf + echo -e "SITENAMECHECK = $SITENAMECHECK \nEESITECREATE = $EESITECREATE \nWPCACHEOPTION = $WPCACHEOPTION \nNETWORKACTIVATE = $NETWORKACTIVATE \nWPSUBDOMAINS = $WPSUBDOMAINS \nNGINXCONF = $NGINXCONF" &>> $EE_COMMAND_LOG + + # Setup Domain WordPress & Database + SETUPDOMAIN + + # Setup WordPress SubDirectory Network + SETUPWPNETWORK + TOTALCACHENGINX + PERMISSIONANDGIT + + # Setup phpMyAdmin + #ln -s /var/www/22222/htdocs/db/pma /var/www/$DOMAIN/htdocs/pma + + # Display WordPress Plugin Configuration Message + echo + ee_lib_echo_info "WordPress Admin Username: $WPADMINUSER" + ee_lib_echo_info "WordPress Admin Password: $WPADMINPASS" + echo + ee_lib_echo "Please Configure The Following Settings..." + #ee_lib_echo "Permalink Settings: http://$DOMAIN/wp-admin/options-permalink.php" + ee_lib_echo "Nginx Helper: http://$DOMAIN/wp-admin/network/settings.php?page=nginx" + ee_lib_echo "W3 Total Cache: http://$DOMAIN/wp-admin/network/admin.php?page=w3tc_general" + + # Display Success Message + echo + ee_lib_echo_info "Successfully Created New Website: http://$WWWDOMAIN" + + fi + fi + + elif [ "$2" = "enable" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + EESITENAME + + # Creating Symbolic Link + NGINXSYMBOLICLINK + + # Reload Nginx Configuration + NGINXRELOAD + + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Enable Website: $DOMAIN" + EEGITCOMMIT + + elif [ "$2" = "disable" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + EESITENAME + + # Remove Symbolic Link + ee_lib_echo "Removing Symbolic Link For $DOMAIN" + rm /etc/nginx/sites-enabled/$DOMAIN \ + || ee_lib_error "Unable To Remove Symbolic Link For $DOMAIN" + + # Reload Nginx Configuration + NGINXRELOAD + + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Disable Website: $DOMAIN" + EEGITCOMMIT + + elif [ "$2" = "delete" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + SITEDELETEARG=$4 + EESITENAME + + # USE DEFAULT WHEN POSSIBLES + if [ "$SITEDELETEARG" = "" ] + then + SITEDELETEARG=--all + fi + + if [ "$SITEDELETEARG" = "--db" ] + then + + # Remove Database + REMOVEDB + + elif [ "$SITEDELETEARG" = "--files" ] + then + + # Remove Webroot + REMOVEFILES + + elif [ "$SITEDELETEARG" = "--all" ] + then + + # Remove All Database And Webroot + REMOVEDB + REMOVEFILES + + # Remove Nginx Configuration + REMOVENGINXCONF + + # Reload Nginx + NGINXRELOAD + + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Delete Website With $SITEDELETEARG Option: $DOMAIN" + EEGITCOMMIT + + elif [ "$SITEDELETEARG" = "--all-no-prompt" ] + then + + # Remove All Database And Webroot + REMOVEDB "no-prompt" + REMOVEFILES "no-prompt" + + # Remove Nginx Configuration + REMOVENGINXCONF "no-prompt" + + # Reload Nginx + NGINXRELOAD + + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Delete Website With $SITEDELETEARG Option: $DOMAIN" + EEGITCOMMIT + fi + + elif [ "$2" = "edit" ] + then + + # Check SITENAME Is Empty Or Not + SITENAMECHECK=$3 + EESITENAME + + # Edit The Nginx Configuration For $DOMAIN + EESITEEDIT + + if [ $(cd /etc/nginx; git status -s /etc/nginx/sites-available/$DOMAIN | wc -l) -ne 0 ] + then + # Take Nginx Configuration In Git Version Control + EEGITDIR=/etc/nginx + EEGITMESSAGE="Edited Website: $DOMAIN" + EEGITCOMMIT + + # Reload Nginx Configuration + NGINXRELOAD + fi + + + else + ee_lib_echo "List Of Available Commands:" + echo -e "\tinfo:\t Dispaly Information About Given Website" + echo -e "\tlist:\t List Nginx Enabled Websites" + echo -e "\tshow:\t Display Nginx Configuration For Given Website" + echo -e "\tcreate:\t Create A New HTML PHP MySQL & WordPress Website" + echo -e "\tdelete:\t Delete Existing Website" + echo -e "\tenable:\t Enable Website" + echo -e "\tedit: Manually Edit Website" + + fi + +elif [ "$1" = "debug" ] +then + + # Default Action = Start Debugging + EE_DEBUG="--start" + + # Auto Arrenge Options + for ARGS in $@ + do + [ "$ARGS" = "-i" ] && EE_DEBUG_INTERACTIVE=$ARGS && echo EE_DEBUG_INTERACTIVE = $EE_DEBUG_INTERACTIVE &>> $EE_COMMAND_LOG + [ "$ARGS" = "--stop" ] && EE_DEBUG=$ARGS && echo EE_DEBUG = $EE_DEBUG &>> $EE_COMMAND_LOG + [ "$ARGS" = "--nginx" ] && EE_DEBUG_NGINX=$ARGS && echo EE_DEBUG_NGINX = $EE_DEBUG_NGINX &>> $EE_COMMAND_LOG + [ "$ARGS" = "--rewrite" ] && EE_DEBUG_REWRITE=$ARGS && echo EE_DEBUG_REWRITE = $EE_DEBUG_REWRITE &>> $EE_COMMAND_LOG + [ "$ARGS" = "--php" ] && EE_DEBUG_PHP=$ARGS && echo EE_DEBUG_PHP = $EE_DEBUG_PHP &>> $EE_COMMAND_LOG + [ "$ARGS" = "--fpm" ] && EE_DEBUG_FPM=$ARGS && echo EE_DEBUG_FPM = $EE_DEBUG_FPM &>> $EE_COMMAND_LOG + [ "$ARGS" = "--mysql" ] && EE_DEBUG_MYSQL=$ARGS && echo EE_DEBUG_MYSQL = $EE_DEBUG_MYSQL &>> $EE_COMMAND_LOG + [ "$ARGS" = "--wp" ] && EE_DEBUG_WP=$ARGS && echo EE_DEBUG_WP = $EE_DEBUG_WP &>> $EE_COMMAND_LOG + if [ "$ARGS" != "debug" ] && [ "$ARGS" != "-i" ] && [ "$ARGS" != "--start" ] && [ "$ARGS" != "--stop" ] && [ "$ARGS" != "--nginx" ] && [ "$ARGS" != "--rewrite" ] && [ "$ARGS" != "--php" ] && [ "$ARGS" != "--fpm" ] && [ "$ARGS" != "--mysql" ] && [ "$ARGS" != "--wp" ] + then + ls /etc/nginx/sites-available/ | grep $ARGS &>> $EE_COMMAND_LOG + if [ $? -eq 0 ] + then + EE_DEBUG_SITENAME=$ARGS && echo EE_DEBUG_SITENAME = $EE_DEBUG_SITENAME &>> $EE_COMMAND_LOG + fi + fi + done + + if [ "$EE_DEBUG" = "--start" ] + then + + + if [ -z "$EE_DEBUG_NGINX" ] && [ -z "$EE_DEBUG_REWRITE" ] && [ -z "$EE_DEBUG_PHP" ] && [ -z "$EE_DEBUG_FPM" ] && [ -z "$EE_DEBUG_MYSQL" ] && [ -z "$EE_DEBUG_WP" ] + then + EE_DEBUG_NGINX="--nginx" && echo EE_DEBUG_NGINX = $EE_DEBUG_NGINX &>> $EE_COMMAND_LOG + EE_DEBUG_REWRITE="--rewrite" && echo EE_DEBUG_REWRITE = $EE_DEBUG_REWRITE &>> $EE_COMMAND_LOG + EE_DEBUG_PHP="--php" && echo EE_DEBUG_PHP = $EE_DEBUG_PHP &>> $EE_COMMAND_LOG + EE_DEBUG_FPM="--fpm" && echo EE_DEBUG_FPM = $EE_DEBUG_FPM &>> $EE_COMMAND_LOG + EE_DEBUG_MYSQL="--mysql" && echo EE_DEBUG_MYSQL = $EE_DEBUG_MYSQL &>> $EE_COMMAND_LOG + + if [ -n "$EE_DEBUG_SITENAME" ] + then + EE_DEBUG_WP="--wp" && echo EE_DEBUG_WP = $EE_DEBUG_WP &>> $EE_COMMAND_LOG + fi + fi + + + if [ -z "$EE_DEBUG_SITENAME" ] + then + + if [ "$EE_DEBUG_NGINX" = "--nginx" ] + then + # Debug Nginx + DEBUG_NGINX + + # Log Message + LOGMESSAGE="/var/log/nginx/*.error.log" + fi + + if [ "$EE_DEBUG_REWRITE" = "--rewrite" ] + then + # Debug Nginx Rewrite Logs + DEBUG_NGINX_REWRITE + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/log/nginx/*.error.log" + fi + + if [ "$EE_DEBUG_WP" = "--wp" ] + then + ee_lib_echo_fail "The --wp Option Can Be Enabled For WordPress Site Only" + fi + + else + + # Get The Domain Name + SITENAMECHECK=$EE_DEBUG_SITENAME + EESITENAME + + if [ "$EE_DEBUG_NGINX" = "--nginx" ] + then + # Debug Nginx + DEBUG_NGINX_SITE + + # Log Message + LOGMESSAGE="/var/www/$DOMAIN/logs/error.log" + fi + + if [ "$EE_DEBUG_REWRITE" = "--rewrite" ] + then + # Debug Nginx Rewrite Logs + DEBUG_NGINX_REWRITE_SITE + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/log/$DOMAIN/logs/error.log" + fi + + if [ "$EE_DEBUG_WP" = "--wp" ] + then + # Debug WordPress Debug Log + DEBUG_WORDPRESS + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/www/$DOMAIN/htdocs/wp-content/debug.log" + fi + + fi + + if [ "$EE_DEBUG_PHP" = "--php" ] + then + # Debug PHP + DEBUG_PHP + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/log/php5/slow.log" + fi + + if [ "$EE_DEBUG_FPM" = "--fpm" ] + then + # Debug PHP FPM + DEBUG_PHP_FPM + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/log/php5/fpm.log" + fi + + if [ "$EE_DEBUG_MYSQL" = "--mysql" ] + then + # Debug MySQL Slow Query + DEBUG_MYSQL + + # Log Message + LOGMESSAGE="$LOGMESSAGE /var/log/mysql/slow.log" + fi + + elif [ "$EE_DEBUG" = "--stop" ] + then + + if [ -z "$EE_DEBUG_NGINX" ] && [ -z "$EE_DEBUG_REWRITE" ] && [ -z "$EE_DEBUG_PHP" ] && [ -z "$EE_DEBUG_FPM" ] && [ -z "$EE_DEBUG_MYSQL" ] && [ -z "$EE_DEBUG_WP" ] + then + EE_DEBUG_NGINX="--nginx" && echo EE_DEBUG_NGINX = $EE_DEBUG_NGINX &>> $EE_COMMAND_LOG + EE_DEBUG_REWRITE="--rewrite" && echo EE_DEBUG_REWRITE = $EE_DEBUG_REWRITE &>> $EE_COMMAND_LOG + EE_DEBUG_PHP="--php" && echo EE_DEBUG_PHP = $EE_DEBUG_PHP &>> $EE_COMMAND_LOG + EE_DEBUG_FPM="--fpm" && echo EE_DEBUG_FPM = $EE_DEBUG_FPM &>> $EE_COMMAND_LOG + EE_DEBUG_MYSQL="--mysql" && echo EE_DEBUG_MYSQL = $EE_DEBUG_MYSQL &>> $EE_COMMAND_LOG + EE_DEBUG_WP="--wp" && echo EE_DEBUG_WP = $EE_DEBUG_WP &>> $EE_COMMAND_LOG + fi + + if [ -z "$EE_DEBUG_SITENAME" ] + then + + if [ "$EE_DEBUG_NGINX" = "--nginx" ] + then + # Debug Nginx + DEBUG_NGINX_STOP + fi + + if [ "$EE_DEBUG_REWRITE" = "--rewrite" ] + then + # Debug Nginx Rewrite Logs + DEBUG_NGINX_REWRITE_STOP + fi + + else + + # Get The Domain Name + SITENAMECHECK=$EE_DEBUG_SITENAME + EESITENAME + + if [ "$EE_DEBUG_NGINX" = "--nginx" ] + then + # Debug Nginx + DEBUG_NGINX_SITE_STOP + fi + + if [ "$EE_DEBUG_REWRITE" = "--rewrite" ] + then + # Debug Nginx Rewrite Logs + DEBUG_NGINX_REWRITE_SITE_STOP + fi + + if [ "$EE_DEBUG_WP" = "--wp" ] + then + # Debug WordPress Debug Log + DEBUG_WORDPRESS_STOP + fi + + fi + + if [ "$EE_DEBUG_PHP" = "--php" ] + then + # Debug PHP + DEBUG_PHP_STOP + fi + + if [ "$EE_DEBUG_FPM" = "--fpm" ] + then + # Debug PHP FPM + DEBUG_PHP_FPM_STOP + fi + + if [ "$EE_DEBUG_MYSQL" = "--mysql" ] + then + # Debug MySQL Slow Query + DEBUG_MYSQL_STOP + fi + + fi + + # Lets Restart Services + if [ "$EE_DEBUG_NGINX" = "--nginx" ] || [ "$EE_DEBUG_REWRITE" = "--rewrite" ] + then + # Reload Nginx + NGINXRELOAD + fi + + if [ "$EE_DEBUG_PHP" = "--php" ] || [ "$EE_DEBUG_FPM" = "--fpm" ] + then + # Restart PHP5-FPM + PHPRESTART + fi + + #if [ "$EE_DEBUG_MYSQL" = "--mysql" ] + #then + # Restart MySQL + #MYSQLRESTART + #fi + + if [ "$EE_DEBUG_INTERACTIVE" = "-i" ] + then + # Lets Start Debug In Interactive Mode + DEBUG_INTERACTIVE + elif [ "$EE_DEBUG_INTERACTIVE" != "-i" ] && [ "$EE_DEBUG" != "--stop" ] + then + ee_lib_echo_info "tail -f $LOGMESSAGE" + fi + + +elif [ "$1" = "update" ] +then + + # Update EasyEngine + ee_lib_echo "Checking EasyEngine Update, Please Wait..." + /bin/bash <(curl -sL https://raw.github.com/rtCamp/easyengine/stable/usr/local/sbin/eeupdate) + +else + ee_lib_echo "List Of Available Commands:" + echo -e "\tinfo:\t Display Nginx PHP MySQL Information\t" + echo -e "\thelp:\t Display EasyEngine Help\t" + echo -e "\tsite:\t Do Various Site Specific Operations\t" + echo -e "\tdebug:\t Do Various Debugging Operations\t" + echo -e "\tsystem:\t Do Various System Level Operations\t" + echo -e "\tupdate:\t Update EasyEngine (ee)\t" + echo -e "\tversion: Display EasyEngine (ee) Version\t" + + +fi + +} + +EasyEngine $@ | tee -ai $EE_COMMAND_LOG diff --git a/src/lib/ee_lib_dotdeb.sh b/src/lib/ee_lib_dotdeb.sh index ae03839c..9acf3ec3 100644 --- a/src/lib/ee_lib_dotdeb.sh +++ b/src/lib/ee_lib_dotdeb.sh @@ -4,6 +4,7 @@ function ee_lib_dotdeb() { wget --no-check-certificate -cO /tmp/dotdeb.gpg http://www.dotdeb.org/dotdeb.gpg \ &>> $EE_COMMAND_LOG || ee_lib_error "Unable to download Dotdeb.org GnuPG key, exit status = " $? + apt-key add /tmp/dotdeb.gpg &>> $EE_COMMAND_LOG \ || ee_lib_error "Unable to add Dotdeb.org GnuPG key, exit status = " $? } diff --git a/src/lib/ee_lib_variables.sh b/src/lib/ee_lib_variables.sh index b3f2cf2d..f00b47ed 100644 --- a/src/lib/ee_lib_variables.sh +++ b/src/lib/ee_lib_variables.sh @@ -29,7 +29,7 @@ else readonly EE_PHP_USER=www-data fi -# Findout MySQL login +# Find out MySQL login if [ -f ~/.my.cnf ];then readonly EE_MYSQL_USER=$(cat ~/.my.cnf | grep user | cut -d'=' -f2) readonly EE_MYSQL_PASS=$(cat ~/.my.cnf | grep pass | cut -d'=' -f2 | sed -e 's/^"//' -e 's/"$//') diff --git a/src/lib/ee_lib_install_mysql.sh b/src/modules/system/install/ee_mod_install_mysql.sh similarity index 64% rename from src/lib/ee_lib_install_mysql.sh rename to src/modules/system/install/ee_mod_install_mysql.sh index 7af310ee..73321782 100644 --- a/src/lib/ee_lib_install_mysql.sh +++ b/src/modules/system/install/ee_mod_install_mysql.sh @@ -1,25 +1,29 @@ # Install MySQL Package -ee_lib_install_mysql() +ee_mod_install_mysql() { - # Check mysql-server is installed or not + # Check MySQL is installed or not ee_lib_package_check mysql-server - # If mysql-server is not installed - # Then set random mysql password for root user + # If MySQL is not installed + # Then set random MySQL password for root user if [ -n $PACKAGE_NAME ]; then - # setting up mysql password + # Setting up MySQL password local ee_mysql_auto_pass=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n1) debconf-set-selections <<< "mysql-server mysql-server/root_password password $ee_mysql_auto_pass" debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $ee_mysql_auto_pass" # Generate ~/.my.cnf - echo -e "[client]\nuser=root\npassword=$ee_mysql_auto_pass" > ~/.my.cnf4 + echo -e "[client]\nuser=root\npassword=$ee_mysql_auto_pass" > ~/.my.cnf fi ee_lib_echo "Installing MySQL, please Wait..." $EE_APT_GET install mysql-server mysqltuner percona-toolkit \ || ee_lib_error "Unable to install MySQL, exit status = " $? + + # Download tuning-primer.sh + wget --no-check-certificate -cqO /usr/local/bin/tuning-primer.sh https://launchpadlibrarian.net/78745738/tuning-primer.sh + chmod a+x /usr/local/bin/tuning-primer.sh } diff --git a/src/lib/ee_lib_install_nginx.sh b/src/modules/system/install/ee_mod_install_nginx.sh similarity index 85% rename from src/lib/ee_lib_install_nginx.sh rename to src/modules/system/install/ee_mod_install_nginx.sh index 2526a5df..fc29bdcb 100644 --- a/src/lib/ee_lib_install_nginx.sh +++ b/src/modules/system/install/ee_mod_install_nginx.sh @@ -1,6 +1,6 @@ # Install nginx package -function ee_lib_install_nginx() +function ee_mod_install_nginx() { ee_lib_echo "Installing $NGINX_PACKAGE, please wait..." $EE_APT_GET install $NGINX_PACKAGE || ee_lib_error "Unable to install $NGINX_PACKAGE, exit status = " $? diff --git a/src/lib/ee_lib_install_php.sh b/src/modules/system/install/ee_mod_install_php.sh similarity index 90% rename from src/lib/ee_lib_install_php.sh rename to src/modules/system/install/ee_mod_install_php.sh index da8fda8e..142eda4b 100644 --- a/src/lib/ee_lib_install_php.sh +++ b/src/modules/system/install/ee_mod_install_php.sh @@ -1,6 +1,6 @@ # Install php5-fpm package -function ee_lib_install_php() +function ee_mod_install_php() { ee_lib_echo "Installing php5, please wait..." $EE_APT_GET install php5-common php5-mysqlnd php5-xmlrpc \ diff --git a/src/lib/ee_lib_repo_nginx.sh b/src/modules/system/install/ee_mod_repo_nginx.sh similarity index 96% rename from src/lib/ee_lib_repo_nginx.sh rename to src/modules/system/install/ee_mod_repo_nginx.sh index 31bfb860..927931f6 100644 --- a/src/lib/ee_lib_repo_nginx.sh +++ b/src/modules/system/install/ee_mod_repo_nginx.sh @@ -1,6 +1,6 @@ # Setup nginx repository -function ee_lib_repo_nginx() +function ee_mod_repo_nginx() { if [ "$EE_LINUX_DISTRO" == "Ubuntu" ]; then diff --git a/src/lib/ee_lib_repo_php.sh b/src/modules/system/install/ee_mod_repo_php.sh similarity index 97% rename from src/lib/ee_lib_repo_php.sh rename to src/modules/system/install/ee_mod_repo_php.sh index 07d31125..fadbdeb4 100644 --- a/src/lib/ee_lib_repo_php.sh +++ b/src/modules/system/install/ee_mod_repo_php.sh @@ -1,6 +1,6 @@ # Setup php5-fpm repository -function ee_lib_repo_php() +function ee_mod_repo_php() { # Ubuntu if [ "$EE_LINUX_DISTRO" == "Ubuntu" ]; then diff --git a/src/lib/ee_lib_setup_mysql.sh b/src/modules/system/install/ee_mod_setup_mysql.sh similarity index 65% rename from src/lib/ee_lib_setup_mysql.sh rename to src/modules/system/install/ee_mod_setup_mysql.sh index 27f50409..6c88688b 100644 --- a/src/lib/ee_lib_setup_mysql.sh +++ b/src/modules/system/install/ee_mod_setup_mysql.sh @@ -1,9 +1,9 @@ # Setup MySQL -ee_lib_setup_mysql() +function ee_mod_setup_mysql() { ee_lib_echo "Setting up MySQL, please wait..." - # Decrease mysql wait timeout + # Setting wait_timeout = 30 & interactive_timeout = 60 sed -i "/#max_connections/a wait_timeout = 30 \ninteractive_timeout = 60" /etc/mysql/my.cnf } diff --git a/src/lib/ee_lib_setup_nginx.sh b/src/modules/system/install/ee_mod_setup_nginx.sh similarity index 98% rename from src/lib/ee_lib_setup_nginx.sh rename to src/modules/system/install/ee_mod_setup_nginx.sh index a36bb85a..be051842 100644 --- a/src/lib/ee_lib_setup_nginx.sh +++ b/src/modules/system/install/ee_mod_setup_nginx.sh @@ -1,8 +1,8 @@ # Setup nginx -function ee_lib_setup_nginx() +function ee_mod_setup_nginx() { - local ee_ee_whitelist_ip_address + local ee_whitelist_ip_address ee_lib_echo "Setting up nginx, please wait..." diff --git a/src/lib/ee_lib_setup_php.sh b/src/modules/system/install/ee_mod_setup_php.sh similarity index 99% rename from src/lib/ee_lib_setup_php.sh rename to src/modules/system/install/ee_mod_setup_php.sh index 30a8b234..7522de74 100644 --- a/src/lib/ee_lib_setup_php.sh +++ b/src/modules/system/install/ee_mod_setup_php.sh @@ -1,6 +1,6 @@ # Setup php5-fpm -function ee_lib_setup_php() +function ee_mod_setup_php() { ee_lib_echo "Setting up php5, please wait..."