You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

640 lines
19 KiB

# Easy Engine Site Settings
elif [ "$1" = "site" ]
then
# Easy Engine Read
if [ "$2" = "read" ]
then
if [ "$3" = "available" ]
then
# Display The List Of Available Sites
echo -e "\033[34m List Of Available Websites \e[0m"
ls /etc/nginx/sites-available/ \
|| OwnError "Unable To Display The List Of Available Websites"
elif [ "$3" = "enabled" ]
then
# Display The List Of Enabled Sites
echo -e "\033[34m List Of Enabled Websites \e[0m"
ls /etc/nginx/sites-enabled/ \
|| OwnError "Unable To Display The List Of Enabled Websites"
elif [ "$3" != "all" ] && [ "$3" != "active" ] && [ -n "$3" ]
then
# Check The Website Is Exist
ls /etc/nginx/sites-available/$3 &> /dev/null \
|| OwnError "The $3 Is Not Found In Available Websites List"
if [ $? -eq 0 ]
then
# Display The Specific Site Configuration
echo -e "\033[34m Display The $3 Configuration Settings \e[0m"
cat /etc/nginx/sites-available/$3 \
|| OwnError "Unable To Display The $3 Configuration Settings"
fi
else
EngineHelp
fi
# Easy Engine Create
elif [ "$2" = "create" ]
then
if [ -n "$3" ]
then
# Remove http:// https:// & www.
DOMAIN=$(echo $3 | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'www.''")
# Creating Site
echo -e "\033[34m Creating $DOMAIN, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/singlesite/basic.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Create Configuration File For $DOMAIN"
# Creating Symbolic Link
echo -e "\033[34m Creating Symbolic Link \e[0m"
ln -s /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/ \
|| OwnError "Unable To Create Symbolic Link For $DOMAIN"
# Take Nginx Configuration In Git Version Control
EEGITDIR=/etc/nginx
EEGITMESSAGE="Created New Website $DOMAIN"
EEGITCOMMIT
# Creating Htdocs & Logs Directory
echo -e "\033[34m Creating htdocs & logs Directory \e[0m"
(mkdir -p /var/www/$DOMAIN/htdocs; mkdir -p /var/www/$DOMAIN/logs) \
|| OwnError "Unable To Create htdocs & logs Directory"
# Creating Symbolic Links For Logs
echo -e "\033[34m Creating Symbolic Link For Logs \e[0m"
ln -s /var/log/nginx/$DOMAIN.access.log /var/www/$DOMAIN/logs/access.log \
&& ln -s /var/log/nginx/$DOMAIN.error.log /var/www/$DOMAIN/logs/error.log \
|| OwnError "Unable To Create Symbolic Link For $DOMAIN Logs"
if [ "$4" = "--with-wordpress" ]
then
# Download Latest Wordpress
echo -e "\033[34m Downloading WordPress \e[0m"
wget -cO /var/www/$DOMAIN/htdocs/latest.tar.gz \
http://wordpress.org/latest.tar.gz
# Extracting Wordpress
tar --strip-components=1 -zxf /var/www/$DOMAIN/htdocs/latest.tar.gz \
-C /var/www/$DOMAIN/htdocs/
# Removing Wordpress Archive
rm /var/www/$DOMAIN/htdocs/latest.tar.gz
# Call MYSQLINFO Function For MySQL Values
MYSQLINFO
# Modify wp-config.php & Move Outside The Webroot
cp -v /var/www/$DOMAIN/htdocs/wp-config-sample.php \
/var/www/$DOMAIN/wp-config.php
sed -i "s/database_name_here/$WPDBNAME/" \
/var/www/$DOMAIN/wp-config.php
sed -i "s/username_here/$MYSQLUSER/" \
/var/www/$DOMAIN/wp-config.php
sed -i "s/password_here/$MYSQLPASS/" \
/var/www/$DOMAIN/wp-config.php
sed -i "s/localhost/$MYSQLHOST/" \
/var/www/$DOMAIN/wp-config.php
sed -i "s/wp_/$WPDBPREFIX/" \
/var/www/$DOMAIN/wp-config.php
printf '%s\n' "g/put your unique phrase here/d" \
a "$(curl -L https://api.wordpress.org/secret-key/1.1/salt/)" . w \
| ed -s /var/www/$DOMAIN/wp-config.php
fi
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Change Ownership
echo -e "\033[34m Changing Ownership \e[0m"
#echo $NGINXUSER $DOMAIN
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/
# Reload Nginx Configuration
NGINXRELOAD
# Start PHP-FPM If Not Running
PHPSTART
# Display Success Message
echo -e "\033[34m http://$DOMAIN Domain Successfully Created \e[0m"
else
EngineHelp
fi
# Easy Engine Update
elif [ "$2" = "update" ]
then
if [ -n "$3" ]
then
# Remove http:// https:// & www.
DOMAIN=$(echo $3 | tr 'A-Z' 'a-z' | sed "s'http://''" | sed "s'https://''" | sed "s'www.''")
# Make Backup Directory For Storing Older Nginx Configurations
if [ ! -d /etc/nginx/sites-available/backups/ ]
then
mkdir -p /etc/nginx/sites-available/backups/
fi
if [ "$4" = "singlesite" ]
then
if [ "$5" = "w3total" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/singlesite/w3-total-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Installing W3 Total Cache
cd /var/www/$DOMAIN/htdocs/
wp plugin install w3-total-cache || OwnError "Unable To Install W3 Total Cache Plugin"
# Activate W3 Total Cache
wp plugin activate w3-total-cache || OwnError "Unable To Activate W3 Total Cache Plugin"
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To $NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/
# Display W3 Total Cache URL For Settings
echo -e "\033[34m Please Configure W3 Total Cache Settings \e[0m"
echo -e "\033[34m W3 Total Cache: http://$DOMAIN/wp-admin/admin.php?page=w3tc_general \e[0m"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$5" = "wpsuper" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/singlesite/wp-super-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Installing WP Super Cache
cd /var/www/$DOMAIN/htdocs/
wp plugin install wp-super-cache || OwnError "Unable To Install WP Super Cache Plugin"
# Activate WP Super Cache
wp plugin activate wp-super-cache || OwnError "Unable To Activate WP Super Cache Plugin"
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To $NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/
# Display W3 Total Cache URL For Settings
echo -e "\033[34m Please Configure WP Super Cache Settings \e[0m"
echo -ne "\033[34m WP Super Cache:\e[0m"
echo -e "\033[34m http://$DOMAIN/wp-admin/options-general.php?page=wpsupercache \e[0m"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$5" = "fastcgi" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/singlesite/fastcgi-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Installing Nginx Helper
cd /var/www/$DOMAIN/htdocs/
wp plugin install nginx-helper || OwnError "Unable To Install Nginx Helper"
# Activate Nginx Helper
wp plugin activate nginx-helper || OwnError "Unable To Activate Nginx Helper Plugin"
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To $NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/
# Display W3 Total Cache URL For Settings
echo -e "\033[34m Please Configure Nginx Helper Settings \e[0m"
echo -e "\033[34m Nginx Helper: http://$DOMAIN/wp-admin/options-general.php?page=nginx \e[0m"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
else
EngineHelp
fi
elif [ "$4" = "multisite" ]
then
# Presetup For WordPress MU
sed -i "/WP_DEBUG/a \define('WP_ALLOW_MULTISITE', true);" /var/www/$DOMAIN/wp-config.php
sed -i "/WP_ALLOW_MULTISITE/a \define('WPMU_ACCEL_REDIRECT', true);" /var/www/$DOMAIN/wp-config.php
if [ "$5" = "subdomain" ]
then
# Configure Network Setup
echo -e "\033[34m Please Open Following URL & Click On Sub-Domains & Install \e[0m"
echo -e "\033[34m Configure Network Setup: http://$DOMAIN/wp-admin/network.php \e[0m"
echo -e "\033[34m Press Enter, Once You Setup Network: \e[0m"
read
# Add Rules In wp-config.php gile
sed -i "/WPMU_ACCEL_REDIRECT/a \define('MULTISITE', true);\n\
define('SUBDOMAIN_INSTALL', true);\n\
\$base = '/';\n\
define('DOMAIN_CURRENT_SITE', '$DOMAIN');\n\
define('PATH_CURRENT_SITE', '/');\n\
define('SITE_ID_CURRENT_SITE', 1);\n\
define('BLOG_ID_CURRENT_SITE', 1);\n" /var/www/$DOMAIN/wp-config.php
# Make Blogs.Dir
mkdir /var/www/$DOMAIN/htdocs/wp-content/blogs.dir
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/htdocs/wp-content/blogs.dir
if [ "$6" = "basic" ]
then
# Installing Nginx Helper
cd /var/www/$DOMAIN/htdocs/
wp plugin install nginx-helper || OwnError "Unable To Install Nginx Helper"
# Activate Nginx Helper
wp plugin activate nginx-helper || OwnError "Unable To Activate Nginx Helper Plugin"
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To $NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/
# Display W3 Total Cache URL For Settings
echo -e "\033[34m Please Configure Nginx Helper Settings \e[0m"
echo -e "\033[34m Please Open Following URL & Click Enable Map \e[0m"
echo -ne "\033[34m Nginx Helper:\e[0m"
echo -e "\033[34m http://$DOMAIN/wp-admin/options-general.php?page=nginx \e[0m"
echo -e "\033[34m Press Enter, Once You Setup Nginx Helper Plugin: \e[0m"
read
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For Basic WPMU, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdomain/basic.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "w3total" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdomain/w3-total-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "wpsuper" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdomain/wp-super-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "fastcgi" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdomain/fastcgi-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
else
EngineHelp
fi
elif [ "$5" = "subdirectory" ]
then
# Configure Network Setup
echo -e "\033[34m Please Open Following URL & Click On Sub-Directories & Install \e[0m"
echo -e "\033[34m Configure Network Setup: http://$DOMAIN/wp-admin/network.php \e[0m"
echo -e "\033[34m Press Enter, Once You Setup Network: \e[0m"
read
# Add Rules In wp-config.php gile
sed -i "/WPMU_ACCEL_REDIRECT/a \define('MULTISITE', true);\n\
define('SUBDOMAIN_INSTALL', false);\n\
\$base = '/';\n\
define('DOMAIN_CURRENT_SITE', '$DOMAIN');\n\
define('PATH_CURRENT_SITE', '/');\n\
define('SITE_ID_CURRENT_SITE', 1);\n\
define('BLOG_ID_CURRENT_SITE', 1);\n" /var/www/$DOMAIN/wp-config.php
# Make Blogs.Dir
mkdir /var/www/$DOMAIN/htdocs/wp-content/blogs.dir
# Call NGINXUSERINFO Function For NGINX User Details
NGINXUSERINFO
# Give Ownership To NGINXUSER
chown -R $NGINXUSER:$NGINXUSER /var/www/$DOMAIN/htdocs/wp-content/blogs.dir
if [ "$6" = "basic" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For Basic WPMU, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdir/basic.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "w3total" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For W3TotalCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdir/w3-total-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "wpsuper" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For WPSuperCache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdir/wp-super-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
elif [ "$6" = "fastcgi" ]
then
# Taking Backup
mv /etc/nginx/sites-available/$DOMAIN \
/etc/nginx/sites-available/backups/$DOMAIN.$(date +%d%m%Y.%H%M%S)
# Updating Site
echo -e "\033[34m Updating $DOMAIN For Fastcgi Cache, Please Wait... \e[0m"
sed "s/example.com/$DOMAIN/g" \
/usr/share/easyengine/nginx/multisite/subdir/fastcgi-cache.conf \
> /etc/nginx/sites-available/$DOMAIN \
|| OwnError "Unable To Update Configuration File For $DOMAIN"
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m Nginx Configuration For $DOMAIN Is Successfully Updated \e[0m"
else
EngineHelp
fi
else
EngineHelp
fi
else
EngineHelp
fi
else
EngineHelp
fi
# Easy Engine Delete
elif [ "$2" = "delete" ]
then
if [ -n "$3" ]
then
# Remove http:// & www.
DOMAIN=$(echo $3 | sed "s'http://''" | sed "s'www.''")
# Delete Site
echo -e "\033[34m Deleting $DOMAIN, Please Wait... \e[0m"
rm /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/$DOMAIN
# Remove Symbolic Links For Logs Files
echo -e "\033[34m Remove Symbolic Link For $DOMAIN Logs... \e[0m"
rm /var/www/$DOMAIN/logs/{access,error}.log
if [ "$4" = "--database" ]
then
# Get The Database Details
MYSQLUSER=$(grep DB_USER /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
MYSQLPASS=$(grep DB_PASSWORD /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
# Remove Database
echo -e "\033[34m Removing Database $WPDBNAME... \e[0m"
mysql -u $MYSQLUSER -p$MYSQLPASS -e "drop database \`$WPDBNAME\`" \
|| OwnError "Unable To Drop $WPDBNAME Database"
elif [ "$4" = "--webroot" ]
then
# Remove Webroot For $DOMAIN
echo -e "\033[34m Removing /var/www/$DOMAIN Directory... \e[0m"
rm -rf /var/www/$DOMAIN/
elif [ "$4" = "--all" ]
then
# Get The Database Details
MYSQLUSER=$(grep DB_USER /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
MYSQLPASS=$(grep DB_PASSWORD /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
WPDBNAME=$(grep DB_NAME /var/www/$DOMAIN/wp-config.php \
| cut -d"'" -f4)
# Remove Database
echo -e "\033[34m Removing Database $WPDBNAME... \e[0m"
mysql -u $MYSQLUSER -p$MYSQLPASS -e "drop database \`$WPDBNAME\`" \
|| OwnError "Unable To Drop $WPDBNAME Database"
# Remove Webroot For $DOMAIN
echo -e "\033[34m Removing /var/www/$DOMAIN Directory... \e[0m"
rm -rf /var/www/$DOMAIN
else
EngineHelp
fi
# Reload Nginx Configuration
NGINXRELOAD
# Display Success Message
echo -e "\033[34m http://$DOMAIN Successfully Deleted \e[0m"
else
EngineHelp
fi
# Easy Engine Help
else
EngineHelp
fi