π ΠΠ°ΠΊ Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°ΠΌΠ΅ WordPress ΡΠ°ΠΉΡ Ρ Docker ΡΠ°ΠΌΠΎ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°

ΠΡΠ»Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° WordPress ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Docker Compose
π¦ ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΌΠΈΠ³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° WordPress ΡΠ°ΠΉΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π²ΡΡΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ β ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ ΠΈ ΡΠ΅ΠΌΠΈ. ΠΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Docker, Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π²Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ, ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ.
Π ΡΠΎΠ²Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ΅ ΡΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Ρ WordPress ΡΠ°ΠΉΡ, ΡΠ°Π±ΠΎΡΠ΅Ρ Ρ Docker, ΠΎΡ Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Π΄ΡΡΠ³Π° ΠΈΠ»ΠΈ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΊΡΠΌ ΡΠ΅ΡΡΠΎΠ²Π° ΡΡΠ΅Π΄Π° β Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Ρ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½ΡΠΆΠ½ΠΎ, Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΈ Π΄ΠΎΠ±ΡΠΈ Π½Π°Π²ΠΈΡΠΈ Π·Π° Π±Π΅ΠΊΡΠΏ.
π§ ΠΠ°ΠΊΠ²ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΠΌΠ΅?
Π‘ WordPress, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΡΡΠ΅Π· Docker Compose, ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- Π€Π°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° WordPress β ΡΠ΅ΠΌΠΈ, ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, uploads ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
- ΠΠ°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ β MySQL ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Ρ Π²ΡΡΡΠ΅ΡΠ΅Π½ volume
ΠΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°:
- ΠΡΡ
ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ (
volumes
) - ΠΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ ΠΊΡΠΌ Π½ΠΎΠ² ΡΡΡΠ²ΡΡ/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
- Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Compose Π² Π½ΠΎΠ²Π°ΡΠ° Π»ΠΎΠΊΠ°ΡΠΈΡ
π Π‘ΡΡΡΠΊΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°
wordpress-docker/
βββ docker-compose.yml
βββ .env
βββ config/
βββ backup.sh
πΎ 1. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡ Π·Π° Π±Π΅ΠΊΡΠΏ
Π‘ΡΠ·Π΄Π°ΠΉ ΡΠ°ΠΉΠ» backup.sh
Ρ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄:
!/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
:
scp wordpress-backup.tar.gz user@newserver:/home/user/
π₯ 3. Π Π°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ² ΡΡΡΠ²ΡΡ
ΠΠ° Π½ΠΎΠ²Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°:
tar -xzf wordpress-backup.tar.gzdocker compose up -d
π ΠΠΎΡΠΎΠ²ΠΎ! Π’Π²ΠΎΡΡ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½ ΡΠ°ΠΉΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²Π΅Π΄Π½Π°Π³Π°.
βοΈ ΠΠ»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°: rsync ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ²ΡΡΠΈ
ΠΠΎΠΆΠ΅Ρ Π΄Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Ρ ΡΠ°ΠΌΠΎ ΠΎΠ±Π΅ΠΌΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ rsync
:
rsync -aP /var/lib/docker/volumes/wordpress_docker_wordpress_data/ \user@newserver:/var/lib/docker/volumes/wordpress_docker_wordpress_data/
Π£Π²Π΅ΡΠΈ ΡΠ΅, ΡΠ΅ volume-ΠΈΡΠ΅ ΠΈΠΌΠ°Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΠΈΠΌΠ΅Π½Π°!
π§ͺ ΠΠΎΠ»Π΅Π·Π΅Π½ ΡΠΊΡΠΈΠΏΡ Π·Π° Π±ΡΡΠ·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ
Π‘ΡΠ·Π΄Π°ΠΉ ΡΠΊΡΠΈΠΏΡ migrate-wordpress.sh
:
!/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
π§Ό ΠΠ°ΠΊ Π΄Π° ΠΏΠΎΡΠΈΡΡΠΈΠΌ ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΉΡ (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ)
docker compose down -v
rm -rf wordpress_data db_data config .env
π‘ ΠΠΎΠ½ΡΡ: ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΎΡ production ΠΊΡΠΌ local dev
ΠΠ΄Π΅Π°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π°ΠΊΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π±Π΅Π· Π΄Π° ΡΠΈΡΠΊΡΠ²Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΡΠ°:
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
ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠ΅Π»ΠΈΡ ΡΠΈ ΡΠ΅Π±ΡΠ°ΠΉΡ Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.