במאמר זה נסביר כיצד להתקין מערכת LEMP (Linux, Nginx, MariaDB, PHP) יחד עם PHP-FPM על שרתי RHEL/CentOS 7/6 ו־Fedora 26-29 באמצעות מנהל החבילות yum ו־dnf.
במהלך התהליך נתקין ונאפשר Epel, Remi, Nginx ו־MariaDB repositories כדי להתקין את הגרסאות העדכניות ביותר של חבילות אלו.
קראו גם: התקנת אפאצ'י, MySQL 8 או MariaDB 10 ו־PHP 7 על CentOS 7
שלב 1: התקנת ה־EPEL ו־Remi Repository
EPEL (Extra Packages for Enterprise Linux) הוא ספרייה מבוססת קהילה שמציעה חבילות תוכנה נוספות למערכות ההפעלה המבוססות על RHEL.
Remi הוא ספרייה בה ניתן למצוא את הגרסאות העדכניות ביותר של המערכת PHP (עם כל התכונות) להתקנה בחלקי ההפצה Fedora ו־Enterprise Linux.
על RHEL/CentOS 7
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm ------ For RHEL 7 Only ------ # subscription-manager repos --enable=rhel-7-server-optional-rpms
על RHEL/CentOS 6
# yum update && yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm ------ For RHEL 6 Only ------ # subscription-manager repos --enable=rhel-6-server-optional-rpms
על Fedora 24-29
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm [On Fedora 29] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm [On Fedora 28] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm [On Fedora 27] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm [On Fedora 26] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm [On Fedora 25] # rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm [On Fedora 24]
שלב 2: מתקינים את המאגרים של Nginx ו-MariaDB
המאגר של Nginx דרוש רק בהפצות RHEL ו-CentOS. יש ליצור קובץ בשם /etc/yum.repos.d/nginx.repo ולהוסיף לו את השורות הבאות.
ל-RHEL 7/6:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
ל-CentOS 7/6:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
כדי לאפשר את המאגר של MariaDB, יש ליצור קובץ בשם /etc/yum.repos.d/mariadb.repo עם התוכן הבא:
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
שלב 4: מתקינים את Nginx ואת MariaDB
Nginx (Engine X) הוא שרת אינטרנט קוד פתוח, חזק, קל משקל וביצועים גבוהים, שרת פרוקסי הפוך וגם שרת פרוקסי לדואר עבור פרוטוקולים HTTP, SMTP, POP3 ו-IMAP. לפרטים נוספים, בקרו ב-http://wiki.nginx.org/Overview.
MariaDB הוא ענף של MySQL המוכר, אחד ממנגנוני מאגרי הנתונים היחסיים הפופולריים ביותר בעולם. הוא מפותח כולו על ידי הקהילה ולכן המטרה היא שישאר פתוח ותואם את ה-GPL.
כדי להתקין את Nginx ואת MariaDB, יש להריץ את הפקודות הבאות.
----------- Installing on RHEL/CentOS 7/6 ----------- # yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm ----------- Installing on Fedora ----------- # dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm
שלב 3: מתקינים PHP באמצעות המאגר של Remi
PHP (הפריצות הפריצות) הוא שפת סקריפט שרת-צד אשר יישומים נכונים לפיתוח אתרי אינטרנט. ניתן להשתמש בו כדי ליצור דפי אינטרנט דינמיים לאתר ולרוב נמצא בשרתי *nix. אחת היתרונות של PHP היא שהיא ניתנת להרחבה בקלות דרך השימוש במגוון רחב של מודולים.
כדי להתקין PHP, תחילה עליך לאפשר את ריפוזיטוריו של רמי על ידי התקנת yum-utils
, אוסף של תוכניות שימושיות לניהול ריפוזיטורי yum וחבילות.
# yum install yum-utils
לאחר ההתקנה, ניתן להשתמש ב־yum-config-manager המסופק על ידי yum-utils
כדי לאפשר את ריפוזיטוריו של רמי כריפוזיטורי ברירת המחדל להתקנת גרסאות שונות של PHP כפי שמוצג.
לדוגמה, כדי להתקין גרסת PHP 7.x, עליך להשתמש בפקודה הבאה.
------------- On CentOS & RHEL ------------- # yum-config-manager --enable remi-php70 && yum install php [Install PHP 7.0] # yum-config-manager --enable remi-php71 && yum install php [Install PHP 7.1] # yum-config-manager --enable remi-php72 && yum install php [Install PHP 7.2] # yum-config-manager --enable remi-php73 && yum install php [Install PHP 7.3] ------------- On Fedora ------------- # dnf --enablerepo=remi install php70 [Install PHP 7.0] # dnf --enablerepo=remi install php71 [Install PHP 7.1] # dnf --enablerepo=remi install php72 [Install PHP 7.2] # dnf --enablerepo=remi install php73 [Install PHP 7.3]
בשלב הבא, אנו הולכים להתקין את כל מודולי ה־PHP הבאים.
------ On RHEL/CentOS 7/6 ------ # yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear ------ On Fedora ------ # dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear
שלב 6: עצירת וניטרול שירות Apache
כברירת מחדל, Apache ו־Nginx מאזינים באותו פתח (TCP 80). בשל כך, אם Apache מותקן בשרת שלך, עליך לעצור אותו ולנטרל / להסתיר אותו (גרסה חזקה יותר של נטרול המקשרת את השירות אל /dev/null) כדי להשתמש ב־Nginx, או ניתן להסיר אותו אם אינך מתכנן להשתמש בו יותר.
# systemctl stop httpd # systemctl disable httpd or # systemctl mask httpd
שלב 7: הפעלה/עצירת שירותי Nginx, MariaDB ו־PHP-FPM
----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- # systemctl enable nginx # systemctl enable mariadb # systemctl enable php-fpm ----------- Start Nginx, MariaDB and PHP-FPM ----------- # systemctl start nginx # systemctl start mariadb # systemctl start php-fpm
שלב 8: הגדרת Nginx ו־PHP-FPM
בוא ניצור עכשיו מבנה ספרייה עבור האתר שלך (מארח וירטואלי, או בלוק שרת כפי שהוא נקרא ב-Nginx) בתוך /srv/www/. בדוגמה זו נשתמש ב-www.tecmint.com
, אך תרגיש חופשי לבחור דומיין אחר וספריית ראשית אם תרצה.
# mkdir -p /srv/www/tecmint/public_html # mkdir /srv/www/tecmint/logs # chown -R nginx:nginx /srv/www/tecmint
שלב 9: קביעת ספריות מארח וירטואליות ב-Nginx
כפי שאתה יודע, היכולת להריץ מספר אתרים מאותו מחשב היא אחת התכונות המאפיינות של שרתי אינטרנט מרכזיים. בוא נמשיך כעת וניצור את הספריות לאחסון הבלוקים של השרת שלנו (ידועים גם כמארחים וירטואליים ב-Apache) בתוך /etc/nginx.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
השורה הבאה של קוד, שחייבת להיכנס לפני סגירת בלוק ה-HTTP ב-/etc/nginx/nginx.conf, תבטיח שקבצי התצורה בתוך התיקייה /etc/nginx/sites-enabled יילקחו בחשבון כאשר Nginx פועל:
## Load virtual host conf files. ## include /etc/nginx/sites-enabled/*;

כדי ליצור את הבלוק השרת עבור tecmint.com
, הוסף את השורות הבאות של קוד לתוך /etc/nginx/sites-available/tecmint (קובץ זה ייווצר כאשר תזין את הנתיב המלא להפעלת עורך הטקסט המועדף עליך). זהו קובץ תצורת מארח וירטואלי בסיסי.
server { listen 80 default; server_name tecmint; access_log /srv/www/tecmint/logs/access.log; error_log /srv/www/tecmint/logs/error.log; root /srv/www/tecmint/public_html; location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
התהליך של "הפעלת" מארח וירטואלי כולל יצירת קישור סמלי מהגדרת מארח הווירטואלי tecmint
לתוך /etc/nginx/sites-enabled.
# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint
כדי ליישם את השינויים שביצענו, עלינו כעת לאתחל את Nginx. לפעמים יש תועלת בבדיקת קבצי התצורה לשגיאות תחביר לפני כן:
# nginx -t # systemctl restart nginx # systemctl status nginx

כדי לגשת למארח הוירטואלי שנוצר לאחרונה, עליך להוסיף את השורה הבאה ל־/etc/hosts כדי לבצע פתרון שמות דומיין בצורה בסיסית.
192.168.0.18 www.tecmint.com tecmint.com
שלב 10: בדיקת Nginx, MySQL, PHP ו־PHP-FPM
נשארים עם הדרך הקלאסית לבדיקת PHP. יש ליצור קובץ בשם test.php
בתיקייה /srv/www/tecmint/public_html/ ולהוסיף אליו את שורות הקוד הבאות.
פונקציית phpinfo()
מציגה מידע רב על ההתקנה הנוכחית של PHP:
<?php phpinfo(); ?>
עכשיו יש לנחות בדפדפן האינטרנט שלך בכתובת http://tecmint/test.php
ולבדוק את נוכחותם של המודולים שהותקנו והתוכנות הנוספות:
מזל טוב! עכשיו יש לך התקנת עובדת של מערכת LEMP. אם משהו לא הלך כצפוי, נא ליצור קשר איתנו באמצעות הטופס למטה. שאלות והצעות מבורכות.
Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/