LAMP
Lo script installa un server MAMP su Ubuntu Server 22.04
Bash
#!/bin/bash
# Esci se lo script non viene eseguito come root
if [ "$EUID" -ne 0 ]; then
echo "Devi eseguire lo script come root"
exit 1
fi
# Aggiorna il sistema
apt update
# ==================================================
# APACHE
# ==================================================
# Verifica se Apache è già installato, se non lo è installalo
if ! [ -x "$(command -v apache2)" ]; then
apt install apache2 -y
# Abilita Apache nel firewall
ufw allow in "Apache"
# Abilita mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2
fi
# ==================================================
# MYSQL
# ==================================================
# Verifica se MySQL è già installato, se non lo è installalo
if ! [ -x "$(command -v mysql)" ]; then
apt install mysql-server -y
# Richiedi all'utente di inserire la nuova password
read -s -p "Inserisci la password per l'utente root di MySQL: " new_password
echo
# Esegui il comando ALTER USER all'interno di MySQL
mysql -u root -p -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$new_password';"
# Esegui mysql_secure_installation con sudo utilizzando la password indicata precedentemente
mysql_secure_installation <<EOF
$new_password
n
y
y
y
y
EOF
fi
# ==================================================
# PHP
# ==================================================
# Verifica se PHP è già installato
if [ -x "$(command -v php)" ]; then
php_version=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
echo "PHP versione $php_version già installata."
else
apt install php libapache2-mod-php php-mysql -y
php_version=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
echo "PHP versione $php_version installata."
fi
# Installa i pacchetti aggiuntivi in base alla versione di PHP
if [[ $php_version == "8.1" ]]; then
apt install php8.1-curl php8.1-xml php8.1-imagick php8.1-mbstring php8.1-zip php8.1-intl php-fdomdocument php8.1-gd php8.1-intl -y
elif [[ $php_version == "8.0" ]]; then
apt install php8.0-curl php8.0-xml php8.0-imagick php8.0-mbstring php8.0-zip php8.0-intl php-fdomdocument php8.0-gd php8.0-intl -y
elif [[ $php_version == "7.4" ]]; then
apt install php7.4-curl php7.4-xml php7.4-imagick php7.4-mbstring php7.4-zip php7.4-intl php-fdomdocument php7.4-gd php7.4-intl -y
else
echo "Versione di PHP non supportata. Installa manualmente i pacchetti aggiuntivi corrispondenti."
fi
# Da installare:
# apt install php8.1-curl php-fdomdocument php8.1-imagick php8.1-mbstring php8.1-zip php8.1-gd php8.1-intl
# ==================================================
# HISTORY
# ==================================================
# Rendi persistente history
if ! grep -q "HISTFILE" /etc/environment; then
echo "HISTFILE=/home/$USER/.bash_history" | sudo tee -a /etc/environment
fi
# ==================================================
# WWW-DATA
# ==================================================
# Ottieni l'utente che ha eseguito il comando sudo
sudo_user=$SUDO_USER
# Aggiungi l'utente che ha eseguito il comando sudo al gruppo www-data
usermod -a -G www-data $sudo_user && exec "$SHELL"
# Aggiungi l'utente corrente anche al gruppo www-data nel caso in cui www-data sia un gruppo primario
usermod -a -G www-data -a $sudo_user && exec "$SHELL"