urocibg revised this gist . Go to revision
1 file changed, 62 insertions
init.sh(file created)
@@ -0,0 +1,62 @@ | |||
1 | + | #!/bin/bash | |
2 | + | ||
3 | + | # shell скрипт за изпълнение на командите и създаване на файлове | |
4 | + | ||
5 | + | # Създаване на директории | |
6 | + | mkdir -p {wp1,wp2,wp3,wp4,php-inis,envs,mysql-init} | |
7 | + | ||
8 | + | # Генериране на init.sql | |
9 | + | cat > mysql-init/init.sql <<'SQL' | |
10 | + | CREATE DATABASE IF NOT EXISTS wordpress1; | |
11 | + | CREATE DATABASE IF NOT EXISTS wordpress2; | |
12 | + | CREATE DATABASE IF NOT EXISTS wordpress3; | |
13 | + | CREATE DATABASE IF NOT EXISTS wordpress4; | |
14 | + | ||
15 | + | CREATE USER IF NOT EXISTS 'wpuser'@'%' IDENTIFIED BY 'wppassword'; | |
16 | + | GRANT ALL PRIVILEGES ON wordpress1.* TO 'wpuser'@'%'; | |
17 | + | GRANT ALL PRIVILEGES ON wordpress2.* TO 'wpuser'@'%'; | |
18 | + | GRANT ALL PRIVILEGES ON wordpress3.* TO 'wpuser'@'%'; | |
19 | + | GRANT ALL PRIVILEGES ON wordpress4.* TO 'wpuser'@'%'; | |
20 | + | FLUSH PRIVILEGES; | |
21 | + | SQL | |
22 | + | ||
23 | + | # Генериране на docker-compose.yml | |
24 | + | cat > docker-compose.yml <<'YAML' | |
25 | + | version: '3.8' | |
26 | + | ||
27 | + | services: | |
28 | + | db: | |
29 | + | image: mysql:5.7 | |
30 | + | volumes: | |
31 | + | - db_data:/var/lib/mysql | |
32 | + | - ./mysql-init:/docker-entrypoint-initdb.d | |
33 | + | environment: | |
34 | + | MYSQL_ROOT_PASSWORD: rootpassword | |
35 | + | MYSQL_USER: wpuser | |
36 | + | MYSQL_PASSWORD: wppassword | |
37 | + | networks: | |
38 | + | wp_network: | |
39 | + | ||
40 | + | wordpress1: | |
41 | + | image: wordpress:php8.1-apache | |
42 | + | ports: ["8090:80"] | |
43 | + | volumes: | |
44 | + | - ./wp1:/var/www/html | |
45 | + | environment: | |
46 | + | WORDPRESS_DB_HOST: db | |
47 | + | WORDPRESS_DB_USER: wpuser | |
48 | + | WORDPRESS_DB_PASSWORD: wppassword | |
49 | + | WORDPRESS_DB_NAME: wordpress1 | |
50 | + | networks: | |
51 | + | wp_network: | |
52 | + | depends_on: | |
53 | + | - db | |
54 | + | ||
55 | + | networks: | |
56 | + | wp_network: | |
57 | + | ||
58 | + | volumes: | |
59 | + | db_data: | |
60 | + | YAML | |
61 | + | ||
62 | + | echo "Конфигурацията е готова! Стартирайте с: docker-compose up -d" |
urocibg revised this gist . Go to revision
1 file changed, 61 insertions, 10 deletions
setup-4wp.sh
@@ -18,28 +18,75 @@ GRANT ALL PRIVILEGES ON wordpress4.* TO 'wpuser'@'%'; | |||
18 | 18 | FLUSH PRIVILEGES; | |
19 | 19 | EOF | |
20 | 20 | ||
21 | - | # php.ini файлове | |
21 | + | # php.ini файлове с актуални настройки | |
22 | 22 | for i in {1..4}; do | |
23 | 23 | cat > "php-inis/php${i}.ini" <<EOF | |
24 | + | memory_limit = 256M | |
24 | 25 | upload_max_filesize = 64M | |
25 | 26 | post_max_size = 64M | |
26 | - | memory_limit = 256M | |
27 | 27 | max_execution_time = 300 | |
28 | + | opcache.enable=1 | |
29 | + | opcache.memory_consumption=128 | |
30 | + | opcache.max_accelerated_files=4000 | |
28 | 31 | EOF | |
29 | 32 | done | |
30 | 33 | ||
31 | - | # .env файлове | |
34 | + | # Правилна конфигурация за WordPress (wp-config.php) | |
32 | 35 | for i in {1..4}; do | |
33 | 36 | cat > "envs/wp${i}.env" <<EOF | |
37 | + | # Environment variables for WordPress ${i} | |
38 | + | DB_NAME=wordpress${i} | |
39 | + | DB_USER=wpuser | |
40 | + | DB_PASSWORD=wppassword | |
41 | + | DB_HOST=db | |
42 | + | ||
34 | 43 | 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)) | |
44 | + | WP_ENVIRONMENT_TYPE=production | |
39 | 45 | EOF | |
46 | + | ||
47 | + | # Генериране на wp-config.php с поддръжка на .env | |
48 | + | cat > "wp${i}/wp-config.php" <<'WPCONFIG' | |
49 | + | <?php | |
50 | + | // Load .env file if exists | |
51 | + | if (file_exists(__DIR__.'/.env')) { | |
52 | + | $env = parse_ini_file(__DIR__.'/.env'); | |
53 | + | foreach ($env as $key => $value) { | |
54 | + | putenv("$key=$value"); | |
55 | + | } | |
56 | + | } | |
57 | + | ||
58 | + | // Database settings | |
59 | + | define('DB_NAME', getenv('DB_NAME')); | |
60 | + | define('DB_USER', getenv('DB_USER')); | |
61 | + | define('DB_PASSWORD', getenv('DB_PASSWORD')); | |
62 | + | define('DB_HOST', getenv('DB_HOST')); | |
63 | + | ||
64 | + | // Security keys | |
65 | + | define('AUTH_KEY', ',V~U;_JxY)0?e}@)/r+!i)L-2x][&9GD!)0-e6f+=^R9wIAO%1HGA`Sf@fbC{{d-'); | |
66 | + | define('SECURE_AUTH_KEY', 'zoNHd%qu+H2FkWeRQXvZ[M<Ipsd2qHG/KnTy]S]MumWjxN_^M_r{p:mqYG+ZJL9>'); | |
67 | + | define('LOGGED_IN_KEY', 'yx+HS[<(j+|Hg{(e3j~}GB>8m2%qu:W;V*+@&w|-;-~FA7+#T4rLfoC.:#}OJ+:o'); | |
68 | + | define('NONCE_KEY', ':J$p)Q4@+-,t5WTyP|Wxx|:J-5ZJXx84{$!JxgM|4U]fTkvia-9:LHTaGRRa/VX;'); | |
69 | + | define('AUTH_SALT', '}M>0+l?TUo#r[AUV^! *#@n8]tP1+UiB4uTf bNJ/ife~jP%-ixn; UY<FmRp%O:'); | |
70 | + | define('SECURE_AUTH_SALT', 'b-j!{nf96#AL.[^2K<F~A49/h^r.M&^|&?U/^G6_sBMk4n5^::/Ed,jo4fn mdPU'); | |
71 | + | define('LOGGED_IN_SALT', '~h;zO| hO.GL$DJ<ZkAK?rm{+Y:-A@LY|_,hmI6)yHBl(q|WW:+cwL+Sn:|+{$sl'); | |
72 | + | define('NONCE_SALT', '|YkAjobA~YA6h$6;gspFz<)]-J!@ODo9^Y+2|4Q|.b,5.nGr;ghc#X>P+R=2cS:%'); | |
73 | + | ||
74 | + | // WordPress settings | |
75 | + | define('WP_DEBUG', filter_var(getenv('WP_DEBUG'), FILTER_VALIDATE_BOOLEAN)); | |
76 | + | define('WP_ENVIRONMENT_TYPE', getenv('WP_ENVIRONMENT_TYPE') ?: 'production'); | |
77 | + | ||
78 | + | \$table_prefix = 'wp_'; | |
79 | + | ||
80 | + | // Absolute path to the WordPress directory | |
81 | + | if (!defined('ABSPATH')) { | |
82 | + | define('ABSPATH', __DIR__ . '/'); | |
83 | + | } | |
84 | + | ||
85 | + | require_once ABSPATH . 'wp-settings.php'; | |
86 | + | WPCONFIG | |
40 | 87 | done | |
41 | 88 | ||
42 | - | # docker-compose.yml | |
89 | + | # docker-compose.yml с актуален PHP 8.1 | |
43 | 90 | cat > docker-compose.yml <<EOF | |
44 | 91 | version: '3.8' | |
45 | 92 | ||
@@ -64,7 +111,7 @@ $(for i in {1..4}; do | |||
64 | 111 | ip=$((10 + i - 1)) | |
65 | 112 | cat <<WPEOF | |
66 | 113 | wordpress${i}: | |
67 | - | image: wordpress:php7.4-apache | |
114 | + | image: wordpress:php8.1-apache | |
68 | 115 | container_name: wp_site${i} | |
69 | 116 | networks: | |
70 | 117 | wp_network: | |
@@ -99,4 +146,8 @@ volumes: | |||
99 | 146 | EOF | |
100 | 147 | ||
101 | 148 | echo "Скриптът завърши успешно!" | |
102 | - | echo "Стартирайте с: docker-compose up -d" | |
149 | + | echo "Стартирайте с: docker compose up -d" | |
150 | + | echo "Сайтовете ще са достъпни на:" | |
151 | + | echo "http://<ваш-ip>:8090 до http://<ваш-ip>:8093" | |
152 | + | echo "Може да ви е интересно да видите още скриптове на:" | |
153 | + | echo "https://urocibg.eu/category/scripts/" |
urocibg revised this gist . Go to revision
1 file changed, 102 insertions
setup-4wp.sh(file created)
@@ -0,0 +1,102 @@ | |||
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" |