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
create_site [2013/12/15 13:36]
kyxap Page moved from stuff:create_site to create_site
create_site [2015/09/24 18:46] (current)
kyxap
Line 1: Line 1:
-=== Добавление вхоста в 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
 } }
  
 function enable_apache_vhost function enable_apache_vhost
 { {
-    if [[ -f "/​etc/​apache2/​sites-available/​$domain"​ ]]; then +    if [[ -f "/​etc/​apache2/​sites-available/​${domain}.conf" ]]; then 
-        echo "​Domain $domain already exists in /​etc/​apache2/​sites-available/​$domain"​+        echo "​Domain $domain already exists in /​etc/​apache2/​sites-available/​${domain}.conf"
         exit 1         exit 1
     else     else
-        cp $TMPCONFDIR/​apache.$domain /​etc/​apache2/​sites-available/​$domain+        cp $TMPCONFDIR/​apache.$domain /​etc/​apache2/​sites-available/​${domain}.conf
         a2ensite $domain         a2ensite $domain
         if [[ -z `apache2ctl configtest` ]]; then         if [[ -z `apache2ctl configtest` ]]; then
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.1387114569.txt.gz · Last modified: 2013/12/15 13:36 by kyxap