התקנת שרת LAMP בדביאן 10 – מדריך מלא

שרת LAMP (ראשי תיבות Linux, Apache, MySQL, PHP/Perl/Python) הוא שרת מבוסס קוד פתוח, המשמש לפיתוח אפליקציות אינטרנט או אחסון אתרים בתצורה ספציפית.

על מנת שיישום אינטרנט יעבוד, הוא חייב לכלול מספר דברים: מערכת הפעלה, שרת אינטרנט, מסד נתונים ושפת תכנות. התכונות הללו חיוניות ליצירת אתר אינטרנט דינמי.

LAMP הוא ראשי תיבות של התוכניות הבאות:

L – מערכת הפעלה לינוקס
A – שרת HTTP של אפאצ'י
M – מערכת ניהול מסדי נתונים MySQL
P – שפת תכנות PHP

התקנת שרת LAMP

חובה להתקין כל רכיב בנפרד ובסדר מסוים. במדריך זה נעבור על כל שלבי התקנת LAMP Stack ב-Debian 10.

לצורך המדריך, אנו מניחים שיש לכם שרת מותקן ומוגדר עם:

  • גישה לSSH בתור root
  • דביאן 10 או 11
  • גישה לטרמינל/שורת פקודה

התקנת שרת אפאצ’י – Apache server

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

על מנת להתחיל, ודאו שמטמון ה-apt שלך מעודכן ב:

sudo apt update

 אם זו הפעם הראשונה שאתם משתמשים ב-sudo בהפעלה זו, תצטרכו לספק את סיסמת המשתמש הרגיל שלכם כדי לאמת את ההרשאות.

לאחר עדכון המטמון, ניתן להתקין את Apache עם:

sudo apt install apache2

 

לאחר פקודה זו, apt תודיע לכם אילו חבילות היא מתכננת להתקין וכמה שטח דיסק נוסף הן יתפסו. הקלידו Y ולאחר מכן ENTER כדי לאשר ולהמשיך.

ניתן לבצע בדיקה נקודתית מיד כדי לוודא שהכל הלך כמתוכנן, על ידי ביקור בכתובת ה-IP הציבורית של השרת שלכם בדפדפן האינטרנט שלך (ראו את ההערה מתחת לכותרת הבאה כדי לגלות מהי כתובת ה-IP הציבורית שלכם):

http://<your_server_ip>

מציאת כתובת ה-IP הפומבית של השרת שלכם:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

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

התקנת שרת אפאצ'י

אם מופיע דף זה, שרת האינטרנט שלכם מותקן כעת כהלכה ונגיש לאינטרנט.

התקנת MySQL MariaDB

 

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

על מנת להתקין את MariaDB' נשתמש שוב ב- apt על מנת להתקין את השרת:

sudo apt install mariadb-server

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

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

sudo mysql_secure_installation

סקריפט זה ידריך אתכם כיצד לאבטח ולבצע כמה שינויים בהגדרות של MariaDB. בתחילה תידרשו להזין את סיסמת root הנוכחית של מסד הנתונים (שימו לב שזה אינו root המערכת). משתמש root עבור מסד הנתונים הוא משתמש עם הרשאות ניהול מלאות על שרת מסד הנתונים. מכיוון שזה עתה התקנתם את MariaDB ועדיין לא ביצעתם שינויים בתצורה, הסיסמה הזו תהיה ריקה, אז פשוט הקישו ENTER כשתתבקשו.

השאלה הבאה בודקת אם אתם רוצים להגדיר סיסמת בסיס למסד נתונים. מכיוון ש-MariaDB משתמש בשיטת אימות מיוחדת עבור משתמש root, שבדרך כלל בטוחה יותר משימוש בסיסמה, אין צורך להגדיר זאת כעת. הקלידו N ולאחר מכן ENTER.

משם, פשוט הקלידו Y ולאחר מכן על ENTER כדי לבחור את ברירות המחדל עבור כל השאלות הבאות. פעולה זו תסיר משתמשים אנונימיים ואת מסד הנתונים של הבדיקה, תשבית את התחברות השורש מרחוק ותטען את הכללים החדשים הללו כך ש-MariaDB תפעיל מיד את השינויים שביצעתם.

כשתסיימו, היכנסו למסוף MariaDB על ידי הקלדה:

sudo mariadb

הפקודה הזו תחבר אותנו לשרת MariaDB בתור משתמש מנהל root של מסד הנתונים, בעקבות שימוש ב-sudo.

הפלט אמור להיראות כך:


Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 74

Server version: 10.3.15-MariaDB-1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

 

שימו לב שלא היה צורך לספק סיסמה בכדי להתחבר כמשתמש root. זה עובד מכיוון ששיטת האימות המוגדרת כברירת מחדל עבור המשתמש root של MariaDB היא דרך unix_socket במקום סיסמה. למרות שזה עשוי להיראות כמו בעיית אבטחה בהתחלה, זה הופך את שרת מסד הנתונים למאובטח יותר, מכיוון שהמשתמשים היחידים המורשים להתחבר כמשתמש הבסיס של MariaDB הם משתמשי המערכת עם הרשאות sudo, שמתחברים מהמסוף או דרך אפליקציה הפועלת עם אותן הרשאות. 

תפקיד משתמש root הינו ניהולי בלבד, ולכן לא תוכלו לחבר את אפליקציית ה-PHP שלכם.

על מנת להגביר את האבטחה, נגדיר חשבונות משתמש ייעודיים עם הרשאות מתאימות עבור כל מסד נתונים. כדי להדגים הגדרה כזו, ניצור מסד נתונים בשם example_database ומשתמש בשם example_user, ניתן להחליף את השמות הללו בכל שם שתחפצו.

כדי ליצור מסד נתונים חדש, הפעילו את הפקודה הבאה ממסוף MariaDB:

CREATE DATABASE example_database;

כעת ניצור משתמש חדש ונעניק לו הרשאות מלאות במסד הנתונים שיצרנו. הפקודה הבאה מגדירה את הסיסמה של משתמש זה כ-PASSWORD, אך צריך להחליף ערך זה בסיסמה מאובטחת וחזקה:

GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

הפקודה תעניק למשתמש example_user הרשאות מלאות על מסד הנתונים example_database, תוך שהיא מונעת ממשתמש זה ליצור או לשנות מסדי נתונים אחרים בשרת.

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

FLUSH PRIVILEGES;

לאחר מכן אפשר לצאת מ-MariaDB: 

exit

אפשר לבדוק אם למשתמש החדש יש את ההרשאות המתאימות על ידי כניסה נוספת למסוף MariaDB, עם שם המשתמש והסיסמה שהזנו מקודם:

mariadb -u example_user -p

שימו לב: השימוש ב -p בפקודה הזו יבקש מכם את הסיסמה שבחרתם בעת יצירת המשתמש example_user. לאחר הכניסה למסוף MariaDB, אשרו שיש לך גישה למסד הנתונים example_database:

SHOW DATABASES;

יתקבל הפלט הבא: 

+--------------------+

| Database           |

+--------------------+

| example_database   |

| information_schema |

+--------------------+

2 rows in set (0.000 sec)


בכדי לצאת מ-MariaDB יש להקיש:

exit

בשלב זה, מערכת מסד הנתונים מוגדרת ואפשר לעבור להתקנת PHP, הרכיב הסופי של שרת LAMP.

התקנת PHP ב-LAMP

PHP היא שפת תכנות להצגת אתרים דינמיים. ביכולתה להריץ סקריפטים, להתחבר לבסיסי הנתונים של MariaDB כדי לקבל ולשלוח מידע משרת האינטרנט ובחזרה ולהציג אותו למשתמש.

נשתמש שוב ב-apt על מנת להתקין את PHP, ועוד כמה חבילות שיבטיחו שקוד PHP יוכל לרוץ תחת שרת Apache ולדבר עם מסד הנתונים של MariaDB:

sudo apt install php libapache2-mod-php php-mysql

זה אמור להתקין PHP ללא בעיות, אך מיד נוודא שהכל תקין.

ברוב המקרים כדאי לשנות את הגדרות Apache על מנת להנגיש את קובץ index.php תחילה, ולא את index.html. נכון לעכשיו, אם משתמש מבקש ספרייה מהשרת, Apache יחפש תחילה קובץ בשם index.html. אנחנו רוצים להגיד לשרת האינטרנט להעדיף קבצי PHP על פני אחרים, אז יש להגדיר באפאצ'י לחפש קובץ index.php.

כדי לעשות זאת, הקלידו את הפקודה הבאה שתפתח את קובץ dir.conf בעורך טקסט עם הרשאות שורש:

sudo nano /etc/apache2/mods-enabled/dir.conf

הקובץ ייראה כך:

<IfModule mod_dir.c>

    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>

העבירו את קובץ index.php (מודגש למעלה) למיקום הראשון אחרי DirectoryIndex, כך:

<IfModule mod_dir.c>

    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

לסיום יש לשמור את הקובץ. אם אתם משתמשים בננו, אתה יכול לעשות זאת על ידי לחיצה על CTRL + X ולאחר מכן על Y ו-ENTER כדי לאשר.

כעת יש לטעון מחדש את Apache עם:

sudo systemctl reload apache2

ניתן לבדוק את המצב של apache2:

sudo systemctl status apache2

 

apache2.service - The Apache HTTP Server

   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

   Active: active (running) since Mon 2019-07-08 12:58:31 UTC; 8s ago

     Docs: https://httpd.apache.org/docs/2.4/

  Process: 11948 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)

 Main PID: 11954 (apache2)

    Tasks: 6 (limit: 4719)

   Memory: 11.5M

   CGroup: /system.slice/apache2.service

           ├─11954 /usr/sbin/apache2 -k start

           ├─11955 /usr/sbin/apache2 -k start

           ├─11956 /usr/sbin/apache2 -k start

           ├─11957 /usr/sbin/apache2 -k start

           ├─11958 /usr/sbin/apache2 -k start

           └─11959 /usr/sbin/apache2 -k start

 

 

בשלב זה שרת ה LAMP שלכם מוגדר. כעת ניתן לטפל בשאר ההגדרות, כמו vhosts.


2024 © אחסון לינוקס - אחסון אתרים בישראל