Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 18.04

LAMP - TechBlog - תומר קליין

LAMP Stack הוא מונח המציין קבוצה של תוכנות קוד פתוח שלרוב יותקנו ביחד על מנת לשמש כשרת לאירוח אתרים ואפליקציות ווב. המונח LAMP בנוי בעצם מראשי תיבות של אותם תוכנות, כאשר הראשונה בהן היא Apache web server, על אחסון המידע אחראי שרת ה MySQL, ועל הצגת התוכן הדינמי אחראי ה PHP.

במדריך זה אסביר כיצד להתקין LAMP Stack על גבי שרת Ubuntu 18.

תנאי קדם להתקנה

על מנת לבצע את ההתקנה על פי המדריך הנ"ל יש לוודא כי ביצעתם התקנת שרת Ubuntu 18 עם משתמש שהוא לא root ובעל הרשאות sudo.

שלב 1 – התקנת שרת Apache

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

התקנת שרת Apache באמצעות מנהל החבילות של ubuntu, ה apt:

sudo apt update
sudo apt install apache2

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

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

http://server_ip

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

Apache2 ubuntu dafault page

שלב 2 – התקנת שרת MySQL

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

שובף גם הפעם נשתמש בפקודת apt על מנת לבצע את ההתקנה:

sudo apt install mysql-server

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

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

sudo mysql_secure_installation

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

הקישו Y אישור או כל מקש אחר להמשיך בתהליך:

VALIDATE PASSWORD PLUGIN

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

three levels of password validation policy

ללא כל קשר לבחירה שעשיתם בשלב הקודם כאשר התבקשתם לבחור האם להשתמש ב VALIDATE PASSWORD PLUGIN, תתבקשו כעת  לבחור סיסמה עבור משתמש ה root. חשבון זה הוא חשבון ניהולי ובעל הרשאות גבוהות (בדומה למשתמש root של השרת עליו אנו מבצעים את ההתקנה). יש לדאוג כי סיסמה זו תהיה סיסמה חזקה ויחודית ושלא תשאר ריקה. במידה ובחרתם להשתמש ב VALIDATE PASSWORD PLUGIN תתווסף הערה שתצביע על חוזק הסיסמה של משתמש ה root שהכנסתם בעת ההתקנה. במידה ותרצו לשנותה לחצו על Y, במידה ותרצו להשאירה כפי שהיא, לחצו על N:

Using existing password for root

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

בהתקנת MySQL מגרסה 5.7 והלאה על גבי שרת Ubuntu משתמש ה root של MySQL מבצע אימות באמצעות פלאגין ה auth_socket כברירת מחדל במקום שימוש בסיסמה. דבר זה מאפשר אבטחה ושימוש יעילים יותר ברוב המקרים אך גם מקשה במקרים בו תוכנה חיצונית צריכה גישה והרשאות לשימוש ב root (כדוגמת phpMyAdmin).

אם ברצונכם להשתמש בסיסמה במקום auth_socket על מנת להתחבר לשרת נצטרך לבצע שינוי בשיטת האימות ולעבור ל mysql_native_password. על מנת לעשות זאת יש להתחבר ל cli של שרת ה MySQL על ידי הפקודה הבאה:

sudo mysql

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

SELECT user,authentication_string,plugin,host FROM mysql.user;

התוצאה שתתקבל אמורה להיראות כך:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

בדוגמה זו תוכלו לראות כי המשתמש root אכן משתמש בפלאגין של auth_socket על מנת לבצע אימות. כעת נשתמש בפקודת alter על מנת לבצע את השינוי. יש לוודא כי החלפתם את המילה password בסיסמה אותה תרצו להגדיר:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

כעת, כתבו את הפקודה הבאה על מנת לאשר ולשמור את השינויים:

FLUSH PRIVILEGES;

על מנת לאשר כי שיטת האימות אכן השתנתה כתבו כעת את הפקודה הבאה. בפלט תוכלו להבחין כי המשתמש root לא משתמש יותר ב auth_socket:

SELECT user,authentication_string,plugin,host FROM mysql.user;

והתוצאה לפניכם:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)</code>

כעת הקישו את הפקודה הבאה על מנת להתנתק מה CLI של שרת ה MySQL:

exit

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

שלב 3 – התקנת PHP

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

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

פקודה זו אמורה לבצע את ההתקנה ללא בעיה, ומיד גם נבחן אותה.

בשלב הראשון נוסיף את index.php לרשימת דפי ברירת המחדל. לצורך כך נערכוך את קובץ dir.conf באמצעות עורך הטסט:

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

הקובץ אמור להראות כך:


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

העבירו את PHP index למיקום הראשון בסדר ככה שהקובץ יראה כך:


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

ואתחלו את שרת ה apache על ידי הפקודה הבאה:

sudo systemctl restart apache2

בהצלחה!

Be the first to comment

Leave a Reply

כתובת האימייל שלך לא תפורסם


*