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