כל הזכויות שמורות לטל בן שושן – Shushan.co.il
הסבר על Virtual Host ב Apache2 | יצירת שתי כתובות בכתובת IP אחת
מהו Virtual Host ולמה הוא כל כך חשוב? כאשר אנו יוצרים שרת ובמיוחד שרת ווב שפונה לעולם עם כתובת IP חיצונית, נאמר 104.24.112.198 (הכתובת החיצונית של השרת שלי) אין לנו כתובות חיצוניות רבות, נוסף על כך אנחנו לא רוצים ליצור לכל אתר שלנו שרת חדש עם כתובת IP חדשה.
אז מה נוכל לעשות? נוכל להקים שרת, לתת לו כתובת IP חיצונית אחת, להתקין 2 אתרים אפילו 5 אתרים ויותר, ולתת לכל אתר כתובת Domain אחר וכולם יהיו על אותו IP, וכיצד מבוצע דבר שכזה?
יש לנו שרת אחד בלבד ומצוות לו כתובת IP חיצונית אחת וכמה אתרים שלכולם שמות דומיין שונים, נאמר
TalBenShushan.com
TalSite2.co.il שני האתרים הללו יושבים על אותה כתובת IP חיצונית, וזה מבוצע על ידי Virtual Host
זאת אומרת Virtual Host מגדיר נתיב בשרת על פי השם DNS זאת אומרת שאם קיים לי הנתיבים הבאים:
http://192.168.1.100/site1 - site1.com http://192.168.1.100/site2 - site2.com
הוא ידע להפנות את האתר site2.com לנתיב http://192.168.1.100/site2 במדויק וכל זאת על פי השם בלבד, שכן יש לנו 2 אתרים על אותה כתובת IP
עברו על המדריך התקנת מערכת תוכן WordPress ושרת Apache, MySql, PhpMyAdmin
צרו שתי אתרים חדשים הנתיב שלהם ב
/var/www/html/
לא משנה, כיוון שאתר אחד יכול להיות בתיקייה הראשית ואחד בתוך תיקייה נאמר
/var/www/html/site2
אז יש לנו שתי אתרים האחד בתוך תיקייה בHTML בשם Site2 והאחד נמצא בתיקייה הראשית
האחד הכתובת שלו זה
http://192.168.1.100/
והשני הכתובת שלו
http://192.168.1.100/site2
כעת נגדיר כתובת לאתר
http://192.168.1.100/
והשם של האתר הזה יהיה TalSite2.co.il
*אני אשנה את קובץ ה Hosts שלי במחשב לכתובות האלו והכתובת ה IP של השרת (כיוון שזה מעבדה הכתובות לא קימות במציאות)
אפתח את קובץ הHosts בווינדוס אצלי בנתיב
C:\Windows\System32\drivers\etc\hosts
והכניס לתוך הקובץ
172.26.0.234 talbenshushan.com 172.26.0.234 talsite2.co.il
כעת אבצע מהCMD של הווינדוס שלי פינג לכתובות
ping talbenshushan.com C:\Users\>ping talbenshushan.com Pinging talbenshushan.com [192.168.1.100] with 32 bytes of data: Reply from 192.168.1.100: bytes=32 time<1ms TTL=64
ועכשיו לאתר talsite2.co.il
C:\Users\>ping talsite2.co.il Pinging talbenshushan.com [192.168.1.100] with 32 bytes of data: Reply from 192.168.1.100: bytes=32 time<1ms TTL=64
מעולה!
החלטנו שהאתר שנמצא בתיקייה הראשית של HTML הוא
http://192.168.1.100/ - talbenshushan.com
והאתר שנמצא בתוך התיקייה site2 הוא
http://192.168.1.100/site2 - talsite2.co.il
אז כיצד נגדיר זאת שכאשר אני אקליד בדפדפן את האתר talsite2.co.il הוא יעביר את המשתמש לנתיב http://192.168.1.100/site2 ואילו המשתמש יקיש talbenshushan.com הוא יגיע ל http://192.168.1.100/?
קודם נגדיר לשרת ה Apache שלנו לטעון כל פעם שהוא עולה קובץ הגדרות חדש, בנתיב מסוים
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
בסוף המסמך בשורה האחרונה הוסיפו את השורה
IncludeOptional sites-enabled/*.conf
כעת שימרו וסגרו את הקובץ
ניצור את התקייה sites-enabled ואת התיקייה /etc/httpd/sites-available וזאת שאחת התיקיות תכיל את הקבצים המקוריים ואילו השניה שממנה יטענו קבצי ההגדרות הם יהיו Symbolic Link
ניצור את התיקיות
[root@localhost httpd]# mkdir /etc/httpd/sites-enabled [root@localhost httpd]# mkdir /etc/httpd/sites-available
וכעת ניצור קובץ הגדרות חדש (שApache יטען כאשר הוא יעלה וכי אמרנו לו לטעון את כל קבצי ה Conf בתקייה הזו)
נתקין את העורך nano
[root@localhost httpd]# vi /etc/httpd/sites-available/talsite2.co.il.conf
כעת נגדיר את הכתובת של האתר ואת הנתיב שלו
<VirtualHost *:80>
ServerName www.talsite2.co.il
ServerAlias talsite2.co.il
DocumentRoot /var/www/html/site2
</VirtualHost>
סימנתי לכם באדום מה צריך לשנות בהתאם לשרת שלכם שמרו וסגרו את הקובץ
כעת נעתיק את הקובץ שעשינו שוב לשם של האתר השני ונשנה בו את ההגדרות לפי הגדרות שאנו רוצים באתר השני
[root@localhost httpd]# cp /etc/httpd/sites-available/talsite2.co.il.conf /etc/httpd/sites-available/talbenshushan.com.conf
נערוך אותו
[root@localhost httpd]# vi /etc/httpd/sites-available/talbenshushan.com.conf
נוסיף את הטקסט הבא לתוך המסמך
<VirtualHost *:80>
ServerName www.talbenshushan.com
ServerAlias talbenshushan.com
DocumentRoot /var/www/html
</VirtualHost>
כעת ניצור את הSymbolic Link, הרי הגדרנו בהתחלה לApache לטעון מהנתיב sites-enabled ואילו אנו יצרנו את הקבצים בsites-available ולכן אנו ניצור בתוך sites-enabled סימבוליק לינק לקבצים אשר נמצאים ב sites-available
[root@localhost httpd]# ln -s /etc/httpd/sites-available/talsite2.co.il.conf /etc/httpd/sites-enabled/talsite2.co.il.conf [root@localhost httpd]# ln -s /etc/httpd/sites-available/talbenshushan.com.conf /etc/httpd/sites-enabled/talbenshushan.com.conf
כעת נבצע ריסטארט לשירות ה Apache
[root@localhost ~]# systemctl restart httpd
לכל אתר קבעתי עיצוב שונה, נכנסתי לכתובות והכל עובד!