#! /bin/bash # # ======================= # New Nginix Site Script 0.1 # Written by PeeDub # http://selfpwnt.com # You may use, modify, and redistribute this script freely # Released: April 2012 # ======================= # Function to make a php index file: function make_pindex { cat <<- _EOF_ $dname $dname _EOF_ } # ======================= # header # ======================= clear echo "*** Site Setup ***" # ======================= # set domain name variable # ======================= echo -n "==> Enter new domain name (domain.com): " read dname echo -n "==> Enter new user for site: " read nuser echo -n "==> Enter password for ${nuser}: " read npass echo "Setting up files for $dname" # ======================= # create needed directories # ======================= mkdir -vp /var/sites/$dname/public_html mkdir -vp /var/sites/$dname/logs # ======================= # build index.php file unless we're setting up a wordpress site # ======================= newwp=no if [ $# -gt 0 ] && [ $1 == 'wp' ] then newwp=yes fi if [ $# -eq 2 ] then if [ $2 == 'i' ] then newwp=no fi fi if [ $# -gt 0 ] && [ $1 == 'wp' ] && [ $newwp == 'yes' ] then wget http://wordpress.org/latest.tar.gz -P /var/sites/$dname/public_html tar --strip-components=1 -xzvf /var/sites/$dname/public_html/latest.tar.gz -C /var/sites/$dname/public_html rm -f /var/sites/$dname/public_html/latest.tar.gz else make_pindex > /var/sites/$dname/public_html/index.php echo "created /var/sites/$dname/public_html/index.php" fi # ======================= # build vhost config file # ======================= if [ $# -gt 0 ] && [ $1 == 'wp' ] then cp /usr/local/share/nginx-vhost-templates/example-wp.com /etc/nginx/sites-available/$dname else cp /usr/local/share/nginx-vhost-templates/example.com /etc/nginx/sites-available/$dname fi echo "created /etc/nginx/sites-available/$dname" # ======================= # enable site #======================== ln -s /etc/nginx/sites-available/$dname /etc/nginx/sites-enabled/$dname echo "enabled $dname" # Find and replace in vhost config sed -i 's/example.com/'$dname'/g' /etc/nginx/sites-available/$dname #======================== # build php pool file #======================== cp /usr/local/share/php-fpm-pool-templates/example.com.conf /etc/php5/fpm/pool.d/${dname}.conf echo "created /etc/php5/fpm/pool.d/${dname}.conf" # Find and replace in php pool config sed -i 's/example.com/'$dname'/g' /etc/php5/fpm/pool.d/${dname}.conf sed -i 's/example/'$nuser'/g' /etc/php5/fpm/pool.d/${dname}.conf # ====================== # Create User # ====================== useradd -M -s /sbin/nologin $nuser -p `mkpasswd $npass` echo "created user: $nuser" # ======================= # Set owner of public_html directory # ======================= chown -R ${nuser}:${nuser} /var/sites/$dname/public_html echo "Set ownership of web directory to $nuser" # ======================= # Restart nginx and php # ======================= /etc/init.d/nginx reload echo "Done!" /etc/init.d/php5-fpm restart echo "Done!" # ======================= # Setting up SFTP # ======================= cp /usr/local/share/sftp_user /tmp sed -i 's/example.com/'$dname'/g' /tmp/sftp_user sed -i 's/example/'$nuser'/g' /tmp/sftp_user cat /tmp/sftp_user >> /etc/ssh/sshd_config echo "SFTP configuration complete" /etc/init.d/ssh restart # ======================= # exit # ======================= echo "*** Finished setting up hosting for $dname. Goodbye!" exit