كيفية تثبيت 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 لكي نكون قادرين على تثبيت أحدث الإصدارات من هذه الحزم.

اقرأ أيضًا: تثبيت Apache، MySQL 8 أو MariaDB 10 و PHP 7 على CentOS 7

الخطوة 1: تثبيت مستودع EPEL و Remi

EPEL (Extra Packages for Enterprise Linux) هو مستودع مبني على المجتمع يوفر حزم برمجية إضافية لتوزيعات 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: تثبيت Ngnix و MariaDB

Nginx (Engine X) هو خادم ويب مفتوح المصدر وقوي وخفيف الوزن وعالي الأداء، وهو أيضًا خادم بروكسي عكسي وخادم بروكسي بريد لبروتوكولات HTTP وSMTP وPOP3 وIMAP. لمزيد من التفاصيل، قم بزيارة http://wiki.nginx.org/Overview.

MariaDB هو فork من MySQL المعروف، واحدة من أكثر أنظمة إدارة قواعد البيانات العلائقية شهرة في العالم. تم تطويره بالكامل من قبل المجتمع وبالتالي فهو مخصص للبقاء FOSS ومتوافق مع رخصة GPL.

لتثبيت Ngnix و 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 (Hypertext Preprocessor) هو لغة برمجة سكربتية على الخادم مفتوحة المصدر ومجانية تصلح بشكل أفضل لتطوير الويب. يمكن استخدامها لإنشاء صفحات ويب ديناميكية لموقع ويب وتوجد في معظم الأحيان على خوادم *nix. أحد مزايا PHP هو أنه يمكن توسيعه بسهولة من خلال استخدام مجموعة متنوعة من الوحدات النمطية.

لتثبيت PHP، أولاً تحتاج إلى تمكين مستودع Remi عن طريق تثبيت yum-utils، وهي مجموعة من البرامج المفيدة لإدارة مستودعات yum والحزم.

# yum install yum-utils

بمجرد التثبيت، يمكنك استخدام yum-config-manager المقدم من yum-utils لتمكين مستودع Remi كالمستودع الافتراضي لتثبيت إصدارات 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/