פיתוח אתרים עם AI
דברו איתי WPSITE.CO.IL

וורדפרס

סביבת פיתוח וורדפרס מקומית עם Docker ו-DDEV

אם אתם בונים אתרי וורדפרס, יש סיכוי טוב שכבר יש לכם סביבה מקומית כלשהי. LocalWP, XAMPP, אולי MAMP מהימים ההם. הן עובדות. אבל ברגע שהאתר עולה לשרת אמיתי, מתחיל הכאב המוכר: משהו ש”עבד אצלי” פתאום נשבר. גרסת PHP אחרת. תוסף שמתנהג שונה. שגיאה שאי אפשר לשחזר מקומית.

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

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

למה סביבה מקומית “רגילה” לא מספיקה

הבעיה עם רוב הכלים הקלים היא לא האיכות שלהם, אלא המרחק מהשרת.

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

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

מה הופך סביבה ל”מקצועית”

שלושה דברים עוזרים לסביבה מקומית להתקרב לייצור:

  • מבודדת. כל פרויקט חי בקופסה משלו, נקייה וחד-פעמית. אין התנגשויות בין גרסאות, אין “התקנתי משהו לפרויקט אחד וזה שבר אחר”.
  • ניתנת להתאמה לייצור. אפשר לבחור גרסת PHP, סוג מסד נתונים וסוג שרת אינטרנט שקרובים למה שרץ בשרת האמיתי. זו אינה זהות מלאה, אבל זו נקודת פתיחה טובה יותר לאיתור פערים.
  • מונחית-קוד. את כל ההגדרות מתארים בקובץ, לא בלחיצות בממשק. זה אומר שאפשר לשחזר את הסביבה, לשתף אותה, ולהריץ אותה על מחשב אחר בלי לזכור מה לחצתם לפני חצי שנה.

DDEV נותן את שלושת אלה כברירת מחדל.

צילום מסך של הקובץ config.yaml פתוח בעורך VS Code
הקובץ .ddev/config.yaml, כל הסביבה מתוארת בקוד, כולל גרסת PHP ומסד הנתונים.

Docker בשתי דקות

כדאי להבין מה רץ מתחת, גם אם בפועל כמעט לא תיגעו ב-Docker ישירות.

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

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

למה דווקא DDEV

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

אפשר להריץ Docker לבד, אבל בלי שכבה מעליו תמצאו את עצמכם כותבים קובצי docker-compose.yml ביד ומתחזקים אותם לכל פרויקט. זה עובד, אבל זו עבודה. DDEV מייצר את כל זה אוטומטית: stack וורדפרס תקני, עם HTTPS וכלים, בפקודה אחת.

ומול הכלים הקלים כמו LocalWP? שם אתם מקבלים נוחות, אבל מאבדים שליטה. DDEV נותן לכם:

  • שליטה אמיתית בגרסאות, בוחרים PHP ומסד נתונים שתואמים לשרת.
  • wp-cli מובנה, בלי להתקין כלום.
  • סביבה ניידת, אותה הגדרה רצה על כל מחשב, ונשמרת ב-git לצד הקוד.

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

דרישות מקדימות והתקנה

צריך שני דברים: Docker provider שמריץ את הקונטיינרים, ו-DDEV שמנהל את סביבת הפיתוח.

מנוע הקונטיינרים

Docker Desktop (נפתח בלשונית חדשה)

הוא אפשרות פשוטה ב-macOS וב-Windows, אך DDEV תומך גם ב-OrbStack, ב-Colima ובמנועים נוספים. ב-Windows עם WSL2 אפשר להשתמש ב-Docker CE בתוך WSL2, וזו האפשרות המומלצת כיום בתיעוד של DDEV.

לפי תנאי הרישוי של Docker Desktop (נפתח בלשונית חדשה), השימוש ללא תשלום מותר לשימוש אישי, ללימודים, לפרויקטים לא מסחריים בקוד פתוח ולעסקים עם פחות מ-250 עובדים וגם פחות מ-10 מיליון דולר בהכנסה שנתית. ארגון שחורג מאחד הספים נדרש למנוי בתשלום. התנאים עשויים להשתנות, לכן בדקו אותם לפני שימוש מסחרי.

רוב העבודה תהיה בשורת הפקודה, אבל מנוע הקונטיינרים שבחרתם עדיין צריך לרוץ ברקע. שורת הפקודה מדברת איתו, היא לא מחליפה אותו.

את DDEV

ההתקנה משתנה מעט בין מערכות ההפעלה:

חלון טרמינל
brew install ddev/ddev/ddev
mkcert -install

בדיקת שפיות

לפני שממשיכים, ודאו ששני הדברים במקום (ב-Windows, מתוך טרמינל ה-WSL2):

חלון טרמינל
ddev --version

אם קיבלתם מספר גרסה ומנוע הקונטיינרים רץ ברקע, אתם מוכנים.

צילום מסך של טבלת ddev describe בטרמינל
ddev describe, סקירה של השירותים, גרסאות ה-PHP/מסד הנתונים וכתובות הפרויקט.

מקימים את אתר הוורדפרס הראשון

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

תיקיית הפרויקט וההגדרה

צרו תיקייה לפרויקט והיכנסו אליה:

חלון טרמינל
mkdir my-wordpress-site && cd my-wordpress-site
ddev config --project-type=wordpress --docroot=.

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

מעלים את הסביבה

חלון טרמינל
ddev start

בפעם הראשונה זה ייקח רגע: DDEV מוריד את ה-images, מקים את הקונטיינרים ומנפיק תעודת HTTPS מקומית. לאחר mkcert -install רוב הדפדפנים יבטחו בה אוטומטית; דפדפנים או התקנות חריגות עשויים לדרוש הגדרה נוספת. כשהתהליך מסתיים, תקבלו את כתובת האתר המקומי.

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

מתקינים את וורדפרס

מכאן wp-cli כבר עובד דרך DDEV, בלי שהתקנתם אותו בנפרד:

חלון טרמינל
ddev wp core download
ddev wp core install \
--url='$DDEV_PRIMARY_URL' \
--title='My WordPress Site' \
--admin_user=admin \
--prompt=admin_password

המשתנה $DDEV_PRIMARY_URL מקבל את כתובת הפרויקט מתוך DDEV. הפרמטר --prompt=admin_password מבקש את הסיסמה בזמן ההרצה, כך שהיא לא נשמרת בפקודה ובהיסטוריית ה-shell. אפשר גם לפתוח את האתר בדפדפן ולעבור על אשף ההתקנה הרגיל של וורדפרס.

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

הרגע שהכל מתחבר

חלון טרמינל
ddev launch

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

צילום מסך של האתר המקומי פתוח בדפדפן בכתובת ddev.site
אתר הוורדפרס המקומי החדש פתוח בדפדפן בכתובת ddev.site.

כדי לראות את כל הפרטים של הפרויקט בכל רגע (כתובות, פורטים, פרטי מסד הנתונים):

חלון טרמינל
ddev describe

לאן ממשיכים מכאן

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

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

תיקיית .ddev היא גם בסיס לשיתוף סביבת העבודה בצוות ולחיבור שלה בהמשך ל-Git ולתהליך פריסה מסודר.

תגובות

טוען תגובות…

השארת תגובה

התגובות עוברות אישור לפני הפרסום.

בואו נעבוד יחד

אני בונה אתרים ומוצרים עם AI, מלווה צוותים בתהליכי עבודה ומעביר הרצאות וסדנאות.

דברו איתי