πŸ› οΈ Автоматична инсталация Π½Π° WordPress сайтовС с Bash скрипт

Автоматична инсталация Π½Π° WordPress сайтовС с Bash скрипт

Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° мноТСство WordPress сайтовС Π½Π° Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ чСсто Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с повтарящи сС ΡΡ‚ΡŠΠΏΠΊΠΈ – изтСглянС Π½Π° WordPress, настройка Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Apache ΠΈΠ»ΠΈ Docker, рСдакция Π½Π° wp-config.php, ΠΏΡ€Π°Π²Π° Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΎΡ‰Π΅ ΠΊΡƒΠΏ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ. Π—Π° Π΄Π° спСстим Π²Ρ€Π΅ΠΌΠ΅ ΠΈ усилия, ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ… Bash скрипт, ΠΊΠΎΠΉΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° напълно Ρ‚ΠΎΠ·ΠΈ процСс.

πŸ”§ Какво прСдставлява ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚?

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° Ubuntu ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ позволява Π±ΡŠΡ€Π·Π° ΠΈ лСсна инсталация Π½Π° мноТСство WordPress сайтовС, всСки със собствСна дирСктория, Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΡ€Ρ‚. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ класичСска инсталация с Apache ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠ°Π²Π° Ρ‡Ρ€Π΅Π· Docker + docker-compose.

🧰 Основни Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ

  • βœ… Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ зависимости (Apache, PHP, MariaDB, WordPress)
  • βœ… ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠ°ΠΊΡ‚ΠΎ стандартна инсталация, Ρ‚Π°ΠΊΠ° ΠΈ Ρ‡Ρ€Π΅Π· Docker
  • βœ… Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ (Π½Π°ΠΏΡ€. 8081, 8082…) Π·Π° всСки сайт
  • βœ… Настройва Apache VirtualHost ΠΈ PHP ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ (upload, memory, execution time)
  • βœ… Бъздава ΠΎΡ‚Π΄Π΅Π»Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π° Π·Π° всСки сайт
  • βœ… Добавя записа Π² /etc/hosts Π·Π° лСсно тСстванС с Π΄ΠΎΠΌΠ΅ΠΉΠ½

πŸ“¦ΠšΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ скрипта:

  1. Π—Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ скрипта във Ρ„Π°ΠΉΠ» (Π½Π°ΠΏΡ€. wordpress-installer.sh)
  2. НаправСтС Π³ΠΎ изпълним: chmod +x wordpress-installer.sh
  3. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠ°Ρ‚ΠΎ root: sudo ./wordpress-installer.sh

Основно мСню

Π‘Π»Π΅Π΄ стартиранС Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ слСдното мСню:

1. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉ зависимости
2. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΉ MySQL
3. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉ WordPress сайт (Apache)
4. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΉ WordPress сайт (Docker)
5. Π˜Π·Ρ…ΠΎΠ΄

Π˜Π·Π±ΠΎΡ€ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° инсталация

Ако ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ опция 3 ΠΈΠ»ΠΈ 4, Ρ‰Π΅ Π±ΡŠΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ°Π½Π΅Π½ΠΈ Π΄Π° Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅:

  • ИмС Π½Π° сайта (Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΈ) – ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° дирСктория ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ
  • ΠŸΠΎΡ€Ρ‚ – Π½Π°ΠΏΡ€. 8081, 8082…
  • Π”ΠΎΠΌΠ΅ΠΉΠ½ (Π½Π΅Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ) – Π°ΠΊΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»Π΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½, Π½Π°ΠΏΡ€. site1.local

Автоматична конфигурация

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅:

  • Π˜Π·Ρ‚Π΅Π³Π»ΠΈ послСдната вСрсия Π½Π° WordPress
  • БъздадС Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΏΡ€Π°Π²Π°
  • Настрои wp-config.php ΠΈ php.ini
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° Apache Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ хост ΠΈΠ»ΠΈ docker-compose
  • Π”ΠΎΠ±Π°Π²ΠΈ Π»ΠΎΠΊΠ°Π»Π΅Π½ запис Π² /etc/hosts (Π°ΠΊΠΎ Π΅ посочСн Π΄ΠΎΠΌΠ΅ΠΉΠ½)
  • РСстартира Apache ΠΈΠ»ΠΈ стартира ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с URL адрСса, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ инсталацията Π½Π° WordPress:

WordPress Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ инсталиран Π·Π° site1!
Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ сайта: http://10.10.10.11:8081
Π—Π°Π²ΡŠΡ€ΡˆΠ΅Ρ‚Π΅ инсталацията Ρ‚ΡƒΠΊ: http://10.10.10.11:8081/wp-admin/install.php

βš™οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ сцСнарий

Π˜ΠΌΠ°Ρ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ ΠΈ искатС Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ WordPress сайта Π·Π° тСстови Ρ†Π΅Π»ΠΈ:

sudo ./wp-multisite-installer.sh

  • Π‘ΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ test1 Π½Π° ΠΏΠΎΡ€Ρ‚ 8081, Π΄ΠΎΠΌΠ΅ΠΉΠ½: test1.local
  • Π‘ΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ projectx Π½Π° ΠΏΠΎΡ€Ρ‚ 8082, Π±Π΅Π· Π΄ΠΎΠΌΠ΅ΠΉΠ½
  • Π‘ΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ clientsite Π½Π° ΠΏΠΎΡ€Ρ‚ 8083, Π΄ΠΎΠΌΠ΅ΠΉΠ½: client.local

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! ВсСки сайт ΠΈΠΌΠ° собствСна дирСктория, собствСна Π±Π°Π·Π°, конфигурация ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°.

🐳 Docker ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°

Ако ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°Π½Π° срСда, ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° docker-compose.yml ΠΈ php.ini Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ сС стартират с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠΎ сайта остават Π·Π°ΠΏΠ°Π·Π΅Π½ΠΈ Π² дирСкторията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

πŸ“ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅

/var/www/test1/
β”‚
β”œβ”€β”€ wp-content/
β”œβ”€β”€ wp-config.php
β”œβ”€β”€ php.ini
β”œβ”€β”€ docker-compose.yml (Π°ΠΊΠΎ Π΅ Docker)

πŸ›‘οΈ БСзопасност ΠΈ Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Π½Π΅ записва ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅
  • ΠŸΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈ изпълнСниС
  • MySQL сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‡Ρ€Π΅Π· mysql_secure_installation

πŸ§ͺ ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ Π·Π°:

  • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ тСстови сайтовС
  • АгСнции, ΠΊΠΎΠΈΡ‚ΠΎ управляват няколко клиСнтски WordPress инсталации
  • ВсСки, ΠΊΠΎΠΉΡ‚ΠΎ иска Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ досадната Ρ€ΡŠΡ‡Π½Π° инсталация

πŸ“₯ Π˜Π·Ρ‚Π΅Π³Π»ΠΈ скрипта

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ пълния скрипт ΠΎΡ‚ слСдния Π»ΠΈΠ½ΠΊ:

πŸ“₯Π˜Π—Π’Π•Π“Π›Π˜

ЀСдя Π‘Π΅Ρ€Π°Ρ„ΠΈΠ΅Π²

ЀСдя Π‘Π΅Ρ€Π°Ρ„ΠΈΠ΅Π²

ЀСдя Π‘Π΅Ρ€Π°Ρ„ΠΈΠ΅Π² e собствСник Π½Π° уСбсайта urocibg.eu. Π’ΠΎΠΉ Π½Π°ΠΌΠΈΡ€Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΠ²Π° Π΄Π° ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ…ΠΎΡ€Π°Ρ‚Π° Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΈ Π½Π°ΠΉ-слоТнитС тСхничСски ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π‘Π΅Π³Π°ΡˆΠ½Π°Ρ‚Π° ΠΌΡƒ Ρ†Π΅Π» Π΅ Π΄Π° пишС лСсни Π·Π° слСдванС статии, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΄Π° Π½Π΅ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚.

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