-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApache_scr1.sh
97 lines (81 loc) · 3.95 KB
/
Apache_scr1.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# Функція для перевірки успішності виконання команд
check_success() {
if [ $? -ne 0 ]; then
echo "Помилка: $1"
exit 1
fi
}
# Встановлення змінних для уникнення інтерактивних запитів
export DEBIAN_FRONTEND=noninteractive
# Генерація паролів
root_password=$(openssl rand -base64 12)
phpmyadmin_password=$(openssl rand -base64 12)
app_password=$(openssl rand -base64 12)
# Створення файлу для автоматичного налаштування phpMyAdmin
debconf-set-selections <<EOF
phpmyadmin phpmyadmin/dbconfig-install boolean true
phpmyadmin phpmyadmin/app-password-confirm password $app_password
phpmyadmin phpmyadmin/mysql/admin-pass password $root_password
phpmyadmin phpmyadmin/mysql/app-pass password $app_password
phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2
EOF
# Оновлення системи
echo "Оновлюємо систему..."
apt update && apt upgrade -y
check_success "Не вдалося оновити систему"
# Встановлення Apache
echo "Встановлюємо Apache..."
apt install -y apache2
check_success "Не вдалося встановити Apache"
# Встановлення MariaDB без запитів пароля
echo "Встановлюємо MariaDB..."
apt install -y mariadb-server mariadb-client
check_success "Не вдалося встановити MariaDB"
# Запуск і налаштування MariaDB
echo "Налаштовуємо MariaDB..."
systemctl start mariadb
systemctl enable mariadb
# Очікування запуску MariaDB
sleep 5
# Налаштування root пароля та безпеки MariaDB
mysql -u root <<EOF
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${root_password}');
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
EOF
check_success "Не вдалося налаштувати MariaDB"
# Встановлення PHP та phpMyAdmin без інтерактивних запитів
echo "Встановлюємо PHP та phpMyAdmin..."
apt install -y php php-mbstring php-zip php-gd php-json php-curl
apt install -y phpmyadmin
check_success "Не вдалося встановити PHP та phpMyAdmin"
# Налаштування phpMyAdmin з Apache
echo "Налаштовуємо phpMyAdmin з Apache..."
ln -sf /usr/share/phpmyadmin /var/www/html/phpmyadmin
check_success "Не вдалося налаштувати символічне посилання для phpMyAdmin"
# Створення конфігурації Apache для phpMyAdmin
echo 'Alias /phpmyadmin /usr/share/phpmyadmin' > /etc/apache2/conf-available/phpmyadmin.conf
a2enconf phpmyadmin
systemctl reload apache2
check_success "Не вдалося налаштувати Apache для phpMyAdmin"
# Створення користувача phpMyAdmin
echo "Створюємо користувача для phpMyAdmin..."
mysql -u root -p"${root_password}" <<EOF
CREATE USER IF NOT EXISTS 'admin'@'localhost' IDENTIFIED BY '${phpmyadmin_password}';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
check_success "Не вдалося створити користувача phpMyAdmin"
# Кольоровий вивід результатів
GREEN="\033[0;32m"
BLUE="\033[0;34m"
RESET="\033[0m"
echo -e "${GREEN}Встановлення завершено успішно!${RESET}"
echo -e "${BLUE}Логін (phpMyAdmin):${RESET} admin"
echo -e "${BLUE}Пароль (phpMyAdmin):${RESET} ${GREEN}$phpmyadmin_password${RESET}"
echo -e "${BLUE}Пароль root (MariaDB):${RESET} ${GREEN}$root_password${RESET}"
echo -e "${BLUE}Адреса phpMyAdmin:${RESET} http://$(hostname -I | awk '{print $1}')/phpmyadmin"