יום שישי, 2 בינואר 2009

כל מה שצריך לפיתוח אתרים במחשב ביתי

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

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

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

קישורים:
  • עמוד הבית של PHP - כולל הורדה של הרכיבים הדרושים, מדריכים רבים ועידכונים.
  • PHP ישראל - נכון לעכשיו האתר הרישמי בארץ, ולמרותש הוא מיושן יש בו הסבר יחסית טוב בנוגע לדברים בסיסיים.
מסד נתונים - MySQL
מסד נתונים [=בסיס נתונים] - קובץ לאחסון נתונים בצורה מסודרת, לשם אחזורם ועיבודם.
אחרי שגמרנו עם ההגרדה הכוללנית שהופכת את הקבצים בעלי סיומת txt למסדי נתונים (ולעיתים אף יעילים), ניתן להתייחס למסד MySQL עצמו, שזהו בסיס נתונים נוח במיוחד שזוכה לפופולאריות רבה בקרב מתכנתים, ומשמשת מערכות רבות בשל הנוחות שבה.
מסד הנתונים MySQL משתמש בתחביר השפה SQL, שפה דיי פשוטה בעלת תחביר פשוט, ואליה מסד נתונים זה מוסיף תוספות תחביר משלו.

קישורים:
  • האתר הראשי של MySQL - כולל הורדה, מדריכים, וחומר רב בנוגע למסד הנתונים.
  • W3School SQL - מדריך ה-SQL באתר W3C (באנגלית).
  • Webmaster SQL - מדריך ה-SQL באתר הפופולארי העברי Webmaster, ישנם גם מדריכי משתמשים מומלצים.
שליטה על מסד הנתונים - phpMyAdmin
מדובר בפרוייקט קוד פתוח שנכתב ב-PHP, ומאפשר לנו שליטה מסויימת וביצוע משימות בקלות במסד הנתונים MySQL.בצורה ויזואלית ונוחה ניתן ליצור ולערוך (ואף למחוק) את מסד הנתונים, הטבלאות שבו, לנהל משתמשים, ועוד מגוון אפשרויות שמקלות מאוד את השימוש ב-MySQL ומאפשרות ביצוע של פעולות בצורה פשוטה וויזואלית.

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

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

חשוב לי להדגיש שקיימות תוכנות רבות, אבל אני ממליץ על WampServer בגלל המגוון אפשרויות שבה, הנוחות והקלות.

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

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

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

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

דבר שמקל בהרבה על העבודה הוא העובדה שרוב הרכיבים אם לא כולם בעלי גירסה מיוחדת ל-USB, דבר שמאפשר לקיחה של סביבת העבודה האהובה עליכם לכל מקום.

המשך פיתוח נעים.

6 תגובות:

אנונימי אמר/ה...

תודה רבה איתי!

בדיוק התקנתי את החלופה easyPHP אבל אני חושב שאני אנסה גם את Wamp ואז אחליט מה יותר טוב.

Itay Alon אמר/ה...

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

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

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

בהצלחה =]

אנונימי אמר/ה...

אחלה מאמר,
אני עובד ב asp אבל טוב גם להכיר את סביבות הפיתוח של php.

אנונימי אמר/ה...

יש את XAMPP שהוא הרבה, הרבה יותר טוב מ-Wamp. הוא הרבה יותר מעודכן, הרבה יותר נוח, פותח לך שרת FTP (אתה זה שדיברת על שיתוף פרוייקטים P: ), מייבא תמיכה בקודי Perl ועוד מלא מלא דברים שפשוט אין ב-Wamp.

מומלץ.

אנונימי אמר/ה...

היי יש לי שאלה קריטית
הורדתי את תוכנת XAMPP ורציתי לדעת מה אני צריך לעשות כדי לעבוד עם דפי PHP

בניית אתר אמר/ה...

תודה עבור הכתבה המעניינת בהחלט ! עולם המחשבים רץ קדימה ולא תמיד פשוט ל"טכנופוב" כמוני לעקוב אף שמשתדל מאוד !