vesta/bin/v_add_web_domain_nginx
2011-07-05 00:33:11 +03:00

134 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# info: adding nginx support
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user="$1"
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
template="${3-default}"
default_extentions="jpg,jpeg,gif,png,ico,css,zip,tgz,gz,rar,bz2,doc,xls,exe,\
pdf,ppt,txt,tar,wav,bmp,rtf,js,mp3,avi,mpeg"
extentions="${4-$default_extentions}"
# Importing variables
source $VESTA/conf/vars.conf
source $V_FUNC/shared_func.sh
source $V_FUNC/domain_func.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
# Checking arg number
check_args '2' "$#" 'user domain [template] [extentions]'
# Checking argument format
format_validation 'user' 'domain' 'template' 'extentions'
# Checking proxy system is enabled
is_system_enabled 'proxy'
# Checking user
is_user_valid
# Checking user is active
is_user_suspended
# Checking domain exist
is_web_domain_valid
# Checking domain is not suspened
is_domain_suspended 'web_domains'
# Check nginx is not added
is_web_domain_key_empty '$NGINX'
# Checking template
is_template_valid "proxy"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Defining domain parameters
ip=$(get_web_domain_value '$IP')
web_port=$(get_config_value '$WEB_PORT')
proxy_port=$(get_config_value '$PROXY_PORT')
domain_idn=$(idn -t --quiet -a "$domain")
group="$user"
docroot="$V_HOME/$user/domains/$domain/public_html"
email="$user@$domain"
aliases=$(get_web_domain_value '$ALIAS')
aliases_idn=$(idn -t --quiet -a "$aliases")
# Checking error log status
elog=$(get_web_domain_value '$ELOG')
if [ "$elog" = 'no' ]; then
elog=' #'
else
elog=' '
fi
# Adding domain to the nginx.conf
tpl_file="$V_WEBTPL/ngingx_vhost_$template.tpl"
conf="$V_HOME/$user/conf/nginx.conf"
add_web_config
# Checking vesta nginx config
main_conf='/etc/nginx/conf.d/vesta_users.conf'
main_conf_check=$(grep "$conf" $main_conf )
if [ -z "$main_conf_check" ]; then
echo "include $conf;" >>$main_conf
fi
# Checking ssl
cert=$(get_web_domain_value '$SSL_CERT')
if [ ! -z "$cert" ]; then
# Defining certificate params
ssl_cert="$V_HOME/$user/conf/$cert.crt"
ssl_key="$V_HOME/$user/conf/$cert.key"
tpl_option=$(get_web_domain_value '$SSL_HOME')
case $tpl_option in
single) docroot="$V_HOME/$user/domains/$domain/public_shtml" ;;
same) docroot="$V_HOME/$user/domains/$domain/public_html" ;;
*) check_args '3' "$#" 'user domain certificate [sslhome]'
esac
web_ssl_port=$(get_config_value '$WEB_SSL_PORT')
proxy_ssl_port=$(get_config_value '$PROXY_SSL_PORT')
# Adding domain to the snginx.conf
conf="$V_HOME/$user/conf/snginx.conf"
tpl_file="$V_WEBTPL/ngingx_vhost_$template.stpl"
add_web_config
# Checking vesta nginx config
main_conf='/etc/nginx/conf.d/vesta_users.conf'
main_conf_check=$(grep "$conf" $main_conf )
if [ -z "$main_conf_check" ]; then
echo "include $conf;" >>$main_conf
fi
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Adding nginx params to config
update_web_domain_value '$NGINX' "$template"
update_web_domain_value '$NGINX_EXT' "$extentions"
# Adding task to the vesta pipe
restart_schedule 'web'
log_history "$V_EVENT" "v_del_web_domain_nginx $user $domain"
log_event 'system' "$V_EVENT"
exit $OK