Beta de refonte du vhosting, envoyé sur le SVN pour avoir une copie
This commit is contained in:
parent
663f482d60
commit
4b7cba2a6a
|
@ -435,6 +435,7 @@ src/hosting_functions/hosting_panel.sh -text
|
|||
src/hosting_functions/hosting_redirect.sh -text
|
||||
src/hosting_functions/hosting_vhost.sh -text
|
||||
src/hosting_functions/hosting_webmail.sh -text
|
||||
src/hosting_functions_v2.sh -text
|
||||
src/mail_add -text
|
||||
src/mail_del -text
|
||||
src/mem_add -text
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
TEMPLATE_DIR="/etc/alternc/templates/apache2"
|
||||
HOSTING_DIR="/usr/lib/alternc/hosting_functions"
|
||||
|
||||
DATA_ROOT="/var/alternc"
|
||||
HTML_HOME="$DATA_ROOT/html"
|
||||
VHOST_DIR="$DATA_ROOT/apache-vhost"
|
||||
VHOST_FILE="$VHOST_DIR/vhosts_all.conf"
|
||||
|
||||
. /usr/lib/alternc/functions.sh
|
||||
|
||||
host_create() {
|
||||
# Function to create a vhost for a website
|
||||
# First, it look if there is a special file for
|
||||
# this type of vhost
|
||||
# If there isn't, it use the default function
|
||||
# and the template file provided
|
||||
|
||||
local VTYPE="$1"
|
||||
|
||||
if [ -x "$HOSTING_DIR/hosting_$VTYPE.sh" ] ; then
|
||||
# There is a script special for this type,
|
||||
# I launch it and quit the host_create function
|
||||
# (I precise to the script this is for a "enable" task)
|
||||
"$HOSTING_DIR/hosting_$VTYPE.sh" "create" $@
|
||||
return
|
||||
fi
|
||||
|
||||
# There is no special script, I use the standart template
|
||||
# If I do not found template manualy define, I look
|
||||
# If there is an existing template with the good name
|
||||
|
||||
# First, usefull vars. Some may be empty or false, it's
|
||||
# OK, it will be solve in the "case" below
|
||||
local USER=$2
|
||||
local FQDN=$3
|
||||
local REDIRECT=$4 # Yes, TARGET_DIR and REDIRECT are the same
|
||||
local TARGET_DIR=$4 # It's used by different template
|
||||
local user_letter=`print_user_letter "$USER"`
|
||||
local DOCUMENT_ROOT="${HTML_HOME}/${user_letter}/${USER}/$TARGET_DIR"
|
||||
local FILE_TARGET="$VHOST_DIR/${user_letter}/$USER/$FQDN.conf"
|
||||
|
||||
|
||||
# panel.conf redirect.conf vhost.conf webmail.conf
|
||||
case $VTYPE in
|
||||
"vhost")
|
||||
TEMPLATE="$TEMPLATE_DIR/vhost.conf"
|
||||
;;
|
||||
*)
|
||||
# No template found, look if there is some in the
|
||||
# template dir
|
||||
[ -r "$TEMPLATE_DIR/$VTYPE" ] && TEMPLATE="$TEMPLATE_DIR/$VTYPE"
|
||||
[ ! "$TEMPLATE" ] && [ -r "$TEMPLATE_DIR/$VTYPE.conf" ] && TEMPLATE="$TEMPLATE_DIR/$VTYPE.conf"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Create a new conf file
|
||||
local TMP_FILE=$(mktemp "/tmp/alternc_host.XXXXXX")
|
||||
cp "$TEMPLATE" "$TMP_FILE"
|
||||
echo "#Username: $USER"
|
||||
|
||||
# Put the good value in the conf file
|
||||
sed -i \
|
||||
-e "s#%%fqdn%%#$FQDN#g" \
|
||||
-e "s#%%document_root%%#$DOCUMENT_ROOT#g" \
|
||||
-e "s#%%redirect%%#$REDIRECT#g" \
|
||||
$TMP_FILE
|
||||
|
||||
# Check if all is right in the conf file
|
||||
# If not, put a debug message
|
||||
local ISNOTGOOD=$(grep "%%" "$TMP_FILE")
|
||||
[ "$ISNOTGOOD" ] && (echo "# There was a probleme in the generation : $ISNOTGOOD" > "$TMP_FILE"
|
||||
|
||||
# Put the conf file in prod
|
||||
mkdir -p "$(dirname "$FILE_TARGET")"
|
||||
mv -f "$TMP_FILE" "$FILE_TARGET"
|
||||
|
||||
}
|
||||
|
||||
host_disable() {
|
||||
host_change_enable "disable" $@
|
||||
}
|
||||
|
||||
host_enable() {
|
||||
host_change_enable "enable" $@
|
||||
}
|
||||
|
||||
host_change_enable() {
|
||||
# Function to enable or disable a host
|
||||
local STATE=$1
|
||||
local FQDN=$2
|
||||
local USER=`get_account_by_domain $FQDN`
|
||||
local user_letter=`print_user_letter "$USER"`
|
||||
local FENABLED="$VHOST_DIR/${user_letter}/$USER/$FQDN.conf"
|
||||
local FDISABLED="$FENABLED-disabled"
|
||||
|
||||
case $STATE in
|
||||
"enable")
|
||||
local SOURCE="$FDISABLED"
|
||||
local TARGET="$FENABLED"
|
||||
;;
|
||||
"disable")
|
||||
local TARGET="$FDISABLED"
|
||||
local SOURCE="$FENABLED"
|
||||
;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -e "$TARGET" ] && [ -e "$SOURCE" ] ; then
|
||||
# If the "target" file do not exist and the "source" file exist
|
||||
rename -f "$SOURCE" "$TARGET"
|
||||
else
|
||||
return 2
|
||||
fi
|
||||
}
|
||||
|
||||
host_delete() {
|
||||
local FQDN=$1
|
||||
local USER=`get_account_by_domain $FQDN`
|
||||
local user_letter=`print_user_letter "$USER"`
|
||||
local FENABLED="$VHOST_DIR/${user_letter}/$USER/$FQDN.conf"
|
||||
local FDISABLED="$FENABLED-disabled"
|
||||
|
||||
[ -w "$FENABLED" ] && rm -f "$FENABLED"
|
||||
[ -w "$FDISABLED" ] && rm -f "$FDISABLED"
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue