איך להתקין את Nginx 1.15, MariaDB 10 ו-PHP 7 על CentOS 7

במאמר זה נסביר כיצד להתקין מערכת 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/*; 
Configuring Nginx VirtualHost

כדי ליצור את הבלוק השרת עבור 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 
Restart Nginx and Verify Status

כדי לגשת למארח הוירטואלי שנוצר לאחרונה, עליך להוסיף את השורה הבאה ל־/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/