رفتن به محتوای اصلی
iserver24 | ارائه‌کننده سرورهای ابری و اختصاصی
نصب وردپرس با Docker Compose (راهنمای جامع)

نصب وردپرس با Docker Compose (راهنمای جامع)

در این آموزش، نحوه راه‌اندازی وردپرس با Docker Compose به‌صورت چندکانتینری و استاندارد آموزش داده شده است. این ساختار شامل MySQL، WordPress، Nginx و SSL رایگان Let’s Encrypt با تمدید خودکار است. با این روش، وردپرس سریع‌تر، امن‌تر و بدون نیاز به نصب دستی LAMP/LEMP راه‌اندازی می‌شود.

نصب وردپرس با Docker Compose در ۲۰۲۶ (راهنمای کامل گام به گام)

در این آموزش عملی و گام به گام یاد می‌گیریم چگونه وردپرس را با استفاده از Docker و Docker Compose روی یک سرور لینوکسی (مثلاً Ubuntu) نصب و راه‌اندازی کنیم. این روش نسبت به نصب سنتی LAMP/LEMP سریع‌تر، قابل اطمینان‌تر و استانداردتر است و مناسب برای محیط‌های توسعه و تولید می‌باشد.

📌 فهرست محتوا

۱. پیش‌نیازها

  • سرور یا سیستم Ubuntu (ترجیحاً نسخه‌های جدیدتر)
  • دسترسی به ترمینال و کاربر با مجوز sudo
  • نصب Docker
  • نصب Docker Compose
  • دامنه معتبر به همراه رکوردهای DNS

اگر Docker یا Docker Compose را نصب نکرده‌اید، می‌توانید از مراحل زیر استفاده کنید:

۲. نصب Docker و Docker Compose

برای نصب Docker:

3 خط
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable --now docker
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

برای نصب Docker Compose:

3 خط
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اکنون Docker و Docker Compose روی سرور شما نصب و آماده استفاده هستند. :contentReference[oaicite:0]{index=0}

۳. ساخت فایل .env و مدیریت متغیرهای محیطی

یک فایل متنی به نام .env در پروژه ایجاد کنید تا اطلاعات حساس مانند رمز دیتابیس در آن نگهداری شود:

4 خط
MYSQL_ROOT_PASSWORD=your_root_password
MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=wp_password
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این فایل را در .gitignore و .dockerignore قرار دهید تا اطلاعات حساس به مخزن کد منتقل نشود. :contentReference[oaicite:1]{index=1}

۴. ساخت فایل docker-compose.yml

در همان دایرکتوری یک فایل به نام docker-compose.yml ایجاد کرده و محتوای زیر را در آن قرار دهید:

38 خط
version: "3.9"

services:
  db:
    image: mysql:5.7
    container_name: wp_mysql
    restart: always
    env_file:
      - .env
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    container_name: wp_app
    depends_on:
      - db
    ports:
      - "80:80"
    restart: always
    env_file:
      - .env
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: ${MYSQL_USER}
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این فایل شامل دو سرویس اصلی است:

  • db: پایگاه داده MySQL
  • wordpress: برنامه وردپرس

داده‌های کانتینرها با volumes ذخیره می‌شوند تا هنگام حذف کانتینرها حذف نشوند. :contentReference[oaicite:2]{index=2}

۵. اجرای کانتینرها

برای ساخت و اجرای کانتینرها:

docker-compose up -d
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

این دستور کانتینرها را در حالت پس‌زمینه اجرا می‌کند. برای بررسی وضعیت آن‌ها می‌توانید از دستور زیر استفاده کنید:

docker-compose ps
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

۶. تکمیل نصب وردپرس

پس از اجرای موفق کانتینرها، مرورگر خود را باز کرده و به آدرس دامنه یا IP سرورتان بروید تا مراحل گرافیکی نصب وردپرس را مشاهده کنید:

  • انتخاب زبان
  • تنظیم نام سایت
  • ساخت حساب کاربری مدیر
  • ورود به داشبورد مدیریت

نصب وردپرس مشابه نصب سنتی خواهد بود اما اکنون برنامه در کانتینرهای Docker اجرا می‌شود. :contentReference[oaicite:3]{index=3}

۷. نکات امنیتی و بهترین شیوه‌ها

  • اطلاعات حساس در فایل .env نگهداری شود و به مخزن کد منتقل نشود. :contentReference[oaicite:4]{index=4}
  • برای محیط production از SSL و HTTPS استفاده کنید.
  • در صورت نیاز، Nginx/Traefik را به‌عنوان reverse-proxy برای مدیریت ترافیک و SSL تنظیم کنید. :contentReference[oaicite:5]{index=5}
  • دیتابیس را در Volume جدا نگه دارید تا داده‌ها حفظ شوند حتی بعد از حذف کانتینرها.

۸. سوالات متداول (FAQ)

آیا با حذف کانتینرها اطلاعات سایت حذف می‌شود؟

خیر. اطلاعات در volumes ذخیره می‌شود و با حذف کانتینرها باقی می‌ماند.

چگونه SSL را فعال کنم؟

برای SSL می‌توانید از Nginx/Traefik همراه با Let’s Encrypt استفاده کنید که در ادامه آموزش‌های دیگر به آن پرداخته می‌شود. :contentReference[oaicite:6]{index=6}

چطور از خطای اتصال به پایگاه داده جلوگیری کنم؟

اطمینان حاصل کنید متغیرهای فایل .env صحیح و کانتینر db قبل از وردپرس اجرا شده باشد. توجه کنید WORDPRESS_DB_HOST برابر db:3306 تنظیم شده باشد.

— پایان مقاله —

    نصب وردپرس با Docker Compose (راهنمای جامع) | زیرساخت ابری iServer24 | iserver24