File: //usr/local/bin/new_site_x
#!/bin/bash
# Usage: sudo /usr/local/bin/new_site $DOMAIN_NAME
DOMAIN_NAME=$1
USER_NAME=`echo $DOMAIN_NAME | sed 's/\.//g' | cut -c1-32`
PASSWORD=`< /dev/urandom tr -dc A-Za-z0-9 | head -c16; echo`
MYSQL_NAME=`echo $DOMAIN_NAME | sed 's/-/_/g' | sed 's/\.//g'`
for domain in $(ls -lha /etc/apache2/sites-enabled/ | awk {'print $9'} | egrep "^[[:alnum:]]" | grep -v le-ssl.conf | sed 's/.conf$//g'); do
if [[ $DOMAIN_NAME == $domain ]]; then
echo "Domain already exists on server, exiting..."
exit 0;
else
:
fi
done
if [[ $DOMAIN_NAME =~ _ ]]; then
echo "Domains cannot contain underscores, exiting..."
exit 0;
else
:
fi
if [[ $USER_NAME = [0-9]* ]]; then
USER_NAME=`echo $USER_NAME | sed 's/[0-9]//g'`
echo "Username cannot start with a number, changing username to $USER_NAME..."
else
:
fi
adduser --quiet --disabled-password --gecos "" $USER_NAME --home /home/$DOMAIN_NAME
echo $USER_NAME:$PASSWORD | chpasswd
mkdir /home/$DOMAIN_NAME/public_html
# Added installing Wordpress here
cd /home/$DOMAIN_NAME/public_html
/usr/bin/wget -q http://wordpress.org/latest.tar.gz
/usr/bin/tar xfz latest.tar.gz
mv /home/$DOMAIN_NAME/public_html/wordpress/* /home/$DOMAIN_NAME/public_html/
rmdir /home/$DOMAIN_NAME/public_html/wordpress/
rm -f /home/$DOMAIN_NAME/public_html/latest.tar.gz
# End install Wordpress
chown -R $USER_NAME:$USER_NAME /home/$DOMAIN_NAME/public_html
chmod 755 /home/$DOMAIN_NAME
chmod 755 /home/$DOMAIN_NAME/public_html
cp -pR /etc/templates/php.conf /etc/php/7.4/fpm/pool.d/$DOMAIN_NAME\.conf
cp -pR /etc/templates/apache.conf /etc/apache2/sites-enabled/$DOMAIN_NAME\.conf
sed -i "s/DOMAIN_NAME/$DOMAIN_NAME/g" /etc/php/7.4/fpm/pool.d/$DOMAIN_NAME\.conf /etc/apache2/sites-enabled/$DOMAIN_NAME\.conf
sed -i "s/USER/$USER_NAME/g" /etc/php/7.4/fpm/pool.d/$DOMAIN_NAME\.conf /etc/apache2/sites-enabled/$DOMAIN_NAME\.conf
systemctl restart apache2 && systemctl restart php7.4-fpm
/usr/bin/mysql -uroot -pZjc0NGU3ZTYzNDdh -e "CREATE DATABASE $MYSQL_NAME;"
/usr/bin/mysql -uroot -pZjc0NGU3ZTYzNDdh -e "GRANT ALL PRIVILEGES ON $MYSQL_NAME.* TO '$MYSQL_NAME'@'localhost' IDENTIFIED BY '$PASSWORD';"
# /usr/local/bin/certbot certonly --apache -d $DOMAIN_NAME > /dev/null 2>&1
echo "" >> /root/user_details.txt
echo "New site created: $DOMAIN_NAME"
echo "New site created: $DOMAIN_NAME" >> /root/user_details.txt
echo "SSH/SFTP Username: $USER_NAME"
echo "SSH/SFTP Username: $USER_NAME" >> /root/user_details.txt
echo "SSH/SFTP Password: $PASSWORD"
echo "SSH/SFTP Password: $PASSWORD" >> /root/user_details.txt
echo "Database Name: $MYSQL_NAME"
echo "Database Name: $MYSQL_NAME" >> /root/user_details.txt
echo "Database Username: $MYSQL_NAME"
echo "Database Username: $MYSQL_NAME" >> /root/user_details.txt
echo "Database Password: $PASSWORD"
echo "Database Password: $PASSWORD" >> /root/user_details.txt
cd /root/