השרת האינטרנט Apache הוא שרת אינטרנט פתוח קוד ופופולרי שממשיך ליהנות משיעור שוק עצום בתעשיית האירוח. הוא מגיע עם המון תכונות כולל שיפורי מודול, תמיכה במספר פרוטוקולים, תצורה פשוטה, ותמיכה במספר שפות, רק כדי לציין חלק מהן.
קרא גם: איך להתקין Nginx על CentOS 8
במדריך זה, נלווה אותך בתהליך ההתקנה של שרת האינטרנט Apache על CentOS 8 ו־RHEL 8 עם סביבת מארח וירטואלית. בעת כתיבת המדריך הזה, הגרסה העדכנית ביותר של Apache היא Apache 2.2.43.
התקנת שרת האינטרנט Apache
כדי להתחיל, עדכן רשימת חבילות המערכת שלך ב־CentOS 8 או RHEL 8 באמצעות הפקודה הבאה של dnf.
$ sudo dnf update
לאחר שהעדכון הושלם, התקן את שרת האינטרנט Apache על ידי הרצת הפקודה הבאה.
$ sudo dnf install httpd
לאחר ההתקנה, ניתן לאמת את גרסת Apache על ידי הרצת הפקודה rpm.
$ rpm -qi httpd

הפקודה מדפיסה מערך של מידע כגון הגרסה, תאריך הוצאה לפועל, בנייה וארכיטקטורת החבילה.
כדי להתחיל את שירות האינטרנט של Apache HTTP, הריץ את הפקודה systemctl.
$ sudo systemctl start httpd
כדי לאשר אם השירות פועל, בצע.
$ sudo systemctl status httpd

מהפלט, המצב 'פעיל' בצבע ירוק מציין שהשרת של Apache פועל.
כדי לנקות כל ספקות שהשרת פועל, בקש עמוד בדיקה מ-Apache על ידי גלישה לכתובת ה-IP של השרת שלך או שם הדומיין כפי שמוצג.
http://server-ip
ניתן לקבל את כתובת ה-IP של השרת שלך על ידי הרצת הפקודה ifconfig. אם השרת שלך מאוחסן בענן, ניתן לקבל את כתובת ה-IP הציבורית על ידי הרצת הפקודה curl.
$ curl ifconfig.me OR $ curl -4 icanhazip.com

כאשר אתה גולש לכתובת ה-IP של השרת, עליך לקבל את העמוד האינטרנט הבא מוצג.

זהו אישור בטוח שהשרת פועל.
ניהול שרת האינטרנט של Apache
עם Apache מותקן ופועל, ניתן להשתמש בכלי הבדיקה systemctl כדי לנהל את Apache.
לדוגמה, כדי לעצור את Apache, הרץ את הפקודה:
$ sudo systemctl stop httpd
כדי להתחיל שוב את השירות, בצע:
$ sudo systemctl start httpd
אם ביצעת שינויים בקבצי התצורה שלו ואתה צריך לאתחל כדי ליישם את השינויים, בצע את הפקודה:
$ sudo systemctl restart httpd
אתחול השירות כללית גורם להפרעה בשירות. אלטרנטיבה טובה יותר היא פשוט לטעון מחדש ללא הפסקה עם החיבור.
$ sudo systemctl reload httpd
כדי להפעיל את שרת האפאצ'ה אוטומטית בעת האתחול או האיתחול, הפעל את הפקודה הבאה. זה יבטיח שהאפאצ'ה תתחיל אוטומטית בלעדי עזרתך.
$ sudo systemctl enable httpd
אם בחרת שלא להפעיל את השירות אוטומטית בעת האתחול, הפעל:
$ sudo systemctl disable httpd
הגדרת מארחים וירטואליים באפאצ'ה
כברירת מחדל, שרת האפאצ'ה מוגדר לשרת או לארח רק אתר אחד. אם ברצונך לארח אתר אחד בלבד, אז שלב זה אינו נדרש. אבל במקרה שתרצה לארח תחומים מרובים על השרת שלך, אז עליך להגדיר מארחים וירטואליים באפאצ'ה.
A virtual host is a separate file that contains configurations that allow you to set up a separate domain from the default one. For this guide, we will set up a virtual host for the domain crazytechgeek.info.
המארח הווירטואלי ברירת המחדל נמצא בתיקיית /var/www/html
. זה עובד רק עבור אתר אחד. כדי ליצור מארח וירטואלי נפרד עבור הדומיין שלנו, ניצור מבנה תיקיות נוסף בתוך התיקייה /var/www
כפי שמוצג.
$ sudo mkdir -p /var/www/crazytechgeek.info/html
בנוסף, תוכל גם ליצור תיקייה לאחסון קבצי יומן.
$ sudo mkdir -p /var/www/crazytechgeek.info/log
בשלב הבא, ערוך את ההרשאות של הקובץ באמצעות משתנה הסביבה $USER
כפי שמוצג.
$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
כמו כן, תאם את ההרשאות של תיקיית השורש של האתר כפי שמוצג.
$ sudo chmod -R 755 /var/www
בשלב הבא, צור קובץ index.html
לדוגמה כפי שמוצג.
$ sudo vim /var/www/crazytechgeek.info/html/index.html
לחץ על האות 'i'
במקלדת והדבק תוכן לדוגמה כפי שמוצג שיתצג בדפדפן האינטרנט בעת בדיקת המארח הווירטואלי.
<html> <head> <title>Welcome to crazytechgeek.info!</title> </head> <body> <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1> </body> </html>
שמור וצא מהקובץ התצורה.
עם קובץ האינדקס לדוגמה ותיקיית האתר שנוצרו, כעת תוכל להמשיך וליצור את קובץ מארח וירטואלי. קובץ המארח הווירטואלי יכיל את התצורה של האתר שלך ויראה לאפאצ'ה כיצד להגיב לבקשות של לקוחות.
קובץ המארח הווירטואלי יכיל את התצורה של האתר שלך ויראה לאפאצ'ה כיצד להגיב לבקשות של לקוחות. אך לפני שתמשיך, עליך ליצור 2 תיקיות: תיקיית sites-available
ותיקיית sites-enabled
.
קובץ המארח הווירטואלי יאוחסן בתיקיית sites-available
בעוד התיקייה sites-enabled
תכיל את הקישור הסמלי לקובץ המארח הווירטואלי.
צור שתי התיקיות כפי שמוצג.
$ sudo mkdir /etc/httpd/sites-available $ sudo mkdir /etc/httpd/sites-enabled
בשלב הבא, שנה את קובץ התצורה הראשי של שרת האינטרנט של אפאצ'ה והורא לאפאצ'ה איפה למצוא את המארח הווירטואלי בתוך תיקיית sites-enabled.
$ sudo vim /etc/httpd/conf/httpd.conf
הוסף את השורה כפי שמוצג בסופו של קובץ התצורה.
IncludeOptional sites-enabled/*.conf
שמור וצא.
כעת צור קובץ מארח ווירטואלי כפי שמוצג:
$ sudo vim /etc/httpd/sites-available/crazytechgeek.info
הדבק את התוכן למטה והחלף את crazytechgeek.info
בשם הדומיין שלך.
<VirtualHost *:80> ServerName www.crazytechgeek.info ServerAlias crazytechgeek.info DocumentRoot /var/www/crazytechgeek.info/html ErrorLog /var/www/crazytechgeek.info/log/error.log CustomLog /var/www/crazytechgeek.info/log/requests.log combined </VirtualHost>
שמור וצא מהקובץ.
כעת הפעל את קובץ המארח הווירטואלי על ידי יצירת קישור סמלי בתיקיית sites-enabled
.
$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf
כיוון הרשאות SELinux עבור מארחים ווירטואליים.
CentOS 8 ו־RHEL 8 מגיעים עם SELinux שהוא מודול אבטחה לחיזוק אבטחת המערכת ב־Linux. מאחר שהגדרת ספריית log מותאמת אישית בשלב הקודם, עליך לעדכן מספר מדיניות SELinux כדי להורות לשרת האינטרנט של Apache לכתוב לתיקייה.
ישנן 2 גישות להתאמת מדיניות SELinux של Apache: להתאמת מדיניות לכל המערכת ולמדיניות על תיקייה. האחרונה מועדפת מכיוון שהיא יותר מועדפת.
להתאמת מדיניות SELinux על תיקייה
עריכת ההרשאות של SELinux עבור תיקיית הלוג מעניקה לך שליטה מוחלטת על מדיניות שרת האינטרנט של Apache. שיטה זו מעט ארוכה ודורשת ממך להגדיר באופן ידני את סוג ההקשר עבור תיקיות נוספות שצוינו בקובץ התצורה של מארח וירטואלי.
לפני שתתחיל, יש לוודא את סוג ההקשר שהוקצה לתיקיית הלוג על ידי SELinux:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/
הפלט צריך להיות דומה למה שיש לנו למטה.

מתוך הפלט, ההקשר המוגדר הוא httpd_sys_content_t. זה מציין שהשרת יכול לקרוא רק קבצים בתיקיית הלוג. עליך לשנות את ההקשר הזה ל־httpd_log_t כדי לאפשר ל־Apache ליצור ולהוסיף רשומות לתיקייה.
לכן, יש לבצע את הפקודה:
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
אם אתה מקבל את השגיאה הבאה "semanage: command not found".
זה מעיד על כך שהחבילות שמספקות את פקודת semanage לא מותקנות. כדי לתקן את השגיאה הזו, עליך להתקין את החבילות האלה. אך תתחיל בבדיקה אילו חבילות מספקות את פקודת semanage על ידי הרצת:
$ sudo dnf whatprovides /usr/sbin/semanage
הפלט יציג לנו את החבילה שמספקת את semanage, שהיא policycoreutils-python-utils.
עכשיו התקן את החבילה כפי שמוצג באמצעות מנהל החבילות DNF.
$ sudo dnf install policycoreutils-python-utils
הפקודה לשינוי ההקשר צריכה לעבוד כעת.
$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"
כדי לשמור על השינויים ולהפוך אותם לקבועים, תנפיק את הפקודה restorecon כפי שמוצג:
$ sudo restorecon -R -v /var/www/crazytechgeek.info/log
תוכל לאשר את השינויים על ידי הרצת הפקודה שוב:
$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

והימנע מכך שהסוג של ההקשר השתנה ל־httpd_log_t
כפי שניתן לראות בפלט.
אתה צריך לאתחל את Apache כדי שהשינויים ייכנסו לתוקף.
$ sudo systemctl restart httpd
תוכל כעת לאשר אם Apache שומר על קבצי יומן בתיקיית הלוגים על ידי רישום התוכן שלה כפי שמוצג:
$ ls -l /var/www/crazytechgeek.info/log/
עליך לראות שני קבצי לוג כפי שמוצג: קובץ לוג שגיאות וקובץ לוג בקשות.

בדיקת Virtual Host של Apache
לבסוף, עליך לוודא ששרת האינטרנט של Apache משרת את קובץ המארח הווירטואלי שלך. כדי לעשות זאת, פתח את הדפדפן שלך ועבור לכתובת ה־IP של השרת שלך או שם הדומיין:
http://domain-name

נהדר! זה מציין שהכל הלך כצפוי והמארח הווירטואלי שלנו משרת בהצלחה כפי שציפינו.
סיכום
במדריך זה, למדנו כיצד להתקין את השרת האינטרנט אפאצ'י על CentOS 8 ועל RHEL 8 וגם כיצד להגדיר קובץ מארח וירטואלי כדי לשרת תוכן עבור דומיין נוסף. תרגישו חופשי להגדיר קבצי מארח וירטואליים רבים כפי שתרצו כדי להתאים לדומיינים נוספים.
אם ברצונך להגדיר מגוון מלא של שרותי אחסון, אני ממליץ לך להתקין מגדר LAMP על CentOS 8.
Source:
https://www.tecmint.com/install-apache-with-virtual-host-on-centos-8/