Vai al contenuto

Crea sito

CREASITO

Lo script permette la creazione interattiva di un Virtual Host, chiede il nome del VH, il nome del database, dell'utente, la password e la password root del database. Genera il VH, il database e la configurazione apache.

Bash
#!/bin/bash

if [ "$EUID" -ne 0 ]
  then
      echo "Per favore, esegui questo script come root"
      exit
fi

echo "Inserisci il nome del dominio (esempio.com):"
read -p "Dominio: " domain

echo "Inserisci il nome del database (esempio_db):"
read -p "Nome del database: " database

echo "Inserisci le credenziali dell'utente del database (esempio_user):"
read -p "Nome utente: " db_user

echo "Inserisci la password per l'utente del database:"
read -p "Password: " db_password

echo "Inserisci la password ROOT per il database:"
read -p "Password: " db_root_password

sudo tee /etc/apache2/sites-available/$domain.conf <<EOF
<VirtualHost *:80>
    ServerName $domain
    DocumentRoot /var/www/$domain
    CustomLog /var/log/apache2/$domain-access.log combined
    ErrorLog /var/log/apache2/$domain-error.log
    <Directory /var/www/$domain>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
EOF
sudo a2ensite $domain.conf
sudo mkdir -p /var/www/$domain
sudo chown -R www-data:www-data /var/www/$domain
#sudo chmod -R 777 /var/www/$domain
sudo chmod -R g+rw /var/www/$domain
sudo service apache2 restart

# Creazione del database MariaDB
sudo mysql -uroot -p$db_root_password <<EOF
CREATE DATABASE $database;
CREATE USER '$db_user'@'localhost' IDENTIFIED BY '$db_password';
GRANT ALL PRIVILEGES ON $database.* TO '$db_user'@'localhost';
FLUSH PRIVILEGES;
EOF

echo "127.0.0.1 $domain" >> /etc/hosts
sudo systemctl restart cloudflared
echo "Virtual host e database creati con successo!"

⧉ Copied!