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
אם תקבלו את הדף הבא, סימן שהתקנת השרת התבצעה כראוי:
שלב 2 – התקנת שרת MySQL
כעת, לאחר ששרת הווב מותקן ורץ באופן תקין, הגיע הזמן להמשיך הלאה ולהתקין את שרת ה MySQL. MySQL הוא שרת לניהול מסדי נתונים. השרת יאפשר גישה וניהול הרשאות ויאפשר לאתרים לאחסן את הנתונים והמידע הדרושים לפעילותם התקינה.
שובף גם הפעם נשתמש בפקודת apt על מנת לבצע את ההתקנה:
sudo apt install mysql-server
גם כאן נקבל את רשימת החבילות להתקנה ואת נפח הדיסק הנדרש לשם כך. לחצו על Y ולאחר מכן על ENTER על מנת להמשיך את תהליך ההתקנה.
לאחר ההתקנה, נבצע הקשחה של שרת ה MySQL על ידי הרצת סקריפט שמגיע ביחד עם ההתקנה של שרת ה MySQL. הסקריפט יבצע הקשחה של השרת, ניטרול הגדרות ברירת מחדל שמסכנות את השרת וכן נעילת גישה. על מנת לבצע את ההקשחה, הקישו את הפקודה הבאה:
sudo mysql_secure_installation
הערה: ביצוע תהליך ההקשחה נתון לשיקול הדעת של בעל השרת. לעיתים שרת המשמש לטסטים או לשימוש פנים ארגוני בסביבה בטוחה מייתר את הצורך בתהליך ההקשחה.
הקישו Y אישור או כל מקש אחר להמשיך בתהליך:
במידה ותבחרו ב Y, תתבקשו להחליט מה רמת הקשחת הסיסמה אותה תרצו להחיל על המשתמש. שימו לב שאם תבחרו ב-2 שזו רמת החוזק הגבוהה ביותר תקבלו שגיאות כאשר צנסו להגדיר סיסמה שאינה מכילה ספרות, אותיות קטנות וגולות וכן תו מיוחד.
ללא כל קשר לבחירה שעשיתם בשלב הקודם כאשר התבקשתם לבחור האם להשתמש ב VALIDATE PASSWORD PLUGIN, תתבקשו כעת לבחור סיסמה עבור משתמש ה root. חשבון זה הוא חשבון ניהולי ובעל הרשאות גבוהות (בדומה למשתמש root של השרת עליו אנו מבצעים את ההתקנה). יש לדאוג כי סיסמה זו תהיה סיסמה חזקה ויחודית ושלא תשאר ריקה. במידה ובחרתם להשתמש ב VALIDATE PASSWORD PLUGIN תתווסף הערה שתצביע על חוזק הסיסמה של משתמש ה root שהכנסתם בעת ההתקנה. במידה ותרצו לשנותה לחצו על Y, במידה ותרצו להשאירה כפי שהיא, לחצו על N:
כעת תשאלו מספר שאלות נוספות שנוגעות להסרת משתמשים אנונימיים, ניטרול והגבלת הגישה של משתמש ה 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
בהצלחה!
Leave a Reply