• בלוג
  • איך להקים שרת 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
    • js-partners-04
    • js-partners-06
    • mariadb-icon
    • docker-icon
    • nodejs
    Skip to content