====== apache ====== ==== add site ==== #! /bin/bash #check #add # echo "username domain" [ $# -eq 0 ] && { echo "not ok"; exit 999; } #-------- function to add a vhost -------- add_vhost(){ echo " Creating folder : /home/$username/www/$domain/config/apache" mkdir -p /home/$username/www/$domain/config/apache echo " Creating folder : /home/$username/www/$domain/htdocs" mkdir -p /home/$username/www/$domain/htdocs echo " Creating folder : /home/$username/www/$domain/log/apache" mkdir -p /home/$username/www/$domain/log/apache echo " adding : $domain to vhosts" echo " ServerName $domain ServerAdmin webmaster@localhost DocumentRoot /home/$username/www/$domain/htdocs Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ErrorLog \"|/usr/sbin/rotatelogs /home/$username/www/$domain/log/apache/error_log.%Y-%m-%d-%H 86400\" # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog \"|/usr/sbin/rotatelogs /home/$username/www/$domain/log/apache/access_log.%Y-%m-%d-%H 86400\" combined php_admin_value sendmail_path \"/usr/bin/msmtp -t -C /home/$username/www/$domain/config/msmtp/.msmtprc\" " >> /home/$username/www/$domain/config/apache/$domain echo " Setting rights to /home/$username/www/$domain" chown -R $username:www-data /home/$username/www/$domain cd /home/$username/www/$domain find ./* | while read file; do [[ -f "$file" ]] && chmod 644 "$file"; [[ -d "$file" ]] && chmod 2755 "$file"; done ln -s /home/$username/www/$domain/config/apache/$domain /etc/apache2/sites-enabled/$domain ls -al /etc/apache2/sites-enabled/$domain } vhost_exists=0 check_vhost(){ # check for vhost file echo "check if /home/$username/www/$domain/config/apache/$domain exists" if [ -f /home/$username/www/$domain/config/apache/$domain ]; then echo -e "\033[31m Apache vhost file exists." vhost_exists=1 else echo -e "\033[32m Apache vhost does NOT exists." fi echo -n -e "\033[0m" # check for www folder echo "check if /home/$username/www/$domain/htdocs exists" if [ -d /home/$username/www/$domain/htdocs ]; then echo -e "\033[31m Htdocs folder exists." vhost_exists=1 else echo -e "\033[32m Htdocs folder does NOT exists." fi echo -n -e "\033[0m" # check for logs folder echo "check if /home/$username/www/$domain/log/apache exists" if [ -d /home/$username/www/$domain/log/apache ]; then echo -e "\033[31m Logs folder exists." vhost_exists=1 else echo -e "\033[32m Logs folder does NOT exists." fi echo -n -e "\033[0m" } if [ $# ]; then username=$1 domain=$2 check_vhost if [ $# -eq 2 ]; then if [ $vhost_exists -eq 0 ]; then read -p "Do you really want to run these parameters ? (y/n)" -n 1 if [[ $REPLY =~ ^[Yy]$ ]] then add_vhost echo "ok" else echo "Tant pis" exit 0 fi else echo "$username exists in vhost" echo $vhost_exists fi else echo "$0 [erreur]: manque username et domain" fi else echo "$0 [erreur]: usage: passer un argument \ncomme chais pas moi...euh...toto" exit 0 fi ===== my lamp ===== #! /bin/bash # gadget for coloring text ColEscape="\033"; ColBlackF="${ColEscape}[30m"; ColRedF="${ColEscape}[31m"; ColGreenF="${ColEscape}[32m"; ColYellowF="${ColEscape}[33m"; ColBlueF="${ColEscape}[34m"; ColPurplef="${ColEscape}[35m"; ColCyanF="${ColEscape}[36m"; ColWhiteF="${ColEscape}[37m"; ColBlackB="${ColEscape}[40m"; ColRedB="${ColEscape}[41m"; ColGreenB="${ColEscape}[42m"; ColYellowB="${ColEscape}[43m"; ColBlueB="${ColEscape}[44m"; ColPurpleB="${ColEscape}[45m"; ColCyanB="${ColEscape}[46m"; ColWhiteB="${ColEscape}[47m"; ColBoldOn="${ColEscape}[1m"; ColBoldOff="${ColEscape}[22m"; ColItalicsOn="${ColEscape}[3m"; ColItalicsOff="${ColEscape}[23m"; ColUnderlineOn="${ColEscape}[4m"; ColUnderlineOff="${ColEscape}[24m"; ColBlinkOn="${ColEscape}[5m"; ColBlinkOff="${ColEscape}[25m"; ColInvertOn="${ColEscape}[7m"; ColInvertOff="${ColEscape}[27m"; ColReset="${ColEscape}[0m"; # symbols SymbolOk="${ColGreenF}${ColReset} " SymbolNotOk="${ColRedF}${ColReset} " # display message # $1 message # $2 level print_message() { case "$2" in ok) echo -e "${SymbolOk}$1" ;; notok) echo -e "${SymbolNotOk}$1" ;; error) echo -e "${ColRedF}$1${ColReset}" ;; question) echo -e "${ColYellowF}$1${ColReset}" ;; *) echo "$1" ;; esac }
#! /bin/bash

[ $# -eq 0 ] && { echo "example : chwww toto"; exit 999; }

# check if the theme file exists
if [ -f "/opt/scripts/theme" ];then
  source "/opt/scripts/theme"
else
  print_message() {
    echo "$1"
  }
fi

DOMAIN=$1

if [ -d /var/www/${DOMAIN}/htdocs ];then
  print_message "Domain exists" "ok"
else
  print_message "Domain does not exist" "error"
  exit 1;
fi

chown www-data:www-data /var/www/${DOMAIN}/htdocs
chmod 2775 /var/www/${DOMAIN}/htdocs
find /var/www/${DOMAIN}/htdocs/* | while read file; do [[ -f "$file" ]] && chmod 664 "$file"; [[ -d "$file" ]] && chmod 2775 "$file"; done

#! /bin/bash
#check
#add
#

[ $# -eq 0 ] && { echo "example : addsite toto"; exit 999; }

# check if the theme file exists
if [ -f "/opt/scripts/theme" ];then
  source "/opt/scripts/theme"
else
  print_message() {
    echo "$1"
  }
fi

DOMAIN=$1

# add a vhost
add_vhost(){

  print_message "Creating folder : /var/www/${DOMAIN}/htdocs"
  mkdir -p /var/www/${DOMAIN}/htdocs

  print_message "Creating folder : /var/www/${DOMAIN}/etc/apache2"
  mkdir -p /var/www/${DOMAIN}/etc/apache2

  print_message "Creating folder : /var/www/${DOMAIN}/var/log/apache2"
  mkdir -p /var/www/${DOMAIN}/var/log/apache2

  print_message "Creating folder : /var/www/${DOMAIN}/var/backup"
  mkdir -p /var/www/${DOMAIN}/var/backup

  print_message "adding : ${DOMAIN} to vhosts"
  echo "

  ServerName ${DOMAIN}
  ServerAlias www.${DOMAIN}
  ServerAdmin webmaster@${DOMAIN}

  DocumentRoot /var/www/${DOMAIN}/htdocs

  
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  

  ErrorLog /var/www/${DOMAIN}/var/log/apache2/error.log

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  CustomLog /var/www/${DOMAIN}/var/log/apache2/access.log combined


" >> /var/www/${DOMAIN}/etc/apache2/${DOMAIN}

  print_message "Setting rights to /var/www/${DOMAIN}"
  chown -R www-data:www-data /var/www/${DOMAIN}
  chmod 2770 /var/www/${DOMAIN}
  find /var/www/${DOMAIN}/* | while read file; do [[ -f "$file" ]] && chmod 664 "$file"; [[ -d "$file" ]] && chmod 2775 "$file"; done
  ln -s /var/www/${DOMAIN}/etc/apache2/${DOMAIN} /etc/apache2/sites-enabled/${DOMAIN}
  print_message "Job finished." "ok"
}

# check if vhost exists
vhost_exists=0
check_vhost(){

    # check for vhost file
    #print_message "-- check if /var/www/${DOMAIN}/etc/apache2/${DOMAIN} exists"
    if [ -f /var/www/${DOMAIN}/etc/apache2/${DOMAIN} ];
    then
      print_message "Apache vhost file exists." "ok"
        vhost_exists=1
    else
        print_message "Apache vhost does NOT exists." "notok"
    fi

    # check for www folder
    #print_message "-- check if /var/www/${DOMAIN}/htdocs exists"
    if [ -d /var/www/${DOMAIN}/htdocs ];
    then
      print_message "Htdocs folder exists." "ok"
        vhost_exists=1
    else
        print_message "Htdocs folder does NOT exists." "notok"
    fi

    # check for logs folder
    #print_message "-- check if /var/www/${DOMAIN}/var/log/apache2 exists"
    if [ -d /var/www/${DOMAIN}/var/log/apache2 ];
    then
      print_message "Logs folder exists." "ok"
        vhost_exists=1
    else
        print_message "Logs folder does NOT exists." "notok"
    fi
}

check_vhost
if [ ${vhost_exists} -eq 0 ]; then
    print_message "Do you really want to run these parameters ? (y/n)" "question"
    read answer
    if [[ ${answer} =~ ^[Yy]$ ]]; then
      add_vhost
      echo "ok"
    else
      echo "Tant pis, bye"
      exit 0
    fi
  else
    print_message "already exists in vhost" "error"
fi


==== simple apache vhost ====


  ServerName mysite.com
  ServerAdmin webmaster@localhost

  DocumentRoot /var/www/mysite/htdocs

  
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  

  LogLevel warn
  ErrorLog "|/usr/sbin/rotatelogs /var/www/mysite/log/apache/error_log.%Y-%m-%d-%H 86400"
  CustomLog "|/usr/sbin/rotatelogs /var/www/mysite/log/apache/access_log.%Y-%m-%d-%H 86400" combined




{{tag>apache}}