Skip to content

Commit 567ce7e

Browse files
committed
php-fpm support
1 parent dfbcc06 commit 567ce7e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+976
-197
lines changed

bin/v-add-web-domain

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ is_domain_new 'web'
4343
is_ip_valid
4444
is_ip_avalable
4545
is_package_full 'WEB_DOMAINS'
46-
4746
template=$(get_user_value '$WEB_TEMPLATE')
4847
is_web_template_valid
4948

@@ -77,9 +76,20 @@ fi
7776
group="$user"
7877
email="info@$domain"
7978
docroot="$HOMEDIR/$user/web/$domain/public_html"
80-
tpl_file="$WEBTPL/$WEB_SYSTEM/$template.tpl"
79+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$template.tpl"
8180
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
8281

82+
# Checking backend
83+
if [ ! -z "$WEB_BACKEND" ]; then
84+
is_web_backend_pool_valid
85+
$BIN/v-add-web-domain-backend $user $domain
86+
rc=$?
87+
if [ $rc -ne 0 ]; then
88+
exit $rc
89+
fi
90+
get_domain_backend_values
91+
fi
92+
8393
# Adding web config
8494
add_web_config
8595

@@ -142,15 +152,19 @@ chmod 551 $HOMEDIR/$user/web/$domain/logs
142152
chmod 640 /var/log/$WEB_SYSTEM/domains/$domain.*
143153

144154
# Running template trigger
145-
if [ -x $WEBTPL/$WEB_SYSTEM/$template.sh ]; then
146-
$WEBTPL/$WEB_SYSTEM/$template.sh $user $domain $ip $HOMEDIR $docroot
155+
if [ -x $WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$template.sh ]; then
156+
$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$template.sh \
157+
$user $domain $ip $HOMEDIR $docroot
147158
fi
148159

149-
# Checking web config
150-
web_conf="/etc/$WEB_SYSTEM/conf.d/vesta.conf"
151-
if [ -z "$(grep $conf $web_conf)" ]; then
160+
# Checking web config include
161+
web_include="/etc/$WEB_SYSTEM/conf.d/vesta.conf"
162+
if [ -z "$web_include" ] && [ "$WEB_SYSTEM" != 'nginx' ]; then
152163
echo "Include $conf" >> $web_conf
153164
fi
165+
if [ -z "$web_include" ] && [ "$WEB_SYSTEM" = 'nginx' ]; then
166+
echo "include $conf;" >> $web_conf
167+
fi
154168

155169

156170
#----------------------------------------------------------#
@@ -163,9 +177,10 @@ increase_user_value "$user" '$U_WEB_DOMAINS'
163177
increase_user_value "$user" '$U_WEB_ALIASES'
164178

165179
# Defining domain variables
180+
BACKEND_TPL=$(grep BACKEND_TEMPLATE $USER_DATA/user.conf |cut -f 2 -d \')
166181
str="DOMAIN='$domain' IP='$IP' IP6='' ALIAS='$aliases' TPL='$template'"
167182
str="$str SSL='no' SSL_HOME='same' FTP_USER='' FTP_MD5=''"
168-
str="$str PROXY='' PROXY_EXT='' STATS='' STATS_USER=''"
183+
str="$str BACKEND='$BACKEND_TPL' PROXY='' PROXY_EXT='' STATS='' STATS_USER=''"
169184
str="$str STATS_CRYPT='' U_DISK='0' U_BANDWIDTH='0' SUSPENDED='no'"
170185
str="$str TIME='$TIME' DATE='$DATE'"
171186

bin/v-add-web-domain-alias

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ is_package_full 'WEB_ALIASES'
4949

5050
# Parsing domain values
5151
get_domain_values 'web'
52-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.tpl"
52+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
5353
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
5454
ip=$(get_real_ip $IP)
5555

@@ -68,7 +68,7 @@ del_web_config
6868
add_web_config
6969

7070
if [ "$SSL" = 'yes' ]; then
71-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.stpl"
71+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
7272
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
7373
del_web_config
7474
add_web_config

bin/v-add-web-domain-backend

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#!/bin/bash
2+
# info: add web domain backend
3+
# options: USER DOMAIN [TEMPLATE] [RESTART]
4+
#
5+
# The call is used for adding web backend configuration for user
6+
7+
8+
#----------------------------------------------------------#
9+
# Variable&Function #
10+
#----------------------------------------------------------#
11+
12+
# Argument defenition
13+
user=$1
14+
domain=$2
15+
domain_idn=$(idn -t --quiet -a "$domain")
16+
template=$3
17+
18+
# Includes
19+
source $VESTA/func/main.sh
20+
source $VESTA/func/domain.sh
21+
source $VESTA/conf/vesta.conf
22+
23+
24+
#----------------------------------------------------------#
25+
# Verifications #
26+
#----------------------------------------------------------#
27+
28+
check_args '2' "$#" 'USER DOMAIN [TEMPLATE] [RESTART]'
29+
validate_format 'user' 'domain'
30+
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
31+
is_system_enabled "$WEB_BACKEND" 'WEB_BACKEND'
32+
is_object_unsuspended 'user' 'USER' "$user"
33+
is_web_backend_template_valid $template
34+
is_web_backend_pool_valid
35+
if [ -e "$pool/$backend.conf" ]; then
36+
exit
37+
fi
38+
39+
40+
#----------------------------------------------------------#
41+
# Action #
42+
#----------------------------------------------------------#
43+
44+
# Allocating backend port
45+
backend_port=9000
46+
ports=$(grep -v '^;' $pool/* 2>/dev/null |grep listen |grep -o :[0-9].*)
47+
ports=$(echo "$ports" |sed "s/://" |sort -n)
48+
for port in $ports; do
49+
if [ "$backend_port" -eq "$port" ]; then
50+
backend_port=$((backend_port + 1))
51+
fi
52+
done
53+
54+
# Adding backend config
55+
cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
56+
sed -e "s|%backend_port%|$backend_port|" \
57+
-e "s|%user%|$user|"\
58+
-e "s|%domain%|$domain|"\
59+
-e "s|%domain_idn%|$domain_idn|"\
60+
-e "s|%backend%|$backend|g" > $pool/$backend.conf
61+
62+
63+
#----------------------------------------------------------#
64+
# Vesta #
65+
#----------------------------------------------------------#
66+
67+
# Restart backend server
68+
if [ "$restart" != 'no' ]; then
69+
$BIN/v-restart-web-backend
70+
if [ $? -ne 0 ]; then
71+
exit $E_RESTART
72+
fi
73+
fi
74+
75+
# Logging
76+
log_history "added $WEB_BACKEND backend configuration for $domain"
77+
log_event "$OK" "$EVENT"
78+
79+
exit

bin/v-add-web-domain-ssl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ chmod 660 $USER_DATA/ssl/$domain.*
6363
# Parsing domain values
6464
get_domain_values 'web'
6565
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
66-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.stpl"
66+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
6767
SSL_HOME="$ssl_home"
6868
ip=$(get_real_ip $IP)
6969

@@ -85,8 +85,9 @@ if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
8585
fi
8686

8787
# Running template trigger
88-
if [ -x $WEBTPL/$WEB_SYSTEM/$template.sh ]; then
89-
$WEBTPL/$WEB_SYSTEM/$template.sh $user $domain $ip $HOMEDIR $sdocroot
88+
if [ -x $WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$template.sh ]; then
89+
$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$template.sh \
90+
$user $domain $ip $HOMEDIR $sdocroot
9091
fi
9192

9293
# Checking web config

bin/v-backup-user

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,14 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
166166
grep "DOMAIN='$domain'" $conf > vesta/web.conf
167167

168168
# Backup vhost config
169-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.tpl"
169+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
170170
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
171171
get_web_config_brds
172172
sed -n "$top_line,$bottom_line p" $conf > conf/$WEB_SYSTEM.conf
173173

174174
# Backup ssl vhost
175175
if [ "$SSL" = 'yes' ]; then
176-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.stpl"
176+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
177177
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
178178
get_web_config_brds
179179
sed -n "$top_line,$bottom_line p" $conf > conf/s$WEB_SYSTEM.conf
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
#!/bin/bash
2+
# info: change web domain backend template
3+
# options: USER DOMAIN TEMPLATE [RESTART]
4+
#
5+
# The function changes backend template
6+
7+
8+
#----------------------------------------------------------#
9+
# Variable&Function #
10+
#----------------------------------------------------------#
11+
12+
# Argument defenition
13+
user=$1
14+
domain=$(idn -t --quiet -u "$2" )
15+
domain_idn=$(idn -t --quiet -a "$domain")
16+
template=$3
17+
restart="$4"
18+
19+
20+
# Includes
21+
source $VESTA/func/main.sh
22+
source $VESTA/func/domain.sh
23+
source $VESTA/func/ip.sh
24+
source $VESTA/conf/vesta.conf
25+
26+
27+
#----------------------------------------------------------#
28+
# Verifications #
29+
#----------------------------------------------------------#
30+
31+
check_args '3' "$#" 'USER DOMAIN TEMPLATE [RESTART]'
32+
validate_format 'user' 'domain' 'template'
33+
is_system_enabled "$WEB_BACKEND" 'WEB_BACKEND'
34+
is_object_valid 'user' 'USER' "$user"
35+
is_object_unsuspended 'user' 'USER' "$user"
36+
is_object_valid 'web' 'DOMAIN' "$domain"
37+
is_object_unsuspended 'web' 'DOMAIN' "$domain"
38+
is_web_backend_template_valid $template
39+
is_web_backend_pool_valid
40+
41+
42+
#----------------------------------------------------------#
43+
# Action #
44+
#----------------------------------------------------------#
45+
46+
# Deleting backend
47+
rm -f $pool/$backend.conf
48+
49+
# Allocating backend port
50+
backend_port=9000
51+
ports=$(grep -v '^;' $pool/* 2>/dev/null |grep listen |grep -o :[0-9].*)
52+
ports=$(echo "$ports" |sed "s/://" |sort -n)
53+
for port in $ports; do
54+
if [ "$backend_port" -eq "$port" ]; then
55+
backend_port=$((backend_port + 1))
56+
fi
57+
done
58+
59+
# Changing backend config
60+
cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
61+
sed -e "s|%backend_port%|$backend_port|" \
62+
-e "s|%user%|$user|"\
63+
-e "s|%domain%|$domain|"\
64+
-e "s|%domain_idn%|$domain_idn|"\
65+
-e "s|%backend%|$backend|g" > $pool/$backend.conf
66+
67+
# Checking backend pool configuration
68+
if [ "$backend" = "$user" ]; then
69+
conf=$USER_DATA/web.conf
70+
fields='$DOMAIN'
71+
nohead=1
72+
73+
for domain in $(shell_list); do
74+
75+
# Parsing domain values
76+
get_domain_values 'web'
77+
ip=$(get_real_ip $IP)
78+
79+
# Deleting old vhost
80+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
81+
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
82+
del_web_config
83+
84+
# Deleting old ssl vhost
85+
if [ "$SSL" = 'yes' ]; then
86+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
87+
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
88+
del_web_config
89+
fi
90+
91+
# Adding new vhost
92+
upd_web_domain_values
93+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
94+
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
95+
add_web_config
96+
97+
# Adding new ssl vhost
98+
if [ "$SSL" = 'yes' ]; then
99+
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
100+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
101+
add_web_config
102+
fi
103+
104+
# Update config
105+
add_object_key "web" 'DOMAIN' "$domain" 'BACKEND' 'PROXY'
106+
update_object_value 'web' 'DOMAIN' "$domain" '$BACKEND' "$template"
107+
done
108+
109+
# Chaning template in user config
110+
old_template=$(grep BACKEND_TEMPLATE $USER_DATA/user.conf)
111+
if [ -z "$old_template" ]; then
112+
sed -i "s/^WEB_DOMAINS/BACKEND_TEMPLATE='$template'\nWEB_DOMAINS/g" \
113+
$USER_DATA/user.conf
114+
else
115+
update_user_value "$user" '$BACKEND_TEMPLATE' "$template"
116+
fi
117+
else
118+
# Parsing domain values
119+
get_domain_values 'web'
120+
ip=$(get_real_ip $IP)
121+
122+
# Deleting old vhost
123+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
124+
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
125+
del_web_config
126+
127+
# Deleting old ssl vhost
128+
if [ "$SSL" = 'yes' ]; then
129+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
130+
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
131+
del_web_config
132+
fi
133+
134+
# Adding new vhost
135+
upd_web_domain_values
136+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
137+
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
138+
add_web_config
139+
140+
# Adding new ssl vhost
141+
if [ "$SSL" = 'yes' ]; then
142+
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
143+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
144+
add_web_config
145+
fi
146+
147+
# Update config
148+
add_object_key "web" 'DOMAIN' "$domain" 'BACKEND' 'PROXY'
149+
update_object_value 'web' 'DOMAIN' "$domain" '$BACKEND' "$template"
150+
fi
151+
152+
153+
#----------------------------------------------------------#
154+
# Vesta #
155+
#----------------------------------------------------------#
156+
157+
158+
# Restart web
159+
if [ "$restart" != 'no' ]; then
160+
$BIN/v-restart-web
161+
if [ $? -ne 0 ]; then
162+
exit $E_RESTART
163+
fi
164+
$BIN/v-restart-web-backend
165+
if [ $? -ne 0 ]; then
166+
exit $E_RESTART
167+
fi
168+
fi
169+
170+
# Logging
171+
log_history "changed backend template for $domain to $template"
172+
log_event "$OK" "$EVENT"
173+
174+
exit

bin/v-change-web-domain-ip

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ is_ip_avalable
4545
# Define variable for replace
4646
get_domain_values 'web'
4747
ip=$(get_real_ip $ip)
48-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.tpl"
48+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.tpl"
4949
conf="$HOMEDIR/$user/conf/web/$WEB_SYSTEM.conf"
5050
old=$(get_real_ip $IP)
5151
new=$ip
5252
replace_web_config
5353

5454
# Checking SSL
5555
if [ "$SSL" = 'yes' ]; then
56-
tpl_file="$WEBTPL/$WEB_SYSTEM/$TPL.stpl"
56+
tpl_file="$WEBTPL/$WEB_SYSTEM/$WEB_BACKEND/$TPL.stpl"
5757
conf="$HOMEDIR/$user/conf/web/s$WEB_SYSTEM.conf"
5858
replace_web_config
5959
fi

0 commit comments

Comments
 (0)