Última atividade 1752999136

Скрипт за автоматично инсталиране на 4 WordPress сайта с Docker Compose.

Revisão 63f8fdace92ab68eb9705c26dab6787e6b40b34b

setup-4wp.sh Bruto
1#!/bin/bash
2
3# Създаване на директории
4mkdir -p {wp1,wp2,wp3,wp4,php-inis,envs,mysql-init}
5
6# SQL за инициализация на базите
7cat > mysql-init/init.sql <<EOF
8CREATE DATABASE IF NOT EXISTS wordpress1;
9CREATE DATABASE IF NOT EXISTS wordpress2;
10CREATE DATABASE IF NOT EXISTS wordpress3;
11CREATE DATABASE IF NOT EXISTS wordpress4;
12
13CREATE USER IF NOT EXISTS 'wpuser'@'%' IDENTIFIED BY 'wppassword';
14GRANT ALL PRIVILEGES ON wordpress1.* TO 'wpuser'@'%';
15GRANT ALL PRIVILEGES ON wordpress2.* TO 'wpuser'@'%';
16GRANT ALL PRIVILEGES ON wordpress3.* TO 'wpuser'@'%';
17GRANT ALL PRIVILEGES ON wordpress4.* TO 'wpuser'@'%';
18FLUSH PRIVILEGES;
19EOF
20
21# php.ini файлове
22for i in {1..4}; do
23 cat > "php-inis/php${i}.ini" <<EOF
24upload_max_filesize = 64M
25post_max_size = 64M
26memory_limit = 256M
27max_execution_time = 300
28EOF
29done
30
31# .env файлове
32for i in {1..4}; do
33 cat > "envs/wp${i}.env" <<EOF
34WP_DEBUG=false
35WP_DEBUG_LOG=false
36WP_DEBUG_DISPLAY=false
37WP_HOME=http://your-server-ip:809$((i-1))
38WP_SITEURL=http://your-server-ip:809$((i-1))
39EOF
40done
41
42# docker-compose.yml
43cat > docker-compose.yml <<EOF
44version: '3.8'
45
46services:
47 db:
48 image: mysql:5.7
49 container_name: wp_mysql
50 networks:
51 wp_network:
52 ipv4_address: 10.110.112.5
53 volumes:
54 - db_data:/var/lib/mysql
55 - ./mysql-init:/docker-entrypoint-initdb.d
56 environment:
57 MYSQL_ROOT_PASSWORD: rootpassword
58 MYSQL_USER: wpuser
59 MYSQL_PASSWORD: wppassword
60 restart: unless-stopped
61
62$(for i in {1..4}; do
63 port=$((8090 + i - 1))
64 ip=$((10 + i - 1))
65 cat <<WPEOF
66 wordpress${i}:
67 image: wordpress:php7.4-apache
68 container_name: wp_site${i}
69 networks:
70 wp_network:
71 ipv4_address: 10.110.112.${ip}
72 ports:
73 - "${port}:80"
74 volumes:
75 - ./wp${i}:/var/www/html
76 - ./php-inis/php${i}.ini:/usr/local/etc/php/conf.d/custom-php.ini
77 - ./envs/wp${i}.env:/var/www/html/.env
78 environment:
79 WORDPRESS_DB_HOST: db
80 WORDPRESS_DB_USER: wpuser
81 WORDPRESS_DB_PASSWORD: wppassword
82 WORDPRESS_DB_NAME: wordpress${i}
83 depends_on:
84 - db
85 restart: unless-stopped
86
87WPEOF
88done)
89
90networks:
91 wp_network:
92 driver: bridge
93 ipam:
94 config:
95 - subnet: 10.110.112.0/24
96
97volumes:
98 db_data:
99EOF
100
101echo "Скриптът завърши успешно!"
102echo "Стартирайте с: docker-compose up -d"