• בלוג
  • איך להקים שרת LAMP על מערכת AlmaLinux

איך להקים שרת LAMP על מערכת AlmaLinux

איך להקים שרת LAMP על מערכת AlmaLinux

פורסם ב 27-08-2024

information-security

הקדמה

שרת LAMP הוא שרת הכולל את ארבעת הרכיבים המאפשרים אחסון של אתרים דינמיים הכתובים ב- PHP:

  1. Linux: מערכת ההפעלה.
  2. Apache: שרת האינטרנט.
  3. MySQL: בסיס הנתונים.
  4. PHP: עיבוד מידע.

השילוב של Linux, Apache, MySQL, ו־PHP נתפס כסביבת עבודה מיתוגרפית ויעילה, הנותנת מענה לצרכים הרבים של מפתחי תוכנה, סטארטאפים וארגונים גדולים כאחד, פיתוח באמצעות LAMP מאפשר גמישות רבה ואפשרויות רבות להתאמה אישית, הוא משמש כבסיס רב שכבתי עבור יישומי WEBמתקדמים, כולל אתרי מסחר אלקטרוני, פורומים, רשתות חברתיות, פורטלי חדשות, ועוד.

להלן כמה יתרונות של שימוש ב- LAMP:

  • גמישות: תוכנות ה- LAMP יכולות להתאים למגוון רחב של צרכים. מאתרים פשוטים עד ליישומים רבי משתמשים ומתקדמים.
  • תמיכה מהקהילות השונות: כל חלק מ- LAMP הוא Open source (קוד פתוח), מה שמקנה גמישות רבה ותמיכה עשירה מקהילות המפתחים.
  • עלויות נמוכות: השימוש ב- LAMP מפחית את העלויות הכוללות של פיתוח ותחזוקת אתרים ויישומים, שכן כל חלק בו הוא חינמי (בהנחה שאתם לא משתמשים ב Linux בתשלום).
  • יכולת גדילה: הסביבה של LAMP ניתנת להרחבה בקלות, מה שמאפשר לאפשרויות העסקיות לצמוח עם הזמן.
  • יציבות ואמינותLAMP הוא סביבה מבוססת תקן שהוכחה בקרב התעשייה כסביבה יציבה ואמינה לפיתוח ואירוח של אפליקציות WEB.

בשוק היישומים והתוכנה, השימוש ב- LAMP ממשיך להתפתח ולהתרחב, ומאפשר למפתחים לפתח יישומים רבי תחומים תוך כדי שימוש בכלים פתוחים ומקובלים בעולם התוכנה והתכנון.

דרישות

למען השלמת מדריך זה יש לוודא כי יש גישה למשתמש מורשה במערכת (sudoer) או גישה ל root לצורך העניין ושרת המשתמש במערכת הפעלה המבוססת RHEL לדוגמא אנו משתמשים ב AlmaLinux 8.

שלב ראשון: התקנת Apache 2

שרת האינטרנט Apache הוא פרוייקט הנועד לפתח ולתחזק שרת HTTP עם קוד פתוח בשביל מערכות הפעלה מודרניות יחד עם אבטחה גבוה עם צריכת משאבים יעילה ועומד בסטנדרטים של HTTP.
הוא לראשונה הופיע בשנת 1995 ומ- 1996 השרת אינטרנט (web server) הפופולרי בעולם.

התחילו בלהתקין את Apache 2 בעזרת:

sudo dnf install -y httpd

אפשרו תעבורה בפורט 80 (HTTP):

sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload

אפשרו והדליקו את Apache 2:

sudo systemctl enable httpd

sudo systemctl start httpd

בדיקה

לצורך בדיקה, כנסו אל http://IP-ADDRESS, החליפו את IP-ADDRESS בכתובת הIP שלכם.
אתם אמורים לקבל את הדף הבא:

test page

שלב שני: התקנת MariaDB

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

בכדי להתקין את MariaDB הריצו את השורה הבאה למען עדכון המאגר ממנו נמשך MariaDB:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=11.2

# [info] Checking for script prerequisites. # [info] MariaDB Server version 11.2 is valid

# [info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo

# [info] Adding trusted package signing keys... /etc/pki/rpm-gpg /var/lib/httpd /var/lib/httpd

# [info] Successfully added trusted package signing keys # [info] Cleaning package cache... 0 files removed

הריצו את פקודת ההורדה של גרסא 11.2.3 של MariaDB:

sudo dnf install -y MariaDB-server

לאחר מכן אפשרו והפעילו את MariaDB:

sudo systemctl enable mariadb

sudo systemctl start mariadb

הפעילו את המצב המאובטח:

mariadb-secure-installation

עקבו אחרי ההוראות הבאות:

שאלהתשובה
Enter current password for root (enter for none):הכניסו את הסיסמה לבחירתכם למשתמש root ב MySQL
Switch to unix_socket authentication [Y/n]n
Change the root password? [Y/n]n
Remove anonymous users? [Y/n]y
Disallow root login remotely? [Y/n]y
Remove test database and access to it? [Y/n]y
Reload privilege tables now? [Y/n]y

בדיקה

כדי לבדוק את רכיב ה MariaDB נסו את השלבים הבאים:

mysql -p'YOUR PASSWORD' -u root

והריצו את השורה הבאה:

SELECT VERSION();

אתם אמורים לקבל משהו דומה לזה:

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

| VERSION()       |

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

| 11.2.0-MariaDB |

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

1 row in set (0.000 sec)

שלב שלישי: התקנת php-fpm

php-fpm הוא סוג php המותאם לשימוש בסביבת WEB המבוססת PHP ומשומש בצורה נרחבת בקרב שרתי אינטרנט.
אפשרו את מאגר הנתונים remi:

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

אפשרו את php-fpm גרסא 8.3:

sudo dnf module enable php:remi-8.3 -y

התקינו את php-fpm גרסא 8.3:

sudo dnf install php-fpm

לאחר מכן אפשרו והפעילו את php-fpm:

sudo systemctl enable php-fpm

sudo systemctl start php-fpm

שלב בונוס - התקנת אתר

צרו משתמש עליו ישב האתר (mysite הוא שם המשתמש):

adduser mysite

צרו את התיקייות הנחוצות וסדרו את ההרשאות:

chmod 711 /home/mysite/

cd /home/mysite/

mkdir logs public_html

chown mysite:mysite logs public_html

כנסו אל תקיית /etc/httpd/ בעזרת cd /etc/httpd ושם תוכלו לראות כמה תקיות ולינקים:

root test
  • conf: מכיל את קובץ ההגדרה הראשי של Apache.
  • conf.d: מכיל את קובצי ההגדרה הנוספים, בדרך כלל משומש לקובצי הגדרה לאתרים היושבים על השרת.
  • conf.modules.d: מכיל קובצי הגדרה הנחוצים אך ורק כדי לטעון תוספים.
  • logs: לינק לתקיית הלוגים של Apache.
  • modules: לינק לתקיית התוספים של Apache.
  • run: לינק לתקייה המכילה קבצים הקשורים ל- Apache בזמן ההרצה.
  • state: לינק לתקייה המכילה מידע בזמן ההרצה על Apache.

כנסו אל תקיית conf.d וצרו קובץ VHOST על שם האתר שלכם עם סיומת conf.:

cd /etc/httpd/conf.d/

touch mysite.conf

הוסיפו אל קובץ ה- VHOST זה את השורות הבאו לדוגמא:

<VirtualHost *:80>

    ServerName mysite.com

    ServerAlias www.mysite.com

    DocumentRoot /home/mysite/public_html

    ErrorLog /home/mysite/logs/error.log

    CustomLog /home/mysite/logs/access.log combined

    <Directory /home/mysite/public_html>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

        DirectoryIndex index.php

    </Directory>

    ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://127.0.0.1:8000/home/mysite/public_html/

</VirtualHost>

  • ServerName: הדומיין שלכם.
  • ServerAlias: שם נרדף לדומיין.
  • DocumentRoot: הנתיב המלא לתקייה בה יושבים קבצי האתר.
  • ErrorLog: הנתיב המלא אל קובץ הלוג שגיאות של האתר.
  • CustomLog: הגדרה של לוג מותאם אישית לצורך תיעוד בקשות לאתר.
  • ProxyPassMatch: הגדרה הנותת לנו אפשרות להעביר בקשות לשירות חיצוני לפי דפוסים מסויימים, במקרה שלנו PHP.

לאחר יצירת ה- VHOST לאתר, נותר ליצור POOL ל php-fpm:

cd /etc/php-fpm.d/

cp www.conf mysite.conf

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

חדשישן
[mysite][www]
user = mysiteuser = apache
group = mysitegroup = apache
listen = 8000listen = /run/php-fpm/www.soc

משכו מחדש את קובצי ההגדרה של Apache ו- php-fpm:

sudo systemctl reload httpd php-fpm

לבסוף כנסו אל תקיית קובצי האתר שלכם (DocumentRoot) והוסיפו את קובצי האתר, לדוגמא:

cd /home/mysite/public_html/

touch index.php

chown mysite:mysite index.php

קובץ index.php:

<!DOCTYPE html>

<html lang="he" dir="rtl">

<head>

  <meta charset="utf-8">

  <title>שרת ה LAMP הראשון שלי</title>

  <style>

    body {

      font-family: Arial, sans-serif;

      background-color: #f0f0f0;

      color: #333;

      margin: 0;

      padding: 0;

    }

    h1 {

      color: #007bff;

      text-align: center;

      margin-top: 50px;

    }

    h3 {

      color: #28a745;

      text-align: center;

      margin-top: 20px;

    }

    p {

      font-size: 18px;

      line-height: 1.6;

      text-align: center;

      margin-top: 10px;

    }

  </style>

</head>

<body>

  <h1>את הטקסט הבא אני מציג דרך PHP</h1>

  <?php

    // Get current date and time

    $date = date("Y-m-d H:i:s");

    // Get current user

    $user = get_current_user();

    // Display greetings and information

    echo "<h3>שלום מ- php-fpm !</h3><br>

    <p>השעה ותאריך עכשיו הם: $date<br>

    והמשתמש שבו php-fpm משתמש הוא: $user</p>";

  ?>

</body>

</html>

לאחר מניפולציית קובץ הוסט, כנסו אל http://mysite.com ואתם אמורים לקבל את התוצאה הבאה:

LAMP-SERVER

השותפים שלנו

  • js-partners-02
  • js-partners-03
  • nginx-js-partners-04
  • js-partners-06
  • mariadb-icon
  • docker-icon
  • nodejs
Skip to content