התקנת שרת פיתוח אובונטו

WAMP Server הוא כלי מאד נחמד להרצת Apache, PHP ו-MySQL כאשר אנו מפתחים אתרים בסביבת חלונות. אך שרת פיתוח עצמאי מבוסס לינוקס טוב הרבה יותר לכל מפתח מהסיבות הבאות:
1. תאימות מקסימלית בין סביבת הפרודקשן לסביבת הפיתוח.
2. גמישות של סביבת הפיתוח מבחינת משאבים, מקום.
3. גמישות בכל נושא הגיבויים, קל הרבה יותר לגבות בלינוקס.
4. אפשרות הוספת מפתחים נוספים לצוות ועבודה על אותה גרסה.
5. קל הרבה יותר לעשות Deployment

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

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

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

התקנת אובונטו – גרסת שרת

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

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

לכתוב:


sudo nano /etc/apt/sources.list



ולהכניס את השורות הבאות: 

deb http://archive.ubuntu.com/ubuntu feisty universe multiverse
deb-src http://archive.ubuntu.com/ubuntu feisty universe multiverse

ctrl+x ואישור מבצעות את השמירה, לאחר מכן יש לבצע את ההורדה וההתקנה:


sudo aptitude update

sudo aptitude install kubuntu-desktop

לאחר שהמחשב יאותחל אנו נכנס לממשק גרפי שמזכיר את חלונות. נחפש את System בתפריט ונבחר ב-Konsole.

בדיקת ה-IP

אם לא הגדרתם למחשב בראוטר IP משלו (עדיף לעשות את זה וכל ראוטר מאפשר לעשות את זה בקלות) יש לבדוק את ה-IP ברשת הפנימית באופן הבא


ifconfig

(כן, זה ifconfig ולא ipconfig). כאשר ה-inet addr הוא ה-ip שאנו מחפשים. ננסה לגשת ממחשב אחר אל ה-IP הזה באמצעות הקלדתו בשדה של ה-Browser. אם הכל תקין אנו נראה כיתוב: It Works! – סימן ששרת ה-Apache עובד כשורה.
הגדרת ה-MySQL מוסברת בפרוטרוט במאמר על הגדרת MySQL בשרת לינוקס.

התקנת Samba Server

Samba Server: שירות שמאפשר לנו אינטגרציה בין מחשבים שמריצים חלונות (המחשב שעליו אנו מפתחים) לבין שרת הפיתוח. האינטגרציה מאפשרת לנו להגדיר את הקבצים בשרת הפיתוח ככונן וירטואלי (N) ולהעביר אליו קבצים.

ראשית אנו נוריד ונתקין את Samba Server


sudo apt-get install samba

לאחר ההתקנה נעצור את Samba Server:


sudo /etc/init.d/samba stop

כעת נקנפג את קובץ ההגדרות של Samba Server, ראשית אנו נגבה אותו:


sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.template

ניצור קובץ הגדרות חדש:


sudo nano /etc/samba/smb.conf

אנו נכניס את הטקסט הבא:


[global]
    ; General server settings
    netbios name = YOUR_HOSTNAME
    server string =
    workgroup = YOUR_WORKGROUP
    announce version = 5.0
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

    passdb backend = tdbsam
    security = user
    null passwords = true
    username map = /etc/samba/smbusers
    name resolve order = hosts wins bcast

    wins support = yes

    printing = CUPS
    printcap name = CUPS

    syslog = 1
    syslog only = yes

; NOTE: If you need access to the user home directories uncomment the
; lines below and adjust the settings to your hearts content.
;[homes]
    ;valid users = %S
    ;create mode = 0600
    ;directory mode = 0755
    ;browseable = no
    ;read only = no
    ;veto files = /*.{*}/.*/mail/bin/

; NOTE: Only needed if you run samba as a primary domain controller.
; Not needed as this config doesn't cover that matter.
;[netlogon]
    ;path = /var/lib/samba/netlogon
    ;admin users = Administrator
    ;valid users = %U
    ;read only = no

; NOTE: Again - only needed if you're running a primary domain controller.
;[Profiles]
    ;path = /var/lib/samba/profiles
    ;valid users = %U
    ;create mode = 0600
    ;directory mode = 0700
    ;writeable = yes
    ;browseable = no

[print$]
    path = /var/lib/samba/printers
    browseable = yes
    guest ok = yes
    read only = yes
    write list = root
    create mask = 0664
    directory mask = 0775

[printers]
    path = /tmp
    printable = yes
    guest ok = yes
    browseable = no

; Uncomment if you need to share your CD-/DVD-ROM Drive
;[DVD-ROM Drive]
    ;path = /home
    ;browseable = yes
    ;read only = yes
    ;guest ok = yes

[MyFiles]
    path = /media/samba/
    browseable = yes
    read only = no
    guest ok = no
    create mask = 0644
    directory mask = 0755

YOUR_HOSTNAME – זה השם של המחשב כפי שהוא יוצג ברשת. אפשר לבחור כל שם שרוצים, אני בוחר בדרך כלל את השם ubuntu.
YOUR_WORKGROUP – השם של קבוצת העבודה (בדרך כלל ברשת ביתית זה MSHOME). על מנת לבדוק מה שם קבוצת העבודה שלך יש לעשות את הצעדים הבאים:
1. מגיעים ללוח הבקרה
2. בחירה ב-System
3. בחירה בלשונית Computername ושם יש את שם הקבוצה.

נפעיל מחדש את Samba Server:


sudo /etc/init.d/samba start

ונגדיר את עצמנו בתור משתמשים. חשוב לבחור באותו שם משתמש וסיסמה שבהם הגדרת את עצמך באובונטו.


sudo smbpasswd -L -a your_username
sudo smbpasswd -L -e your_username

עכשיו נלך למחשב חלונות ונראה אם המחשב שלנו קיים ברשת באמצעות לחיצה על Start ואז על Run:


\\ubuntu

אם הכל תקין, אנו נקבל חלון שמבקש שם משתמש וסיסמה. נקליד את שם המשתמש והסיסמה שלנו ונוכל להכנס ל-home ומשם לתיקית המשתמש שלנו.
ניתן להגדיר גם כונן רשת: לחיצה ימנית על המחשב שלי ואז Map Network Drive, בחירה בשם הכונן והקלדה של הנתיב (ubuntu/home//).

עבודה מרחוק על השרת באמצעות PuTTY

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

הגדרת Virtual Host

למרות שבאופן עקרוני אנו יכולים להתחיל ולפתח ולהשתמש ב-ip ככתובת שלנו, יותר נעים ונחמד לעשות את זה עם Virtual Host – ליצור לכל פרויקט ופרויקט כתובת פרטית משלו כמו למשל barzik.dev.il.

איך עושים את זה? די פשוט:

נניח ואני רוצה את הדומיין: barzik.dev.il עלי ליצור קובץ בשם barzik.dev.il שיכיל את הגדרות הדומיין


nano /etc/apache2/sites-available/barzik.dev.il

ולתוכו נעתיק את התוכן הבא:


<virtualhost *:80>
ServerName barzik.dev.il
ServerAdmin [email protected]
DocumentRoot /var/www/
</virtualhost>

אחרי כן, אני אריץ את הפקודה הבאה שיוצרת קישור סימבולי מ-sites-enabled ומפעילה את האתר:


a2ensite barzik.dev.il

ומפעילים מחדש את ה-Apache:


sudo /etc/init.d/apache2 restart

כל מה שנותר לי לבסוף זה להגדיר את ה-hosts במחשב החלונות. נכנסים ל: system32/drivers/etc ומוסיפים לקובץ ה-host את השורות הבאות:


barzik.dev.il          ip.address

כשה-IP של השרת הוא ip.address כמובן.
אחרי שנפעיל מחדש את הדפדפן (חובה) נוכל להכניס barzik.dev.il בחלון הדפדפן ולגלוש לשרת הפנימי שלנו (ולראות it works).

ניתן להגדיר כמה וכמה כתובות באופן הזה. אחת לכל אתר.

זהו! עכשיו יש לנו שרת מתפקד, המכיל PHP ו-MySQL וניתן לגשת אליו ממחשב אחר – לעדכן קבצים ולצפות בתוצאה.

פוסטים נוספים שכדאי לקרוא

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

פיתוח ב-JavaScript

Axios interceptors

תכנון נכון של קריאות AJAX באפליקציה ריאקטית וניהול השגיאות או ההצלחות עם פיצ׳ר נחמד של axios

פתרונות ומאמרים על פיתוח אינטרנט

רינדור של קליינט סייד עם SSR

הסבר קצר על SSR מול רינדור קלאסי ולא. לא תמיד זה טוב להשתמש בו. אין כדור כסף שיכול לפתור הכל.

גלילה לראש העמוד