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
Last revision Both sides next revision
create_site [2013/12/15 17:08]
kyxap
create_site [2015/02/26 10:30]
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}}====== Добавление вхоста в 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 58: Line 66:
     if [[ ! -d $DOCROOT ]]; then     if [[ ! -d $DOCROOT ]]; then
         mkdir -p $DOCROOT         mkdir -p $DOCROOT
 +        chown -R $user:$user $DOCROOT
     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 85:
  
         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 161:
 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 226:
  
     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 262:
     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 283:
 } }
 EOF EOF
-    fi +
-    ​+
     if [[ $logs ]]; then     if [[ $logs ]]; then
         # install logrotate         # install logrotate
Line 234: Line 294:
     fi     fi
 } }
 +
  
 read_domain read_domain
Line 240: Line 301:
  
 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