تقديم
يعد برنامج LEMP مجموعة من البرامج مفتوحة المصدر يتم تثبيتها عادةً في ان واحد لتمكين مواقع الويب الديناميكية وتطبيقات الويب الخاصة بالخادم المضيف. هذا المصطلح هو في الواقع اختصار يمثل نظام التشغيل Linux، مع خادم الويب ENginx. يتم تخزين بيانات الموقع في قاعدة بيانات MySQL وتتم معالجة المحتوى الديناميكي بواسطة PHPبي إتش بي.
سنحصل على دليل LEMP هذا مع PHP 7.4 مثبت على خادم CentOS 7، باستخدام MySQL كنظام إدارة قاعدة البيانات.
المتطلبات الأساسية
قبل أن تبدأ بهذا الدليل، يجب أن يكون لديك حساب مستخدم منفصل وغير أساسي تم إعداده على الخادم الخاص بك.
الخطوة 1 – تثبيت إنجن إكس
لعرض صفحات الويب لزوار موقعنا، سنستخدم Nginx، خادم ويب عالي الأداء. للحصول على أحدث إصدار من Nginx ، سنقوم أولاً بتثبيت مستودع EPEL، الذي يحتوي على برنامج إضافي لنظام التشغيل CentOS 7.
لإضافة مستودع CentOS 7 EPEL ، قم بتشغيل الأمر التالي:
$ sudo yum install epel-release
لأننا نستخدم الأمر سودو، يتم تنفيذ هذه الأوامر مع امتيازات المستخدم الخارق. وسوف يطالبك بكلمة مرور المستخدم العادية الخاصة بك من أجل التأكد من أن لديك إذن لتشغيل الأوامر مع قدرات المستخدم الخارق. عند مطالبتك بتأكيد التثبيت، اضغط ص للمتابعة.
الآن بعد تثبيت مستودع EPEL على الخادم الخاص بك ، قم بتثبيت Nginx باستخدام الأمر yum التالي:
$ sudo yum install nginx
بمجرد الانتهاء من التثبيت ، ابدأ خدمة Nginx بـ:
$ sudo systemctl start nginx
يمكنك إجراء فحص فوري للتحقق من أن كل شيء يسير وفقًا للخطة عن طريق زيارة عنوان IP العام لخادمك في متصفح الويب الخاص بك
تنقل في متصفح الويب إلى: http://server_public_IP/
ستظهر لك صفحة CentOS 7 Nginx على الويب الافتراضية ، وهي موجودة لأغراض المعلومات والاختبار. يجب أن يبدو مثل هذا:
يجب أن يبدو مثل هذا:
إذا رأيت هذه الصفحة، فهذا يعني أن خادم الويب مثبت الآن بشكل صحيح.
لتفعيل بدء Nginx، قم بتشغيل الأمر التالي:
$ sudo systemctl enable nginx
الخطوة 2 – تثبيت ماي إس كيو إل
للحصول على دليل كامل، تابع الخطوات في تثبيت ماي إس كيو إل (MySQL) على ريد هات/فيدورا و سينت أو إس (CentOS/RHEL) 7/6 و (Fedora) 31/30.
الخطوة 3 – تثبيت PHP
PHP هو عنصر من عناصر تكوين لدينا من أن الرمز عملية لعرض محتوى ديناميكي. فإنه يمكن تشغيل البرامج النصية، الاتصال إلى قواعد بيانات MySQL لدينا للحصول على معلومات، والعودة المحتوى معالجتها على خادم الويب الخاص بنا للعرض.
إصدار PHP المتاح افتراضيًا في خوادم CentOS 7 قديم ، ولهذا السبب ، سنحتاج إلى تثبيت مستودع حزمة تابع لجهة خارجية من أجل الحصول على PHP 7+ وتثبيته على خادم CentOS 7 الخاص بك. Remi هو مستودع الحزم الشائعة التي توفر أحدث إصدارات PHP لخوادم CentOS.
لتثبيت مستودع Remi لـ CentOS 7 ، قم بتشغيل:
$ sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
بمجرد اكتمال عملية التثبيت، يجب تشغيل أمر لتمكين مستودع يحتوي على نسخة المفضل لديك من PHP. للتحقق من توفر إصدارات PHP 7+ في مستودع Remi ، قم بتشغيل:
$ yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
ستظهر لك النتائج كالاتي:
Output :
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: mirrors.ukfast.co.uk Available Packages php70.x86_64 2.0-1.el7.remi remi-safe php71.x86_64 2.0-1.el7.remi remi-safe php72.x86_64 2.0-1.el7.remi remi-safe php73.x86_64 2.0-1.el7.remi remi-safe php74.x86_64 1.0-3.el7.remi remi-safe php80.x86_64 1.0-3.el7.remi remi-safe
في هذا الدليل، سنقوم بتثبيت PHP 7.4 ،والذي يعد حاليًا أحدث إصدار ثابت من PHP. لتنشيط حزمة Remi الصحيحة للحصول على PHP 7.4 ، قم بتشغيل:
$ sudo yum-config-manager --enable remi-php74
الآن يمكننا الشروع في استخدام يم لتثبيت PHP كالمعتاد. يقوم الأمر التالي تثبيت كافة حزم اللازمة لPHP 7.4 قدم في إنجن إكس والسماح لها للاتصال قاعدة بيانات MySQL على أساس:
$ sudo yum install php php-mysqlnd php-fpm
للتأكد من تواجد اصدار PHP قم بتشغيل:
$ php --version
Output :
PHP 7.4.8 (cli) (built: Jul 9 2020 16:09:41) (NTS) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.21, Copyright (c), by Zend Technologies
تم تثبيت PHP الآن بشكل صحيح على نظامك. بعد ذلك، نحتاج إلى إجراء بعض التعديلات على التكوين الافتراضي. لتسهيل تحرير الملفات على CentOS، سنقوم أولاً بتثبيت nano، وهو محرر نصوص سهل الاستخدام.
$ sudo yum install nano
افتح ملف الاعدادات /etc/php-fpm.d/www.conf
باستخدام nano أو المحرر الذي تختاره:
$ sudo nano /etc/php-fpm.d/www.conf
الآن ننظر في المبادئ التوجيهية المستخدمين والمجموعات. إذا كنت تستخدم nano
، يمكنك الضغط على CTRL + W
للبحث عن هذه المصطلحات داخل الملف المفتوح.
Output :
… user = apache group = apache …
ستلاحظ أن المستخدم ومتغيرات المجموعة مضبوطة على اباتشي. علينا تغييرها إلى nginx:
Output :
… user = nginx group = nginx …
سوف يمر php-fpm
على مضيف معين والمنفذ على TCP. نريد تغيير هذا الاعداد، بحيث تستمع إلى ملف محلي ، حيث يعمل ذلك على تحسين الأداء العام للخادم.
أخيرًا، نحتاج إلى تغيير إعدادات المالك والمجموعة لملف المقبس الذي حددناه للتو في توجيه الاستماع. ابحث عن توجيهات Listen.owner
و Listen.group
و Listen.mode
. يتم التعليق على هذه السطور بشكل افتراضي. أزلهم عن طريق حذف السابقة ؛
التوقيع في بداية السطر. ثم قم بتغيير مالك ومجموعة nginx
:
قم بتغيير الخط الذي يحتوي على توجيه إلى:
listen = /var/run/php-fpm/php-fpm.sock; listen.owner = nginx listen.group = nginx listen.mode = 0660
عندما تنتهي من التحرير، احفظ المِلَفّ وخرجه.
قم بتشغيل الأمر التالي لتمكين وبدء خدمة php-fpm
:
$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
الخطوة 4 – إعداد Nginx لخدمة صفحات PHP
الآن لدينا جميع المكونات الضرورية مثبتة. التغيير الوحيد في التكوين الذي ما زلنا بحاجة إلى إجرائه هو إخبار Nginx باستخدام معالج PHP للمحتوى الديناميكي.
يوفر إنجن إكس دليل مخصص حيث أننا قد تكوين كل موقع استضافت كملف تكوين متميزة باستخدام بلوك. هذا مشابه لأباتشي.
إنشاء ملف جديد في /etc/nginx/conf.d
مجلد:
$ sudo nano /etc/nginx/conf.d/default.conf
قم بنسخ بلوك تعريف خادم PHP أدناه إلى ملف التكوين الخاص بك، وتذكر تغيير توجيه server_name
باستخدام اسم نطاق الخادم الخاص بك أو عنوان IP:
server {
listen 80;
server_name server_public_IP;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
عندما تنتهي من التحرير، احفظ الملف وخرجه.
أخيرًا، أعد تشغيل Nginx لتطبيق التغييرات:
$ sudo systemctl restart nginx
الخطوة 5 – تشغيل PHP على Nginx.
سنقوم الآن بإنشاء صفحة اختبار PHP للتأكد من أن خادم الويب يعمل بشكل صحيح.في /usr/share/nginx/html
الدليل، إنشاء ملف PHP جديد اسمه info.php
:
$ nano /usr/share/nginx/html/info.php
<?php
phpinfo();
عندما تنتهي، احفظ الملف وخرجه.
الآن دعونا نصل إلى ملف المعلومات في:
http://server_public_IP/info.php