Skip to content

Commit f9b57e9

Browse files
author
root
committed
domain
1 parent a526c6c commit f9b57e9

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed

create_nginx_vhost/create.sh

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
NGINX_CONFIG='/usr/local/nginx/conf/vhosts/sites-available'
2+
NGINX_SITES_ENABLED='/usr/local/nginx/conf/vhosts'
3+
WEB_DIR='/home/vagrant/sync/example'
4+
SED=`which sed`
5+
CURRENT_DIR=`dirname $0`
6+
status='1'
7+
date=`sudo date`
8+
9+
if [ -z $1 ]; then
10+
status="0"
11+
output="No domain name given"
12+
echo -e "{\"status\":\""$status"\", \"msg\":\""$output"\",\"data\":\"""\", \"uptime\":\""$date"\"}"
13+
exit;
14+
fi
15+
16+
prefix=$(date +%s%N)
17+
DOMAIN=$prefix.$1
18+
19+
# check the domain is roughly valid!
20+
PATTERN="^([[:alnum:]]([[:alnum:]\-]{0,61}[[:alnum:]])?\.)+[[:alpha:]]{2,6}$"
21+
if [[ "$DOMAIN" =~ $PATTERN ]]; then
22+
DOMAIN=`echo $DOMAIN | tr '[A-Z]' '[a-z]'`
23+
output="Creating hosting for:"$DOMAIN
24+
else
25+
status="0"
26+
output="invalid domain name"
27+
echo -e "{\"status\":\""$status"\", \"msg\":\""$output"\",\"data\":\"""\", \"uptime\":\""$date"\"}"
28+
exit;
29+
fi
30+
31+
### check if domain already exists
32+
if [ -e $NGINX_CONFIG$DOMAIN ]; then
33+
status="0"
34+
output="This domain already exists.\nPlease Try Another one"
35+
echo -e "{\"status\":\""$status"\", \"msg\":\""$output"\",\"data\":\"""\", \"uptime\":\""$date"\"}"
36+
exit;
37+
fi
38+
39+
#Replace dots with underscores
40+
SITE_DIR=`echo $DOMAIN | $SED 's/\./_/g'`
41+
42+
# Now we need to copy the virtual host template
43+
CONFIG=$NGINX_CONFIG/$DOMAIN.conf
44+
sudo cp $CURRENT_DIR/virtual_host.template $CONFIG
45+
sudo $SED -i "s/DOMAIN/$DOMAIN/g" $CONFIG
46+
sudo $SED -i "s!ROOT!$WEB_DIR/$SITE_DIR!g" $CONFIG
47+
48+
# set up web root
49+
sudo mkdir $WEB_DIR/$SITE_DIR
50+
sudo chown vagrant:vagrant -R $WEB_DIR/$SITE_DIR
51+
sudo chmod 600 $CONFIG
52+
53+
# create symlink to enable site
54+
sudo ln -s $CONFIG $NGINX_SITES_ENABLED/$DOMAIN.conf
55+
56+
# reload Nginx to pull in new config
57+
sudo /usr/local/nginx/sbin/nginx -s reload
58+
59+
# put the template index.html file into the new domains web dir
60+
sudo cp $CURRENT_DIR/index.html.template $WEB_DIR/$SITE_DIR/index.html
61+
sudo $SED -i "s/SITE/$DOMAIN/g" $WEB_DIR/$SITE_DIR/index.html
62+
sudo chown vagrant:vagrant $WEB_DIR/$SITE_DIR/index.html
63+
64+
SITE=(m.$DOMAIN agent.$DOMAIN imc.$DOMAIN)
65+
66+
for a in "${SITE[@]}"; do
67+
CONFIGM=$NGINX_CONFIG/$a.conf
68+
sudo cp $CURRENT_DIR/virtual_host.template $CONFIGM
69+
sudo $SED -i "s/DOMAIN/$a/g" $CONFIGM
70+
71+
sudo $SED -i "s!ROOT!$WEB_DIR/$a!g" $CONFIGM
72+
73+
sudo mkdir $WEB_DIR/$a
74+
sudo chown vagrant:vagrant -R $WEB_DIR/$a
75+
sudo chmod 600 $CONFIGM
76+
77+
sudo ln -s $CONFIGM $NGINX_SITES_ENABLED/$a.conf
78+
79+
# reload Nginx to pull in new config
80+
sudo /usr/local/nginx/sbin/nginx -s reload
81+
82+
# put the template index.html file into the new domains web dir
83+
sudo cp $CURRENT_DIR/index.html.template $WEB_DIR/$a/index.html
84+
sudo $SED -i "s/SITE/$a/g" $WEB_DIR/$a/index.html
85+
sudo chown vagrant:vagrant $WEB_DIR/$a/index.html
86+
done
87+
88+
89+
90+
91+
### create mysql database
92+
#echo -e $"create mysql database core--$DOMAIN start \n"
93+
#sh /home/vagrant/sync/shell/create_nginx_vhost/mysql.sh "core"$prefix
94+
95+
96+
MYSQL_BIN="/usr/local/mysql/bin/mysql"
97+
MYSQL_ROOT="stars"
98+
MYSQL_PASS="123456"
99+
MYSQL_HOST="192.168.200.29"
100+
DB="core"$prefix
101+
DB_NAME='master'
102+
TIME=`date -d "$currentTime" +%s`
103+
#echo "DATABASES IS :"$DB":"
104+
if [ $MYSQL_PASS ]
105+
then
106+
#echo "logging into as $MYSQL_ROOT"
107+
sudo $MYSQL_BIN -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -h"$MYSQL_HOST" -e "create database $DB"
108+
#$MYSQL_BIN -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -h"$MYSQL_HOST" -e "SHOW DATABASES"
109+
sudo $MYSQL_BIN -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -h"$MYSQL_HOST" $DB < /home/vagrant/sync/shell/create_nginx_vhost/core.sql
110+
sudo $MYSQL_BIN -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -h"$MYSQL_HOST" -e "use master"
111+
SQL="INSERT INTO address_config (pc_address,h5_address,admin_address,created,updated)VALUES('$DOMAIN','m.$DOMAIN','imc.$DOMAIN',$TIME,$TIME)"
112+
sudo $MYSQL_BIN -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -h"$MYSQL_HOST" $DB_NAME << EOF
113+
$SQL
114+
EOF
115+
else
116+
$MYSQL_BIN -u "$MYSQL_ROOT" -e "SHOW DATABASES"
117+
fi
118+
119+
### Add db config to WEB_DIR
120+
sudo cp $CURRENT_DIR/db.php $WEB_DIR/$SITE_DIR/$DOMAIN.php
121+
sudo $SED -i "s/CORE/$DB/g" $WEB_DIR/$SITE_DIR/$DOMAIN.php
122+
sudo chown vagrant:vagrant $WEB_DIR/$SITE_DIR/$DOMAIN.php
123+
124+
output='Site Created for '$DOMAIN
125+
echo -e "{\"status\":\""$status"\", \"msg\":\""$output"\",\"data\":\""$DOMAIN"\", \"uptime\":\""$date"\"}"
126+
exit;

0 commit comments

Comments
 (0)