You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB

#!/bin/bash
#This script makes virtual host, site directories and log files
#Author : Pragati Sureka
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "make_vsite:You need to run this script as root(or use sudo)"
exit
fi
# Check for proper number of command line args.
if [ $# -ne 1 ]
then
echo "Usage: `basename $0` example.com"
echo " <example.com should be replaced by actual domain name>"
exit
fi
sed s/[[:blank:]]*//g $1 > $1
#Script Variables
WEBROOT="/var/www"
SKELFILE="/etc/nginx/sites-available/example.com"
VSITEDIR="/etc/nginx/sites-available"
ESITEDIR="/etc/nginx/sites-enabled"
USER="www-data"
GROUP="www-data"
SERVER_RELOAD="service nginx restart"
WP_ZIP="/home/rtcamp/wordpress/latest.zip" #wordpress 3.0
#make directories and touch log files
mkdir $WEBROOT/$1
mkdir $WEBROOT/$1/htdocs
mkdir $WEBROOT/$1/logs
touch $WEBROOT/$1/logs/error.log
touch $WEBROOT/$1/logs/access.log
#download latest wordpress and extract it to proper location
cd $WEBROOT/$1
#wget www.wordpress.org/latest.zip
unzip -q -o $WP_ZIP
mv wordpress/* htdocs/
rm -rf $WEBROOT/$1/wordpress
#rm $WEBROOT/$1/latest.zip
chown -R $USER:$GROUP $WEBROOT/$1
#chmod g+rw -R $WEBROOT/$1
#create database
mysql -u USER -pPASS -e 'create database `'$1'` '
#create wp-config.php file
CONFIGSAMPLE=$WEBROOT/$1/htdocs/wp-config-sample.php
sed s/database_name_here/$1/ $CONFIGSAMPLE | sed s/username_here/USER/ | sed s/password_here/PASS/ > $WEBROOT/$1/htdocs/wp-config.php
#copy skeleton file and enable site
sed s/example.com/$1/ $SKELFILE > $VSITEDIR/$1
ln -s $VSITEDIR/$1 $ESITEDIR/
echo "127.0.0.1 $1" >> /etc/hosts
$SERVER_RELOAD
if [ $? -ne 0 ]; then
#rm -rf $WEBROOT/$1
unlink $ESITEDIR/$1
$SERVER_RELOAD
sed -i".bak" '$d' /etc/hosts
echo "ERROR CREATING PLEASE CONTACT pragati.sureka@rtcamp.com FOR ASSISTANCE!"
fi