Инсталиране на WordPress с Docker Compose с предварително конфигуриран php.ini

Docker Compose е мощен инструмент, който позволява лесно управление на множество контейнери и тяхната конфигурация. В това ръководство ще ви покажа как да инсталирате WordPress с Docker Compose стъпка по стъпка, дори ако сте начинаещ.
Предпоставки
Преди да започнете, уверете се, че имате инсталирани следните програми на вашия компютър:
- Docker
- Docker Compose
Можем да ги инсталираме с:
curl -fsSL https://get.docker.com -o install-docker.sh
sudo sh install-docker.sh
Можете да проверите дали са инсталирани правилно, като изпълните следните команди в терминала:
docker --version
docker-compose --version
Стъпка 1: Създаване на проектна директория
Първо, създайте необходимата структура от директории и файлове:
mkdir -p wordpress/config wp-content
cd wordpress
touch docker-compose.yml .env config/php.ini
2. Конфигуриране на php.ini
Редактирайте config/php.ini
и добавете следните основни настройки:
; Основни настройки
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
; Грешки и логване
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
; Оптимизации
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=200
; Настройки за WordPress
max_file_uploads = 20
allow_url_fopen = On
short_open_tag = Off
Стъпка 2: Създаване на Docker Compose файл
Създайте файл с име docker-compose.yml
в новата директория. Можете да използвате следния пример:
version: '3.8'
services:
db:
image: mysql:8.0
container_name: wordpress_db
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpass}
MYSQL_DATABASE: ${MYSQL_DATABASE:-wordpress}
MYSQL_USER: ${MYSQL_USER:-wpuser}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-wppass}
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
wordpress:
image: wordpress:latest
container_name: wordpress_app
depends_on:
db:
condition: service_healthy
ports:
- "8181:80"
restart: always
volumes:
- wordpress:/var/www/html
- ./wp-content:/var/www/html/wp-content
- ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: ${MYSQL_DATABASE:-wordpress}
WORDPRESS_DB_USER: ${MYSQL_USER:-wpuser}
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD:-wppass}
volumes:
db_data:
driver: local
wordpress:
driver: local
Стъпка 3: Създаване на .env файл (по избор)
Ако искате да използвате различни стойности от тези по подразбиране, създайте файл .env
в същата директория:
# MySQL настройки
MYSQL_ROOT_PASSWORD=your_strong_root_password
MYSQL_DATABASE=wordpress
MYSQL_USER=wpuser
MYSQL_PASSWORD=your_strong_db_password
# WordPress настройки (по избор)
WORDPRESS_DEBUG=0
Стъпка 4: Стартиране на контейнерите
Изпълнете следната команда в директорията, където се намира вашият docker-compose.yml
файл:
docker-compose up -d
Тази команда ще:
- Изтегли необходимите Docker образи (ако не са вече изтеглени)
- Създаде и стартира контейнерите в background режим (
-d
флаг)
Стъпка 5: Проверка на работещите контейнери
Можете да проверите състоянието на вашите контейнери с:
docker-compose ps
Или за повече подробности:
docker ps
Стъпка 6: Достъп до WordPress инсталация
След като контейнерите са стартирани, можете да достъпите WordPress инсталацията на:
http://10.110.110.110:8080
Трябва да видите началната страница на WordPress инсталацията. Следвайте стъпките на екрана, за да завършите инсталацията.
Предимства на този подход:
- Предварителна PHP конфигурация – Не чакаме да възникнат проблеми с лимитите
- Лесна промяна на настройки – Можете да редактирате php.ini без да рестартирате контейнерите (в някои случаи)
- Стандартизирана среда – Всички инсталации ще използват еднакви PHP настройки
- По-добра сигурност – display_errors е изключен по подразбиране
Допълнителни съвети:
За да видите дали PHP настройките са заредени правилно:
docker exec wordpress_app php -i | grep "memory_limit"
Ако правите промени в php.ini, най-сигурно е да рестартирате контейнера:
docker-compose restart wordpress
За да логвате PHP грешките:
docker exec wordpress_app touch /var/log/php_errors.log
docker exec wordpress_app chown www-data:www-data /var/log/php_errors.log
Стъпка 7: Конфигуриране на WordPress
- Изберете език и кликнете "Continue"
- Попълнете информацията за администраторския акаунт:
- Заглавие на сайта
- Потребителско име (избегнете "admin" за по-добра сигурност)
- Парола (използвайте силна парола)
- Вашия email адрес
- Кликнете "Install WordPress"
- След успешна инсталация, кликнете "Log In" и влезте с вашите данни
Обновяване на WordPress
За да обновите WordPress до най-новата версия, просто изпълнете:
docker-compose pull wordpress
docker-compose up -d
Заключение
Инсталирането на WordPress с Docker Compose е мощен и гъвкав начин за създаване на локална или продукционна среда. Този метод предлага:
- Лесно управление на зависимостите (PHP, MySQL)
- Просто копиране и преместване на средата между различни машини
- Автоматично обновяване на софтуера
- Добра изолация от основната система
След като сте настроили вашата WordPress инсталация, можете да започнете да инсталирате теми и плъгини, да създавате съдържание и да експериментирате, без да се притеснявате, че ще повредите нещо на вашия основен компютър.
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut