מדריך התקנת סביבה מקומית של וורדפרס עם Docker

הקדמה

בעולם הפיתוח, יצירת סביבה מקומית של וורדפרס עם Docker שדומה לסביבת הייצור (Production) יכולה להיות אתגר לא קטן. כאן נכנס לתמונה Docker. דוקר הוא כלי המאפשר הרצה של תוכנות בתוך קונטיינרים, שהם סביבות מבודדות המאפשרות להפעיל יישומים עם כל התלויות שלהם (כגון גרסאות PHP, MySQL, Apache וכו') מבלי להשפיע על המערכת המארחת.

סביבה מקומית של וורדפרס עם Docker

למה צריך Docker?

דוקר מאפשר למפתחים להקים במהירות סביבה מדויקת וסטנדרטית (עם גרסאות ספציפיות ומדוייקות), שבאמצעותה ניתן לפתח, לבדוק ולהעלות קוד לפרודקשן. היתרון המרכזי בדוקר הוא שבזכות הקונטיינרים, אפשר להבטיח שהקוד יעבוד אותו הדבר בכל סביבת עבודה – מהמחשב המקומי שלך ועד השרת בענן.

יתרונות של סביבה מקומית של וורדפרס עם Docker:

  • תאימות בין סביבות: קונטיינרים מבטיחים שכל הקוד והתלויות ירוצו בצורה זהה בכל מכונה, בין אם מדובר בסביבת פיתוח, סביבת בדיקות או סביבת ייצור.
  • פשטות ונוחות: ניתן להקים סביבות בקלות באמצעות פקודות פשוטות, ולשחזר אותן על כל מכשיר.
  • בידוד מלא: כל קונטיינר פועל בצורה מבודדת מהמערכת הראשית, כך שאין התנגשות עם התקנות קיימות.
  • תחזוקה קלה: בעזרת קבצי docker-compose.yaml, ניתן להגדיר בקלות את כל השירותים
    (כגון MySQL, WordPress, Adminer וכו') ולנהל אותם בצורה פשוטה.

אפשרויות אחרות לדוקר:

לפני ש-Docker הפך לפופולרי, מפתחים היו משתמשים בכלים כמו XAMPP או WAMP ליצירת סביבות פיתוח מקומיות. כלים אלו מאפשרים להפעיל שרת Apache, MySQL ו-PHP על המחשב המקומי, אך הם חסרים את היתרונות של בידוד קונטיינרים שמספק דוקר. לדוגמה:

  • XAMPP/WAMP/MAMP: אלו סביבות התקנה מקומיות המאפשרות להקים שרתי PHP ו-MySQL בקלות. החיסרון המרכזי שלהן הוא שהן מתקינות את התוכנות על המערכת המארחת, מה שעלול ליצור בעיות תאימות.
  • Virtual Machines (מכונות וירטואליות): פתרון נוסף הוא שימוש במכונות וירטואליות (VM) כמו VirtualBox או Vagrant. אמנם VM מספקת בידוד מלא, אך החיסרון הוא שהיא כבדה יותר בצריכת משאבים ודורשת יותר תחזוקה בהשוואה לקונטיינרים של דוקר.

באמצעות Docker ניתן להימנע מבעיות תאימות ושימוש לא רצוי במשאבי מערכת, וליהנות מפשטות ויעילות בעבודה השוטפת.

שלב 1: התקנת Docker

לפני שנוכל להתחיל, ודא ש-Docker מותקן במחשב שלך:

שלב 2: יצירת מבנה הקבצים

בתחילת העבודה, ניצור את מבנה התיקיות הדרוש עבור הסביבה שלנו. הנה המבנה שנשתמש בו:

- docker-compose.yaml
- logs/debug.log
- db/
- config/php.ini
- config/apache-config
- config/wp-config.php
- themes/my-theme/
- plugins/my-plugin/

שלב 3: יצירת קובץ docker-compose.yaml

ניצור את הקובץ docker-compose.yaml אשר יגדיר את הסביבה. פתח את עורך הטקסט שלך והוסף את התוכן הבא:

version: '3.8'

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    platform: linux/amd64
    restart: always
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./themes/my-theme:/var/www/html/wp-content/themes/my-theme
      - ./plugins/my-plugin:/var/www/html/wp-content/plugins/my-plugin
      - ./config/wp-config.php:/var/www/html/wp-config.php
      - ./logs:/var/www/html/logs
      - ./config/php.ini:/usr/local/etc/php/php.ini
      - ./config/apache-config:/etc/apache2/sites-available/000-default.conf
    depends_on:
      - db

  db:
    image: mysql:5.7
    container_name: db
    platform: linux/amd64
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - ./db:/var/lib/mysql

  adminer:
    image: adminer
    container_name: adminer
    platform: linux/amd64
    restart: always
    ports:
      - "8081:8080"

שימו לב לפרטי התחברות לבסיס נתונים לא לשכוח להחליף את הפרטי הדמו

שלב 4: יצירת wp-config.php

תיקיית core תכיל את קובץ wp-config.php, אשר מכיל את ההגדרות של וורדפרס. בקובץ זה יש להוסיף את ההגדרות הבאות:

<?php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'wppassword' );
define( 'DB_HOST', 'db' );
$table_prefix = 'wp_';

// הפעלת דיבוג ושמירת לוגים
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', '/var/www/html/logs/log.debug' );
define( 'WP_DEBUG_DISPLAY', false );

// הגדרות נוספות
define('AUTH_KEY', '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY', '');
define('NONCE_KEY', '');
define('AUTH_SALT', '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT', '');
define('NONCE_SALT', '');

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');

שלב 5: יצירת קבצי קונפיגורציה נוספים

  • config/php.ini – קובץ זה יכיל הגדרות PHP מותאמות אישית (לדוגמה: זמן מקסימלי לביצוע, גודל קובץ מקסימלי להעלאה):
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
  • config/apache-config – קובץ זה יכיל את ההגדרות של Apache:
<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

שלב 6: הפעלת הסביבה עם Docker

לאחר שיצרנו את כל הקבצים הדרושים, נוכל להפעיל את הסביבה באמצעות הפקודות הבאות:

  • הפעלת הסביבה:
docker-compose up -d
  • כדי לבדוק את הלוגים של וורדפרס:
docker-compose logs wordpress
  • גישה לממשק וורדפרס: פתח דפדפן וגש לכתובת http://localhost:8080.
    אם הכל תקין, וורדפרס יעלה ותוכל להתחיל לעבוד על התבנית והפלאגינים האישיים שלך.
  • גישה לממשק Adminer לניהול בסיס הנתונים: http://localhost:8081.

שלב 7: פיתוח תבנית ופלאגינים אישיים

  • תבנית אישית: תוכל לערוך את קבצי התבנית האישית שלך בתיקייה themes/my-theme
    ולראות את השינויים ישירות בסביבת וורדפרס.
  • פלאגינים אישיים: ניתן לפתח פלאגינים אישיים בתיקייה plugins/my-plugin.

שלב 8: תחזוקה ועבודה שוטפת

במידה ואתה רוצה לכבות את הסביבה:

docker-compose down

אם תרצה לבצע ניקוי מוחלט, כולל מחיקת קונטיינרים וקבצי נתונים:

docker-compose down --volumes --rmi all

סיכום והיתרונות של עבודה עם Docker

היתרון המשמעותי בעבודה בסביבה מקומית של וורדפרס עם Docker הוא שאתה יכול לעבוד על פיתוח תבניות ופלאגינים בצורה מסודרת ומבודדת, תוך שמירה על סביבה אחידה בין סביבת הפיתוח המקומית שלך לבין השרת בייצור.

למה סביבה מקומית של וורדפרס עם Docker זה טוב?

בידוד מלא ומניעת בעיות תאימות: כאשר אתה מפתח על הסביבה המקומית שלך, ייתכן שהגרסאות של PHP, MySQL, או אפילו הספריות שאתה משתמש בהן שונות מהשרת שבו האתר רץ בפועל. בעזרת Docker, אתה יכול להגדיר את הסביבה המדויקת שבה האתר שלך ירוץ בכל מקום, ולמנוע בעיות תאימות בין הסביבות.

קלות ניהול תלויות: כל התלויות (כמו גרסאות PHP, MySQL, ותוספות אחרות) מוגדרות בתוך קבצי הקונפיגורציה של Docker. זה מבטיח שצוות הפיתוח וכל מי שעובד על הפרויקט יוכל להקים את הסביבה המקומית בקלות באמצעות פקודות Docker פשוטות, ללא צורך בהתקנות מסובכות או תלויות מערכת מיוחדות.

סנכרון מלא בין תבניות ופלאגינים: Docker מאפשר לך לעבוד ישירות על קבצי התבניות והפלאגינים במערכת הקבצים המקומית שלך. כך תוכל לערוך אותם בזמן אמת ולראות את השינויים מיידית בסביבת וורדפרס המקומית שלך. הסנכרון הזה הופך את תהליך הפיתוח למהיר ואפקטיבי.

שמירה על פרויקט נקי וניהול קבצים חכמים עם Git: העבודה עם Docker מאפשרת להעלות לגיט רק את הקבצים החיוניים של הפרויקט (כגון התבנית והפלאגינים) ולהימנע מקבצים זמניים ומיותרים כמו לוגים, קבצי Cache, וקבצי תלויות זמניות. באמצעות קובץ .gitignore שהגדרנו, אתה יכול להבטיח ש-Git יתעלם מקבצים מיותרים כמו קבצי לוגים (logs/), נתוני בסיס הנתונים המקומיים (db/), וקבצי תלויות מקומיות (כמו node_modules/).

קלות בפריסה לשרת: כאשר הפרויקט מוכן לייצור, ניתן בקלות להעלות את התבנית והפלאגינים ל-Git מבלי להעלות קבצים מיותרים. זה מבטיח פרויקט נקי ומסודר שניתן לפרוס בקלות על כל שרת, ללא קבצים שיכבידו על ניהול הקוד והסביבה.

יתרון נוסף – Docker על שרת בייצור

אם תרצה להרחיב את השימוש בדוקר מעבר לסביבת הפיתוח, תוכל גם להעלות את הסביבה המבוססת דוקר לשרת בייצור (Production) וליהנות מסביבה אחידה לחלוטין, בדיוק כמו שהגדרת בסביבת הפיתוח. זה מקטין סיכונים הקשורים למעבר מסביבה אחת לשנייה ומאפשר תחזוקה נוחה יותר בעת שדרוגים ושינויים.

Scroll to Top
דילוג לתוכן