HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-84-generic #84-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep 5 22:36:38 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
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/