Skip to content

Commit 3e99d4d

Browse files
authored
Update installer.sh
1 parent 37ab1b8 commit 3e99d4d

File tree

1 file changed

+150
-23
lines changed

1 file changed

+150
-23
lines changed

installer.sh

Lines changed: 150 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,167 @@
11
#!/bin/bash
22

3-
echo "Aggiorno la lista dei pacchetti"
4-
sudo apt-get update && sudo apt-get full-upgrade -y
3+
# Configurazione
4+
WP_DIR="/var/www/html"
5+
WP_URL="https://wordpress.org/latest.tar.gz"
56

6-
echo "Installo Apache2"
7-
sudo apt-get install apache2 -y
7+
# Colori per output
8+
RED='\033[0;31m'
9+
GREEN='\033[0;32m'
10+
YELLOW='\033[1;33m'
11+
NC='\033[0m'
812

9-
echo "Installo PHP e i moduli necessari"
10-
sudo apt-get install php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
13+
# Funzioni di utilità
14+
log_info() {
15+
echo -e "${GREEN}[INFO]${NC} $1"
16+
}
1117

12-
echo "Installo MariaDB per il database"
13-
sudo apt-get install mariadb-server -y
18+
log_warn() {
19+
echo -e "${YELLOW}[WARN]${NC} $1"
20+
}
1421

15-
echo "Riavvio Apache2"
22+
log_error() {
23+
echo -e "${RED}[ERROR]${NC} $1"
24+
}
25+
26+
check_root() {
27+
if [[ $EUID -eq 0 ]]; then
28+
log_error "Non eseguire questo script come root. Usa sudo quando necessario."
29+
exit 1
30+
fi
31+
}
32+
33+
check_command() {
34+
if ! command -v $1 &> /dev/null; then
35+
log_error "$1 non è installato"
36+
return 1
37+
fi
38+
return 0
39+
}
40+
41+
# Controlli preliminari
42+
check_root
43+
44+
log_info "Avvio installazione WordPress..."
45+
46+
# Aggiornamento sistema
47+
log_info "Aggiornamento sistema in corso..."
48+
if ! sudo apt-get update && sudo apt-get full-upgrade -y; then
49+
log_error "Errore durante l'aggiornamento del sistema"
50+
exit 1
51+
fi
52+
53+
# Installazione Apache2
54+
log_info "Installazione Apache2..."
55+
if ! sudo apt-get install apache2 -y; then
56+
log_error "Errore durante l'installazione di Apache2"
57+
exit 1
58+
fi
59+
60+
# Installazione PHP e moduli
61+
log_info "Installazione PHP e moduli..."
62+
PHP_PACKAGES="php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip"
63+
if ! sudo apt-get install $PHP_PACKAGES -y; then
64+
log_error "Errore durante l'installazione di PHP"
65+
exit 1
66+
fi
67+
68+
# Installazione MariaDB
69+
log_info "Installazione MariaDB..."
70+
if ! sudo apt-get install mariadb-server -y; then
71+
log_error "Errore durante l'installazione di MariaDB"
72+
exit 1
73+
fi
74+
75+
# Avvio e abilitazione servizi
76+
log_info "Configurazione servizi..."
77+
sudo systemctl enable apache2
78+
sudo systemctl enable mariadb
1679
sudo systemctl restart apache2
80+
sudo systemctl restart mariadb
1781

18-
echo "Mi sposto nella cartella /var/www/html"
19-
cd /var/www/html/
82+
# Verifica servizi
83+
if ! sudo systemctl is-active --quiet apache2; then
84+
log_error "Apache2 non è in esecuzione"
85+
exit 1
86+
fi
2087

21-
echo "Scarico WordPress"
22-
sudo rm -rf * && sudo wget http://wordpress.org/latest.tar.gz
88+
if ! sudo systemctl is-active --quiet mariadb; then
89+
log_error "MariaDB non è in esecuzione"
90+
exit 1
91+
fi
2392

24-
echo "Estraggo i file di WordPress"
25-
sudo tar xzf latest.tar.gz
93+
# Backup directory esistente
94+
if [ -d "$WP_DIR" ] && [ "$(ls -A $WP_DIR 2>/dev/null)" ]; then
95+
log_warn "Directory $WP_DIR non vuota. Creazione backup..."
96+
sudo mv "$WP_DIR" "${WP_DIR}.backup.$(date +%Y%m%d_%H%M%S)"
97+
sudo mkdir -p "$WP_DIR"
98+
fi
2699

27-
echo "Sposto i file da WordPress a html"
28-
sudo mv wordpress/* .
100+
# Spostamento nella directory web
101+
cd "$WP_DIR" || {
102+
log_error "Impossibile accedere a $WP_DIR"
103+
exit 1
104+
}
29105

30-
echo "Elimino la cartella WordPress che è vuota"
31-
sudo rm -rf wordpress latest.tar.gz
106+
# Download WordPress
107+
log_info "Download WordPress..."
108+
if ! sudo wget "$WP_URL" -O latest.tar.gz; then
109+
log_error "Errore durante il download di WordPress"
110+
exit 1
111+
fi
112+
113+
# Verifica integrità file
114+
if [ ! -s latest.tar.gz ]; then
115+
log_error "File WordPress scaricato è vuoto o corrotto"
116+
sudo rm -f latest.tar.gz
117+
exit 1
118+
fi
119+
120+
# Estrazione WordPress
121+
log_info "Estrazione WordPress..."
122+
if ! sudo tar xzf latest.tar.gz; then
123+
log_error "Errore durante l'estrazione di WordPress"
124+
exit 1
125+
fi
32126

33-
echo "Cambio il proprietario dei file dal tuo nome utente a www-data"
34-
sudo chown -R www-data: .
127+
# Verifica estrazione
128+
if [ ! -d "wordpress" ]; then
129+
log_error "Cartella wordpress non trovata dopo l'estrazione"
130+
exit 1
131+
fi
35132

36-
echo "Configuro i permessi dei file di WordPress"
133+
# Spostamento file
134+
log_info "Configurazione file WordPress..."
135+
sudo mv wordpress/* . 2>/dev/null || true
136+
sudo mv wordpress/.[^.]* . 2>/dev/null || true
137+
138+
# Pulizia
139+
sudo rm -rf wordpress latest.tar.gz
140+
141+
# Configurazione permessi
142+
log_info "Configurazione permessi..."
143+
sudo chown -R www-data:www-data .
37144
sudo find . -type d -exec chmod 755 {} \;
38145
sudo find . -type f -exec chmod 644 {} \;
39146

40-
echo "WordPress è stato installato con successo!"
147+
# Configurazione wp-config.php
148+
if [ -f "wp-config-sample.php" ]; then
149+
log_info "Creazione wp-config.php..."
150+
sudo cp wp-config-sample.php wp-config.php
151+
sudo chown www-data:www-data wp-config.php
152+
fi
153+
154+
# Test finale
155+
log_info "Test configurazione Apache..."
156+
if sudo apache2ctl configtest; then
157+
sudo systemctl reload apache2
158+
log_info "WordPress installato con successo!"
159+
log_info "Visita http://$(hostname -I | awk '{print $1}') per completare la configurazione"
160+
log_warn "Ricorda di:"
161+
log_warn "1. Configurare MariaDB: sudo mysql_secure_installation"
162+
log_warn "2. Creare database per WordPress"
163+
log_warn "3. Configurare il firewall se necessario"
164+
else
165+
log_error "Errore nella configurazione di Apache"
166+
exit 1
167+
fi

0 commit comments

Comments
 (0)