כיצד להתקין את Apache עם מארח וירטואלי על CentOS 8

השרת האינטרנט 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
Verify Apache Version

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

כדי להתחיל את שירות האינטרנט של Apache HTTP, הריץ את הפקודה systemctl.

$ sudo systemctl start httpd

כדי לאשר אם השירות פועל, בצע.

$ sudo systemctl status httpd
Verify Apache Service Status

מהפלט, המצב 'פעיל' בצבע ירוק מציין שהשרת של Apache פועל.

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

http://server-ip  

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

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com
Find CentOS Server IP Address

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

Check Apache Webpage

זהו אישור בטוח שהשרת פועל.

ניהול שרת האינטרנט של 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/

הפלט צריך להיות דומה למה שיש לנו למטה.

Set SELinux Policies on Apache Log Directory

מתוך הפלט, ההקשר המוגדר הוא 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/
Check SELinux Context Type

והימנע מכך שהסוג של ההקשר השתנה ל־httpd_log_t כפי שניתן לראות בפלט.

אתה צריך לאתחל את Apache כדי שהשינויים ייכנסו לתוקף.

$ sudo systemctl restart httpd

תוכל כעת לאשר אם Apache שומר על קבצי יומן בתיקיית הלוגים על ידי רישום התוכן שלה כפי שמוצג:

$ ls -l /var/www/crazytechgeek.info/log/

עליך לראות שני קבצי לוג כפי שמוצג: קובץ לוג שגיאות וקובץ לוג בקשות.

Check Apache Log Files

בדיקת Virtual Host של Apache

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

http://domain-name
Check Apache Virtual Host for Website

נהדר! זה מציין שהכל הלך כצפוי והמארח הווירטואלי שלנו משרת בהצלחה כפי שציפינו.

סיכום

במדריך זה, למדנו כיצד להתקין את השרת האינטרנט אפאצ'י על CentOS 8 ועל RHEL 8 וגם כיצד להגדיר קובץ מארח וירטואלי כדי לשרת תוכן עבור דומיין נוסף. תרגישו חופשי להגדיר קבצי מארח וירטואליים רבים כפי שתרצו כדי להתאים לדומיינים נוספים.

אם ברצונך להגדיר מגוון מלא של שרותי אחסון, אני ממליץ לך להתקין מגדר LAMP על CentOS 8.

Source:
https://www.tecmint.com/install-apache-with-virtual-host-on-centos-8/