install_wp.sh
· 2.9 KiB · Bash
Sin formato
#!/bin/bash
# Автор: Федя Серафиев
# ====== ВХОДНИ ДАННИ ОТ ПОТРЕБИТЕЛЯ ======
read -p "👉 Въведи име за контейнера на WordPress [wordpress_app]: " WP_CONTAINER
WP_CONTAINER=${WP_CONTAINER:-wordpress_app}
read -p "👉 Въведи име за контейнера на базата данни [wordpress_db]: " DB_CONTAINER
DB_CONTAINER=${DB_CONTAINER:-wordpress_db}
read -p "👉 Въведи външен порт за достъп до WordPress (напр. 8383): " HOST_PORT
HOST_PORT=${HOST_PORT:-8383}
# ====== ГЕНЕРИРАНЕ НА ПАРОЛИ ======
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16)
MYSQL_DATABASE="wordpress"
MYSQL_USER="wpuser"
MYSQL_PASSWORD=$(openssl rand -base64 16)
# ====== СЪЗДАВАНЕ НА ДИРЕКТОРИИ ======
mkdir -p config wp-content
# ====== .env ФАЙЛ ======
cat > .env <<EOF
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE=${MYSQL_DATABASE}
MYSQL_USER=${MYSQL_USER}
MYSQL_PASSWORD=${MYSQL_PASSWORD}
WORDPRESS_DB_HOST=db:3306
EOF
# ====== config/php.ini ======
cat > config/php.ini <<EOF
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
EOF
# ====== docker-compose.yml ======
cat > docker-compose.yml <<EOF
version: '3.8'
services:
db:
image: mysql:8.0
container_name: ${DB_CONTAINER}
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: \${MYSQL_ROOT_PASSWORD:-rootpass}
MYSQL_DATABASE: \${MYSQL_DATABASE:-wordpress}
MYSQL_USER: \${MYSQL_USER:-wpuser}
MYSQL_PASSWORD: \${MYSQL_PASSWORD:-wppass}
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
wordpress:
image: wordpress:latest
container_name: ${WP_CONTAINER}
depends_on:
db:
condition: service_healthy
ports:
- "${HOST_PORT}:80"
restart: always
volumes:
- wordpress:/var/www/html
- ./wp-content:/var/www/html/wp-content
- ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: \${MYSQL_DATABASE:-wordpress}
WORDPRESS_DB_USER: \${MYSQL_USER:-wpuser}
WORDPRESS_DB_PASSWORD: \${MYSQL_PASSWORD:-wppass}
volumes:
db_data:
driver: local
wordpress:
driver: local
EOF
# ====== ИЗВОД ======
echo
echo "✅ Проектът е инициализиран успешно!"
echo "📂 Създадени: docker-compose.yml, .env, config/php.ini, wp-content/"
echo "🌐 Достъп до WordPress: http://localhost:${HOST_PORT}"
echo
echo "🔐 Данни за достъп до базата (също записани в .env):"
echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}"
echo "MYSQL_USER=${MYSQL_USER}"
echo "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
echo
echo "🚀 Стартирай с: docker compose up -d"
1 | #!/bin/bash |
2 | |
3 | # Автор: Федя Серафиев |
4 | |
5 | # ====== ВХОДНИ ДАННИ ОТ ПОТРЕБИТЕЛЯ ====== |
6 | read -p "👉 Въведи име за контейнера на WordPress [wordpress_app]: " WP_CONTAINER |
7 | WP_CONTAINER=${WP_CONTAINER:-wordpress_app} |
8 | |
9 | read -p "👉 Въведи име за контейнера на базата данни [wordpress_db]: " DB_CONTAINER |
10 | DB_CONTAINER=${DB_CONTAINER:-wordpress_db} |
11 | |
12 | read -p "👉 Въведи външен порт за достъп до WordPress (напр. 8383): " HOST_PORT |
13 | HOST_PORT=${HOST_PORT:-8383} |
14 | |
15 | # ====== ГЕНЕРИРАНЕ НА ПАРОЛИ ====== |
16 | MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16) |
17 | MYSQL_DATABASE="wordpress" |
18 | MYSQL_USER="wpuser" |
19 | MYSQL_PASSWORD=$(openssl rand -base64 16) |
20 | |
21 | # ====== СЪЗДАВАНЕ НА ДИРЕКТОРИИ ====== |
22 | mkdir -p config wp-content |
23 | |
24 | # ====== .env ФАЙЛ ====== |
25 | cat > .env <<EOF |
26 | MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} |
27 | MYSQL_DATABASE=${MYSQL_DATABASE} |
28 | MYSQL_USER=${MYSQL_USER} |
29 | MYSQL_PASSWORD=${MYSQL_PASSWORD} |
30 | WORDPRESS_DB_HOST=db:3306 |
31 | EOF |
32 | |
33 | # ====== config/php.ini ====== |
34 | cat > config/php.ini <<EOF |
35 | upload_max_filesize = 64M |
36 | post_max_size = 64M |
37 | memory_limit = 256M |
38 | EOF |
39 | |
40 | # ====== docker-compose.yml ====== |
41 | cat > docker-compose.yml <<EOF |
42 | version: '3.8' |
43 | |
44 | services: |
45 | db: |
46 | image: mysql:8.0 |
47 | container_name: ${DB_CONTAINER} |
48 | restart: always |
49 | volumes: |
50 | - db_data:/var/lib/mysql |
51 | environment: |
52 | MYSQL_ROOT_PASSWORD: \${MYSQL_ROOT_PASSWORD:-rootpass} |
53 | MYSQL_DATABASE: \${MYSQL_DATABASE:-wordpress} |
54 | MYSQL_USER: \${MYSQL_USER:-wpuser} |
55 | MYSQL_PASSWORD: \${MYSQL_PASSWORD:-wppass} |
56 | healthcheck: |
57 | test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] |
58 | interval: 10s |
59 | timeout: 5s |
60 | retries: 5 |
61 | |
62 | wordpress: |
63 | image: wordpress:latest |
64 | container_name: ${WP_CONTAINER} |
65 | depends_on: |
66 | db: |
67 | condition: service_healthy |
68 | ports: |
69 | - "${HOST_PORT}:80" |
70 | restart: always |
71 | volumes: |
72 | - wordpress:/var/www/html |
73 | - ./wp-content:/var/www/html/wp-content |
74 | - ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini |
75 | environment: |
76 | WORDPRESS_DB_HOST: db:3306 |
77 | WORDPRESS_DB_NAME: \${MYSQL_DATABASE:-wordpress} |
78 | WORDPRESS_DB_USER: \${MYSQL_USER:-wpuser} |
79 | WORDPRESS_DB_PASSWORD: \${MYSQL_PASSWORD:-wppass} |
80 | |
81 | volumes: |
82 | db_data: |
83 | driver: local |
84 | wordpress: |
85 | driver: local |
86 | EOF |
87 | |
88 | # ====== ИЗВОД ====== |
89 | echo |
90 | echo "✅ Проектът е инициализиран успешно!" |
91 | echo "📂 Създадени: docker-compose.yml, .env, config/php.ini, wp-content/" |
92 | echo "🌐 Достъп до WordPress: http://localhost:${HOST_PORT}" |
93 | echo |
94 | echo "🔐 Данни за достъп до базата (също записани в .env):" |
95 | echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |
96 | echo "MYSQL_USER=${MYSQL_USER}" |
97 | echo "MYSQL_PASSWORD=${MYSQL_PASSWORD}" |
98 | echo |
99 | echo "🚀 Стартирай с: docker compose up -d" |