#!/bin/bash
echo "Enter a domain. e.g. example.com";
read domain;
echo "Enter a subdomain name. e.g. vhost as in vhost.example.com";
read vhost;
echo "Will the site live in /var/www or public_html? [v or p]";
read set_sitepath;
##value is either V for var/www of P for public - default to P
echo $set_sitepath;
if [[ "${set_sitepath}" == "p" || "${set_sitepath}" == "" ]];then
echo "You chose to create the site in the public_html directory.";
echo "Please enter the username of the public_html owner.";
read set_username;
dirpath="/home/${set_username}/public_html/";
# dirpath="/home/$USER/public_html/";
# echo $dirpath;
fi
if [[ "${set_sitepath}" == "v" ]];then
dirpath="/var/www/";
echo $dirpath;
fi
echo "The dirpath = "${dirpath};
if [[ "${domain}" != "" && "${vhost}" != "" ]]; then
# if [[ ! -e /var/www/${vhost} ]]; then
# mkdir /var/www/${vhost};
# fi
# if [[ ! -e /var/www/${vhost}/htdocs ]]; then
# mkdir /var/www/${vhost}/htdocs;
# fi
# chown -R www-data:www-data /var/www/${vhost};
#
# if [[ ! -e /etc/apache2/backup ]]; then
# mkdir /etc/apache2/backup;
# fi
if [[ ! -e ${dirpath}.${vhost} ]]; then
mkdir ${dirpath}${vhost};
fi
# if [[ ! -e ${dirpath}.${vhost}/htdocs ]]; then
# mkdir ${dirpath}.${vhost}/htdocs;
# fi
if [[ "${set_sitepath}" == "v" ]];then
chown -R www-data:www-data ${dirpath}${vhost};
else
chown -R ${set_username}:${set_username} ${dirpath}${vhost};
fi
# if [[ ! -e /etc/apache2/backup ]]; then
# mkdir /etc/apache2/backup;
# fi
# cp /etc/apache2/httpd.conf /etc/apache2/backup/httpd.conf.`date +%s`;
# Touch the file that will hold the vhost - name is the same as the vhost
touch /etc/apache2/sites-available/${vhost};
vhostFile="/etc/apache2/sites-available/${vhost}";
echo ${vhostFile};
# exit;
echo "" >> ${vhostFile};
echo "### ${vhost}.${domain}" >> ${vhostFile};
echo "" >> ${vhostFile};
echo " Options All MultiViews ExecCGI" >> ${vhostFile};
echo " AddHandler cgi-script cgi pl" >> ${vhostFile};
echo " AllowOverride All" >> ${vhostFile};
echo " Order allow,deny" >> ${vhostFile};
echo " Allow from all" >> ${vhostFile};
echo "" >> ${vhostFile};
echo "" >> ${vhostFile};
echo " ServerName ${vhost}.${domain}" >> ${vhostFile};
echo " DocumentRoot ${dirpath}${vhost}" >> ${vhostFile};
echo " LogLevel warn" >> ${vhostFile};
echo " CustomLog /var/log/apache2/access_${vhost}.log combined" >> ${vhostFile};
echo "" >> ${vhostFile};
echo "" >> ${vhostFile};
echo " ServerName ${vhost}.${domain}" >> ${vhostFile};
echo " DocumentRoot ${dirpath}${vhost}" >> ${vhostFile};
echo " SSLEngine On" >> ${vhostFile};
echo " SSLCertificateFile /etc/apache2/ssl/apache.pem" >> ${vhostFile};
echo " LogLevel warn" >> ${vhostFile};
echo " CustomLog /var/log/apache2/access_${vhost}.log combined" >> ${vhostFile};
echo "" >> ${vhostFile};
echo "The following was added to ${vhostFile}";
echo "";
# tail -24 /etc/apache2/httpd.conf
cat ${vhostFile};
echo "";
apache2ctl=`which apache2ctl`;
a2ensite=`which a2ensite`;
echo "Would you like to run an apache config test? [y or n]";
read is_config_test;
if [[ "${is_config_test}" == "y" ]]; then
$apache2ctl configtest;
fi
echo "Would you like to enable ${vhost}.${domain}? [y or n]";
read is_enable_vhost;
if [[ "${is_enable_vhost}" == "y" ]]; then
$a2ensite ${vhost};
fi
echo "Would you like to restart apache now? [y or n]";
read is_restart;
if [[ "${is_restart}" == "y" ]]; then
echo "Restarting...";
$apache2ctl graceful;
fi;
echo "All done!!!";
fi