User Tools

Site Tools


create_site

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
create_site [2013/12/15 17:08]
kyxap
create_site [2014/04/17 18:28]
kyxap
Line 1: Line 1:
 {{tag>​debian squeeze ubuntu bash vhost user logrotate}}====== Добавление вхоста в apache+nginx ====== {{tag>​debian squeeze ubuntu bash vhost user logrotate}}====== Добавление вхоста в apache+nginx ======
-Овнер должен быть предварительно создан.+ 
 +FIXME 
 +Переписать этот ужас. 
 + 
 +Только Debian. 
 +Пользователь, которому принадлежат сайты, ​должен быть предварительно создан.
  
 <​code=bash>​ <​code=bash>​
Line 46: Line 51:
     LOGSDIR="​$DOMAIN_DIR/​logs"​     LOGSDIR="​$DOMAIN_DIR/​logs"​
     TMPCONFDIR="/​opt/​scripts/​www_configs"​     TMPCONFDIR="/​opt/​scripts/​www_configs"​
 +
 +    # can be set as IP='​111.111.111.111'​
 +    IP=`ip route get 8.8.8.8 | head -1 | awk '​{print $NF}'`
  
     if [[ ! -d $TMPCONFDIR ]]; then     if [[ ! -d $TMPCONFDIR ]]; then
Line 60: Line 68:
     fi     fi
  
-    chown $user:$user $DOCROOT + if [[ ! -d $LOGSDIR ]]; then 
- + mkdir -p $LOGSDIR 
-    ​if [[ ! -d $LOGSDIR ]]; then + fi
-        mkdir -p $LOGSDIR +
-    fi+
 } }
  
Line 78: Line 84:
  
         cat > $TMPCONFDIR/​apache.$domain << EOF         cat > $TMPCONFDIR/​apache.$domain << EOF
-<​VirtualHost ​*:82>+<​VirtualHost ​127.0.0.1:82>
     <​IfModule mpm_itk_module>​     <​IfModule mpm_itk_module>​
         AssignUserId $user $user         AssignUserId $user $user
Line 154: Line 160:
 EOF EOF
     fi     fi
 +}
 +
 +function generate_named_vhost
 +{
 + serial=`/​bin/​date +"​%Y%m%d%k"​`
 +
 + cat >​$TMPCONFDIR/​named.$domain<<​ EOF
 +\$TTL 10800
 +@ IN SOA ns1.$domain. root.$domain. (
 +    $serial ​    ; serial
 +    10800       ; refresh
 +    3600        ; retry
 +    604800 ​     ; expire
 +    3600 )      ; minimum
 +; NS
 +    IN  NS  ns1.$domain.
 +    IN  NS  ns2.$domain.
 +; MX
 +    IN  MX  10  mx1.$domain.
 +; records
 +ns1         ​IN ​ A   $IP
 +ns2         ​IN ​ A   $IP
 +mx1         ​IN ​ A   $IP
 +www         ​IN ​ A   $IP
 +$domain. ​   IN  A   $IP
 +
 +EOF
 } }
  
Line 192: Line 225:
  
     fi     fi
 +}
 +
 +function enable_named_vhost
 +{
 + [[ -d "/​etc/​bind/​zones"​ ]] || mkdir -p "/​etc/​bind/​zones"​
 +
 + if [[ -f "/​etc/​bind/​zones/​$domain.conf"​ ]]; then
 + echo "Zone $domain already exists in /​etc/​bind/​zones/​$domain.conf"​
 + exit 1
 +  else
 + cp $TMPCONFDIR/​named.$domain /​etc/​bind/​zones/​$domain.conf
 +
 + cat >>/​etc/​bind/​named.conf.local<<​ EOF
 +zone "​$domain"​ {
 +    type master;
 +    file "/​etc/​bind/​zones/​$domain.conf";​
 +};
 +
 +EOF
 +
 + if [[ -z `/​usr/​sbin/​named-checkconf` && -z `/​usr/​sbin/​named-checkzone -q $domain /​etc/​bind/​zones/​$domain.conf` ]] ; then
 + /​usr/​sbin/​rndc reload
 + echo "​bind9:​ $domain enabled"​
 + else
 + echo "​Errors detected, please solve it manually!"​
 + exit 1
 + fi
 + fi
 } }
  
Line 200: Line 261:
     fi     fi
  
-    if [[ -f $LOGSDIR/​nginx_access_log ]]; then 
         cat > $TMPCONFDIR/​logrotate.$domain << EOF         cat > $TMPCONFDIR/​logrotate.$domain << EOF
-    ​$LOGSDIR/​*_log {+$LOGSDIR/​*_log {
     daily     daily
     missingok     missingok
Line 222: Line 282:
 } }
 EOF EOF
-    fi +
-    ​+
     if [[ $logs ]]; then     if [[ $logs ]]; then
         # install logrotate         # install logrotate
Line 234: Line 293:
     fi     fi
 } }
 +
  
 read_domain read_domain
Line 240: Line 300:
  
 init_vars init_vars
 +
 generate_apache_vhost generate_apache_vhost
 generate_nginx_vhost generate_nginx_vhost
 +generate_named_vhost
 +
 +enable_apache_vhost
 +enable_nginx_vhost
 +enable_named_vhost
  
 enable_logrotate enable_logrotate
create_site.txt · Last modified: 2015/09/24 18:46 by kyxap