Ultima attività 1753468903

install_wp.sh Raw
1#!/bin/bash
2
3# Автор: Федя Серафиев (модифициран за стабилни версии)
4
5# ====== ВХОДНИ ДАННИ ОТ ПОТРЕБИТЕЛЯ ======
6read -p "👉 Въведи име за сайта (използва се за име на контейнерите, volumes и мрежа): " SITE_NAME
7SITE_NAME=$(echo "$SITE_NAME" | tr -d ' ')
8
9read -p "👉 Въведи външен порт за достъп до WordPress (напр. 8080): " HOST_PORT
10HOST_PORT=${HOST_PORT:-8080}
11
12# ====== ПАРОЛИ И ПАРАМЕТРИ ======
13MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16)
14MYSQL_DATABASE="wordpress"
15MYSQL_USER="wpuser"
16MYSQL_PASSWORD=$(openssl rand -base64 16)
17
18# ====== СТРУКТУРА НА ПАПКИТЕ ======
19mkdir -p "$SITE_NAME"/{config,wordpress,db_data}
20cd "$SITE_NAME"
21
22# ====== .env ФАЙЛ ======
23cat > .env <<EOF
24MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
25MYSQL_DATABASE=${MYSQL_DATABASE}
26MYSQL_USER=${MYSQL_USER}
27MYSQL_PASSWORD=${MYSQL_PASSWORD}
28WORDPRESS_DB_HOST=${SITE_NAME}_db:3306
29EOF
30
31# ====== config/php.ini ======
32cat > config/php.ini <<EOF
33upload_max_filesize = 64M
34post_max_size = 64M
35memory_limit = 256M
36EOF
37
38# ====== docker-compose.yml ======
39cat > docker-compose.yml <<EOF
40version: '3.8'
41
42services:
43 ${SITE_NAME}_db:
44 image: mysql:5.7
45 container_name: ${SITE_NAME}_db
46 restart: always
47 volumes:
48 - ./db_data:/var/lib/mysql
49 environment:
50 MYSQL_ROOT_PASSWORD: \${MYSQL_ROOT_PASSWORD}
51 MYSQL_DATABASE: \${MYSQL_DATABASE}
52 MYSQL_USER: \${MYSQL_USER}
53 MYSQL_PASSWORD: \${MYSQL_PASSWORD}
54 networks:
55 - ${SITE_NAME}_net
56
57 ${SITE_NAME}_wp:
58 image: wordpress:6.4-php8.1-apache
59 container_name: ${SITE_NAME}_wp
60 depends_on:
61 - ${SITE_NAME}_db
62 ports:
63 - "${HOST_PORT}:80"
64 restart: always
65 volumes:
66 - ./wordpress:/var/www/html
67 - ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini
68 environment:
69 WORDPRESS_DB_HOST: \${WORDPRESS_DB_HOST}
70 WORDPRESS_DB_NAME: \${MYSQL_DATABASE}
71 WORDPRESS_DB_USER: \${MYSQL_USER}
72 WORDPRESS_DB_PASSWORD: \${MYSQL_PASSWORD}
73 networks:
74 - ${SITE_NAME}_net
75
76networks:
77 ${SITE_NAME}_net:
78 driver: bridge
79EOF
80
81# ====== ИНФОРМАЦИЯ ======
82echo
83echo "✅ WordPress инстанция \"$SITE_NAME\" е готова."
84echo "📁 Файловете на сайта са в: $(pwd)/wordpress"
85echo "🌐 Достъп: http://localhost:${HOST_PORT}"
86echo "🔐 Данни за база данни (в .env):"
87echo "MYSQL_USER=${MYSQL_USER}"
88echo "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
89echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}"
90echo ""
91echo "🚀 Стартирай сайта със: docker compose up -d"