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 וניתן לגשת אליו ממחשב אחר – לעדכן קבצים ולצפות בתוצאה.