כל הזכויות שמורות לטל בן שושן – Shushan.co.il
Linux Apache2
הוא שרת ה Web הנפוץ ביותר בעולם, יותר מ Ngnix ממיקרוסופט IIS מGoogle Sites, אתרים כמו Apple ו Paypal ו Baidu ואתרים גדולים אחרים, כולם משתמשים ב Apache.
Apache הוא כלי להרצת שרת Web הוא מכיל מפענח ל HTML זאת אומרת שהוא מפענח את קוד ה HTML לדף אינטרנט שהמחשב או יותר נכון הדפדפן יכולים לקרוא, הוא מכיל קבצי הגדרות שאיתם ניתן להריץ שרת Web החל מהכתובת של השרת ועד יצירת מחיצות לאתרים נוספים שיכולים לשבת על אותו השרת , על מנת שנוכל להריץ שרת שנוכל להכניס אליו קבצי HTML והוא יציג למשתמש את הדפים מהשרת נצטרך שרת Web שהוא שרת Apache.
במאמר זה נשתמש בCentOS ולכן שמו של Apache2 שונה מהפצות אחרות
CentOS
שם השירות: httpd מקורו : /etc/httpd
CentOS 7 \ RedHat -> httpd -> /etc/httpd
הוא טוען את כל ההגדרות מהתיקייה:
/etc/httpd/conf.d
Ubuntu
הוא טוען את כל ההגדרות מהתיקייה:
/etc/apache2/Apache2.conf
שם השירות: apache2 מקורו : /etc/apache2
Ubuntu \ Debian -> apache2 -> /etc/apache2
הוא טוען 2 תיקיות המכילות הגדרות –
sites.available
mods-available
כל הקבצים שיש בתיקיות הללו (אלו שרשמתי למעלה) קיימים ב Symbolic Link גם בתיקיות שציינתי למטה
sites.enabled
mods-enabled
המטרה לסימובליק לינק זה על מנת שנוכל לבטל או לאפשר חלק מהרכיבים מבלי למחוק אותם, apache2 טוען את כל ההגדרות מ sites.enabled ו mods.enabled
נתחיל בהתקנת Apache2 ב CentOS 7
[root@localhost ~]# yum -y install httpd
נפתח את פורט 80 הלוא הוא פורט Http ב Firewall
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
פורט 443 Https כאשר נכניס תעודה לשרת נוכל להשתמש ב Https
[root@localhost ~]# firewall-cmd --zone=public --add-port=443/tcp --permanent [root@localhost ~]# firewall-cmd --reload
ונפעיל את השירות
[root@localhost ~]# systemctl start httpd
כעת נפתח את הדפדפן במחשב שנמצא ברשת של השרת ורשום את כתובת ה IP, העמוד שאתם צריכים לראות הוא:
כעת נבדוק את תיקיית ההגדרות
[root@localhost ~]# cd /etc/httpd/conf/
ונערוך את הקובץ
[root@localhost ~]# vi httpd.conf
אם נגולל למטה ונגיע לשורה זו, נוכל לראות שבשורה זו רשום את התיקייה הראשית של שרת ה Web
DocumentRoot "/var/www/html"
בשורה האחרונה ניתן לראות את השורה הזו
# Supplemental configuration
נוכל לראות שהוא מציג לנו שכל קובץ בנתיב הבא ובסיומת conf הוא טוען לapache
IncludeOptional conf.d/*.conf
כך למשל הוא טוען את httpd.conf שבתוכו יש את כל ההגדרות.
שורה מעניינת נוספת, היא
בשורה זו ניתן לראות שהקובץ הראשי הוא מחפש בתיקייה של קבצי הhtml, הוא קובץ בשם index.html
<IfModule dir_module>
DirectoryIndex index.html
לכן אם נכנס לתיקייה /var/www/html
cd /var/www/html
ניצור קובץ חדש בשם index.html
vi index.html
נכניס בקובץ
Hi My Name Is Tal Ben Shushan
נשמור ונצא, נכנס בדפדפן שלנו לכתובת ה IP של השרת, נקבל את הטקסט
Hi My Name Is Tal Ben Shushan
Apache Models
כאשר אני רוצה ל"שפר" את ה Apache אני יכול להוסיף מודלים, מודלים אלו מתווספים אל ה Apache ונותנים לו יכולות כמו היכולת לקרוא PHP להפעיל Perl ולעבוד ביחד עם MySql במדריכים באתר תוכלו לראות למשל כיצד להתקין WordPress או Drupal ושם לראות את השילוב הזה.
קוד HTML שונה מקוד PHP ולכן ה Apache לא יכול לקרוא קוד PHP על מנת שהוא יקרא PHP אנו צריכים להתקין את מודל ה PHP, נתקין:
[root@localhost ~]# yum install php-mysql
כעת נוכל להכניס ל var/www/html קבצי PHP
כעת בנתיב
[root@localhost ~]# cd /etc/
וקיים שם קובץ בשם php.ini קובץ זה אחראי על כל הגדרות ה PHP
php.ini
המטרה של Apache זה לתת שירות להרבה מחשבים בו זמנית, לכן יש 3 שירותים
prefork worker event
שירותים אלו מאפשרים מתן שירות להרבה מחשבים בו זמנית
אם נלך לנתיב
[root@localhost ~]# cd /etc/httpd/conf.modules.d/00-mpm.conf
נוכל לראות את שלושת השירותים והנתיב ממנו הם פועלים
[root@localhost ~]# ls
mod_mpm_prefork.so mod_mpm_worker.so mod_mpm_event.so
Redirect הפניה ב Apache
נוכל לנתב תיקיות על ידי הפקודה Redirect
ניצור קודם 2 תיקיות בתוך html
תייקיה אחת בשם Tal
[root@localhost ~]# cd /var/www/html/ [root@localhost ~]# mkdir tal
תיקייה אחת בשם shushan
[root@localhost ~]# mkdir shushan
כעת ניצור קובץ index.html אך ורק בתיקייה shushan ובו נכתוב Shushan IT Blog
[root@localhost ~]# cd shushan [root@localhost ~]# vi index.html
נכתוב בתוכו Shushan IT Blog נשמור ונסגור
כעת נערוך את
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
ומתחת לשורה
DocumentRoot "/var/www/html"
נכניס שורה נוספת
Redirect /tal /shushan
נבצע ריסטארט ל Apache
[root@localhost ~]# systemctl restart httpd
נשמור את הקובץ, ונכנס בדפדפן ל
http://YourIP/tal
ונגיע בעצם לshushan ולקובץ ה index.html שנמצא שם
אבטחה Apache
נוכל ליצור תיקייה שיש אליה גישה רק דרך שם משתמש וסיסמא
נערוך את הקובץ
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
בשורה DocumentRoot "/var/www/html" נכתוב מתחת
<Directory "/var/www/html/hidden">
AuthType Basic
AuthName "hidden Content"
AuthUserFile /etc/httpd/pass
Require vlid-user
</Directory>
כעת נעבור לשרת וניצור את הקובץ שיכיל את שם המשתמש והסיסמא שכתבנו למעלה
[root@localhost ~]# htpasswd -c /etc/httpd/pass tal
*שם המשתמש הוא tal
נלחץ enter ואז נקיש את הסיסמא
New password: Re-type new password:
נבצע ריסטרט לשרת ה Apache
[root@localhost ~]# systemctl restart httpd
ניצור תייקייה בשם hidden
[root@localhost ~]# mkdir /var/www/html/hidden
כעת ניצור קובץ index.html בתוך תיקייה hidden
[root@localhost ~]# cd /var/www/html/hidden [root@localhost ~]# vi index.html
כתבו מה שתרצו, שמרו את הקובץ
לאחר מכן הקובץ נוצר, כעת אם ננסה לגשת לנתיב hidden בשרת
http://YourServerIp/hidden
כעת תקבלו הודעה שעליכם להזין שם משתמש וסיסמא, זוכרים את שם המשתמש והסיסמא? מעולה!