גל חדד MSc במערכות מידע

וורדפרס

וורדפרס

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

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

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

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

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

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

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

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

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

שלושה דברים, ובלעדיהם הסביבה לא באמת תואמת-ייצור:

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

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

הקובץ .ddev/config.yaml, כל הסביבה מתוארת בקוד, כולל גרסת PHP ומסד הנתונים.

Docker בשתי דקות

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

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

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

למה דווקא DDEV

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

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

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

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

אני לא מזלזל ב-LocalWP. הוא קל, מהיר, ומצוין להתחלות מהירות. אבל כשאתם רוצים stack שמשקף שרת אמיתי, DDEV מנצח.

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

נתקין שני דברים: את המנוע (Docker) ואת DDEV עצמו.

את המנוע: Docker Desktop

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

נכון, רוב העבודה שלנו תהיה בשורת הפקודה, אבל Docker Desktop עדיין צריך להיות פעיל ברקע. הוא המנוע שמריץ את הקונטיינרים; שורת הפקודה רק מדברת איתו. אז ודאו שהוא רץ לפני שמפעילים פרויקט DDEV.

את DDEV

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

  • macOS: הדרך הנקייה היא דרך Homebrew (ראו בלוק הקוד מתחת).
  • Windows: DDEV רץ בתוך WSL2 (סביבת לינוקס בתוך Windows), וגם Docker Desktop משתמש ב-WSL2 כמנוע. מתקינים את WSL2, ובתוכו את DDEV. ההוראות המעודכנות לכל מערכת, בתיעוד הרשמי של DDEV.
Terminal window
brew install ddev/ddev/ddev

בדיקת שפיות

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

Terminal window
ddev --version

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

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

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

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

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

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

Terminal window
mkdir my-wordpress-site && cd my-wordpress-site
ddev config --project-type=wordpress --docroot=.

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

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

Terminal window
ddev start

בפעם הראשונה זה ייקח רגע: DDEV מוריד את ה-images, מקים את הקונטיינרים, ומנפיק תעודת HTTPS מהימנה אוטומטית. כן, גם מקומית האתר ירוץ על https://. כשזה מסתיים, תקבלו את כתובת האתר המקומי.

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

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

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

Terminal window
ddev wp core download
ddev wp core install \
--url="https://my-wordpress-site.ddev.site" \
--title="My WordPress Site" \
--admin_user=admin \
--admin_password=changeme \
--admin_email=you@example.com

הכתובת ב---url היא זו ש-DDEV הדפיס לכם אחרי ddev start (בדרך כלל https://<שם-הפרויקט>.ddev.site). אם אתם מעדיפים, אפשר פשוט לפתוח את האתר בדפדפן ולעבור על אשף ההתקנה הרגיל של וורדפרס. שתי הדרכים תקינות, אני מעדיף את שורת הפקודה כי היא מהירה ואפשר לשחזר אותה.

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

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

Terminal window
ddev launch

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

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

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

Terminal window
ddev describe

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

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

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

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


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

תגובות

טוען תגובות…

השארת תגובה

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

להישאר בקשר

פעם בכמה שבועות אני שולח מכתב אחד: מה למדתי, מה בניתי, ומה שווה את הזמן שלכם בעולם ה־AI. בלי ספאם, בלי מכירות.

אפשר לבטל בכל רגע, בקליק אחד.