πŸ” Как Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ ΠΈ ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΌΠ΅ WordPress сайт с Docker само с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°

πŸ” Как Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ ΠΈ ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΌΠ΅ WordPress сайт с Docker само с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°

Пълно Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° миграция ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° WordPress инсталации с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Docker Compose


πŸ“¦ Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠšΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° WordPress сайт ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π²ΡƒΡ‡ΠΈ слоТно β€” особСно ΠΊΠΎΠ³Π°Ρ‚ΠΎ са намСсСни Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, плъгини ΠΈ Ρ‚Π΅ΠΌΠΈ. Но с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Docker, всичко става ΠΏΠΎ-лСсно, ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π’ Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Ρ‰Π΅ Ρ‚ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Ρˆ WordPress сайт, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ с Docker, ΠΎΡ‚ Π΅Π΄Π½Π° машина Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈΠ»ΠΈ ΠΎΡ‚ продукция към тСстова срСда β€” Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° структура ΠΈ Π΄ΠΎΠ±Ρ€ΠΈ Π½Π°Π²ΠΈΡ†ΠΈ Π·Π° бСкъп.


🧠 Какво ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅?

Π‘ WordPress, инсталиран Ρ‡Ρ€Π΅Π· Docker Compose, ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π° основни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

  1. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° WordPress – Ρ‚Π΅ΠΌΠΈ, плъгини, uploads ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
  2. Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ – MySQL ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ volume

ΠšΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ изисква:

  • АрхивиранС Π½Π° ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅ (volumes)
  • ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ към Π½ΠΎΠ² ΡΡŠΡ€Π²ΡŠΡ€/дирСктория
  • Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Compose Π² Π½ΠΎΠ²Π°Ρ‚Π° локация

πŸ—ƒ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

wordpress-docker/
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ .env
β”œβ”€β”€ config/
β”œβ”€β”€ backup.sh

πŸ’Ύ 1. БъздаванС Π½Π° скрипт Π·Π° бСкъп

Бъздай Ρ„Π°ΠΉΠ» backup.sh с Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄:

Terminal
!/bin/bash



echo β€žπŸ“¦ Бъздавам Π°Ρ€Ρ…ΠΈΠ² Π½Π° WordPress ΡΠ°ΠΉΡ‚Π°β€¦β€œdocker compose downtar -czf wordpress-backup.tar.gz ./db_data ./wordpress_data ./config .env docker-compose.ymlecho β€žβœ… АрхивиранСто Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ: wordpress-backup.tar.gzβ€œ

βœ… Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π° ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΈ .env.

πŸ“€ 2. ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ към Π½ΠΎΠ²Π° машина

Използвай scp, rsync или sftp:

Terminal
scp wordpress-backup.tar.gz user@newserver:/home/user/

πŸ“₯ 3. Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅ ΠΈ стартиранС Π½Π° Π½ΠΎΠ² ΡΡŠΡ€Π²ΡŠΡ€

На Π½ΠΎΠ²Π°Ρ‚Π° машина:

Terminal
tar -xzf wordpress-backup.tar.gzdocker compose up -d

πŸŽ‰ Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Ввоят ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½ сайт Ρ‰Π΅ бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π²Π΅Π΄Π½Π°Π³Π°.


βš™οΈ АлтСрнатива: rsync ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ

МоТСш Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Ρˆ само ΠΎΠ±Π΅ΠΌΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с rsync:

Terminal
rsync -aP /var/lib/docker/volumes/wordpress_docker_wordpress_data/ \user@newserver:/var/lib/docker/volumes/wordpress_docker_wordpress_data/

Π£Π²Π΅Ρ€ΠΈ сС, Ρ‡Π΅ volume-ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΠΈΠΌΠ΅Π½Π°!


πŸ§ͺ ПолСзСн скрипт Π·Π° Π±ΡŠΡ€Π·Π° миграция

Бъздай скрипт migrate-wordpress.sh:

Terminal
!/bin/bash



echo β€žπŸ“€ ΠΡ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅β€¦β€œdocker compose downtar -czf site.tar.gz wordpress_data db_data docker-compose.yml .env configecho β€žπŸ“‘ ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅β€¦β€œscp site.tar.gz root@NEW_SERVER_IP:/opt/wordpress-site/ssh root@NEW_SERVER_IP β€žcd /opt/wordpress-site && tar -xzf site.tar.gz && docker compose up -dβ€œecho β€žβœ… Π“ΠΎΡ‚ΠΎΠ²ΠΎ!β€œ

πŸ” Какво Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡˆ ΠΏΡ€ΠΈ миграция?

  • ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈ .env, Π°ΠΊΠΎ Ρ‰Π΅ използваш Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° Π±Π°Π·Π°
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° – ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π³ΠΎ Π² WORDPRESS_SITEURL ΠΈ WORDPRESS_HOME
  • ΠŸΠΎΡ‡ΠΈΡΡ‚ΠΈ DNS кСша ΠΈΠ»ΠΈ настрой reverse proxy

🧼 Как Π΄Π° почистим стария сайт (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ€)

Terminal
docker compose down -v
rm -rf wordpress_data db_data config .env

πŸ’‘ Бонус: ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΎΡ‚ production към local dev

ИдСално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π°ΠΊΠΎ искаш Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡˆ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π±Π΅Π· Π΄Π° Ρ€ΠΈΡΠΊΡƒΠ²Π°Ρˆ продукцията:

Terminal
ssh root@production β€žcd /opt/wordpress && ./backup.shβ€œ
scp root@production:/opt/wordpress/wordpress-backup.tar.gz .
tar -xzf wordpress-backup.tar.gz
docker compose up -d

πŸ“Œ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Docker ΠΈ Compose, миграцията ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° WordPress сайт Π΅ Π²ΡŠΠΏΡ€ΠΎΡ Π½Π° Π°Ρ€Ρ…ΠΈΠ² ΠΈ стартиранС. Π‘Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, FTP ΠΈΠ»ΠΈ Ρ€ΡŠΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Apache/Nginx.

🧩 Π•Π΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ = Π΅Π΄Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅. А с Π΅Π΄ΠΈΠ½ .tar.gz Ρ„Π°ΠΉΠ» моТСш Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡˆ цСлия си уСбсайт Π·Π° сСкунди.

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π²ΠΈ Π·Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π΅Ρ‚ΠΎ Π½Π° статията! Ако Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…Ρ‚Π΅ информацията Π·Π° ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π°Ρ€ΠΈΡ‚Π΅ посрСдством Π±ΡƒΡ‚ΠΎΠ½ΠΈΡ‚Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ: πŸ”°