Обновить setup.sh

This commit is contained in:
2025-11-21 19:38:14 +00:00
parent 13b405a66d
commit 6cb3f51fec

View File

@@ -239,28 +239,44 @@ max_execution_time = 300
max_input_time = 300 max_input_time = 300
EOF EOF
# === Создание .env для WordPress === # === Создание структуры директорий для WordPress ===
safe_mkdir "/opt/wordpress" safe_mkdir "/opt/wordpress"
safe_mkdir "/opt/wordpress/wp-content/uploads"
safe_mkdir "/opt/wordpress/wp-content/plugins"
safe_mkdir "/opt/wordpress/wp-content/themes"
safe_mkdir "/opt/wordpress/wp-content/mytheme"
safe_mkdir "/opt/wordpress/config"
safe_mkdir "/opt/wordpress/logs/wordpress"
safe_mkdir "/opt/wordpress/logs/mysql"
safe_mkdir "/opt/wordpress/data/mysql"
safe_mkdir "/opt/wordpress/backups"
# === Генерация .env файла ===
cat <<EOF > /opt/wordpress/.env cat <<EOF > /opt/wordpress/.env
# ========================= # =========================
# Database Configuration # Database Configuration
# ========================= # =========================
DB_NAME=wordpressdbname DB_NAME=wordpressdbname
DB_USER=wordpressuser DB_USER=wordpressuser
DB_PASSWORD=$(generate_password 16) DB_PASSWORD=$(generate_password 20)
# ========================= # =========================
# WordPress Settings # WordPress Settings
# ========================= # =========================
WP_DOMAIN=rp.primo.su
WP_DEBUG=false WP_DEBUG=false
WP_DEBUG_LOG=false WP_DEBUG_LOG=false
TZ=Asia/Krasnoyarsk
WP_DOMAIN=
EOF
chmod 600 /opt/wordpress/.env
log_success "WordPress .env файл сгенерирован"
# === Создание docker-compose.yml для WordPress === # =========================
# Timezone
# =========================
TZ=Asia/Krasnoyarsk
EOF
chmod 600 /opt/wordpress/.env
log_success "WordPress .env файл создан и защищён"
# === Создание docker-compose.yml под твой текущий конфиг с env_file ===
cat <<EOF > /opt/wordpress/docker-compose.yml cat <<EOF > /opt/wordpress/docker-compose.yml
services: services:
wordpress: wordpress:
@@ -268,39 +284,30 @@ services:
image: wordpress:6.5-php8.2-apache image: wordpress:6.5-php8.2-apache
restart: unless-stopped restart: unless-stopped
depends_on: depends_on:
db: word_db:
condition: service_healthy condition: service_healthy
env_file: env_file:
- .env - .env
environment: environment:
WORDPRESS_DB_HOST: word_db
WORDPRESS_DB_USER: \${DB_USER}
WORDPRESS_DB_PASSWORD: \${DB_PASSWORD}
WORDPRESS_DB_NAME: \${DB_NAME}
WORDPRESS_CONFIG_EXTRA: | WORDPRESS_CONFIG_EXTRA: |
define('WP_DEBUG', \${WP_DEBUG}); define('WP_DEBUG', \${WP_DEBUG} === 'true');
define('WP_DEBUG_LOG', \${WP_DEBUG_LOG}); define('WP_DEBUG_LOG', \${WP_DEBUG_LOG} === 'true');
define('WP_HOME', 'https://\${WP_DOMAIN}'); define('WP_HOME', 'https://' . getenv('WP_DOMAIN'));
define('WP_SITEURL', 'https://\${WP_DOMAIN}'); define('WP_SITEURL', 'https://' . getenv('WP_DOMAIN'));
date_default_timezone_set('Asia/Krasnoyarsk'); date_default_timezone_set('Asia/Krasnoyarsk');
volumes: volumes:
# Контент WordPress с хоста
- ./wp-content/uploads:/var/www/html/wp-content/uploads - ./wp-content/uploads:/var/www/html/wp-content/uploads
- ./wp-content/plugins:/var/www/html/wp-content/plugins - ./wp-content/plugins:/var/www/html/wp-content/plugins
- ./wp-content/themes:/var/www/html/wp-content/themes - ./wp-content/themes:/var/www/html/wp-content/themes
- ./wp-content/mytheme:/var/www/html/wp-content/themes/mytheme - ./wp-content/mytheme:/var/www/html/wp-content/themes/mytheme
# Настройки PHP
- ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:ro - ./config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:ro
- ./config/php.ini:/usr/local/etc/php/php.ini:ro - ./config/php.ini:/usr/local/etc/php/php.ini:ro
# Логи Apache
- ./logs/wordpress:/var/log/apache2 - ./logs/wordpress:/var/log/apache2
# Бэкапы и дополнительные данные
- ./backups:/backups - ./backups:/backups
# Если wp-config.php существует как **файл**, можно раскомментировать строку ниже
# - ./config/wp-config.php:/var/www/html/wp-config.php:ro
#ports:
#- "8080:80"
networks: networks:
- wordpress_net - wordpress_net
- proxy - proxy
@@ -308,23 +315,22 @@ services:
test: ["CMD", "curl", "-f", "http://localhost/wp-admin/install.php"] test: ["CMD", "curl", "-f", "http://localhost/wp-admin/install.php"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 3 retries: 5
start_period: 30s start_period: 40s
db: word_db:
container_name: wordpress-db container_name: wordpress-db
image: mysql:8.0 image: mysql:8.0
restart: unless-stopped restart: unless-stopped
env_file: env_file:
- .env - .env
environment: environment:
MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_RANDOM_ROOT_PASSWORD: "yes"
TZ: \${TZ} TZ: \${TZ}
volumes: volumes:
- ./data/mysql:/var/lib/mysql - ./data/mysql:/var/lib/mysql
- ./config/my.cnf:/etc/mysql/conf.d/custom.cnf:ro - ./config/my.cnf:/etc/mysql/conf.d/custom.cnf:ro
- ./logs/mysql:/var/log/mysql - ./logs/mysql:/var/log/mysql
- ./backups/db:/docker-entrypoint-initdb.d
command: command:
- --default-time-zone=+07:00 - --default-time-zone=+07:00
- --character-set-server=utf8mb4 - --character-set-server=utf8mb4
@@ -332,11 +338,11 @@ services:
networks: networks:
- wordpress_net - wordpress_net
healthcheck: healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h localhost -u\${DB_USER} -p\${DB_PASSWORD} || exit 1"] test: ["CMD-SHELL", "mysqladmin ping --protocol=tcp --silent -u\${DB_USER} -p\${DB_PASSWORD} || exit 1"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 10
start_period: 30s start_period: 40s
#phpmyadmin: #phpmyadmin:
#container_name: wordpress-phpmyadmin #container_name: wordpress-phpmyadmin
@@ -365,6 +371,9 @@ networks:
external: true external: true
EOF EOF
chmod 644 /opt/wordpress/docker-compose.yml
log_success "docker-compose.yml для WordPress успешно создан (все переменные вынесены в .env)"
# Генерация паролей и .env # Генерация паролей и .env