كيفية تثبيت خادم LAMP على RHEL، CentOS، Rocky و AlmaLinux

A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.

هذا البرنامج التعليمي سيتركز على كيفية تثبيت وتكوين مجموعة LAMP الشهيرة مع PhpMyAdmin في آخر إصدار من RHEL وتوزيعات RHEL المعتمدة مثل CentOS، Oracle Linux، Rocky، و AlmaLinux.

المتطلبات

اعتمادًا على التوزيع المستخدم، استخدم الروابط التالية لأداء تثبيت النظام الأساسي، باستخدام عنوان IP ثابت لتكوين الشبكة.

الخطوة 1: تثبيت خادم الويب Apache

1. بعد الانتهاء من تثبيت نظام بسيط وتكوين واجهة الشبكة لخادمك بعنوان IP ثابت Static IP Address، استمر في تثبيت خدمة أباتشي (httpd) المتاحة من المستودعات الرسمية باستخدام الأمر yum command التالي.

# yum install httpd
Install Apache on Linux

2. بعد الانتهاء من تثبيت Apache، استخدم الأوامر التالية لإدارة التابع Apache بما أن RHEL و CentOS نقلوا سابقا سِكربتات init من SysV إلى SystemdWhy was init Replaced with Systemd in Linux?.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. في الخطوة التالية، تأكد من السماح بالوصول إلى أباتشي عن طريق فتح المنافذ 80 و 443 على الحائط الناري باستخدام firewall-cmd، وهو الأمر الافتراضي لإدارة Firewalld عبر التابع.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

لتطبيق قواعد iptables ثابتة على الحائط الناري باستخدام خيار --permanent وإعادة التشغيل خدمة الحائط الناري لتأثيرها.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in Firewalld

بعض أوامر Firewalld المهمة لإدارة الحماية النارية كما هو مقترح أدناه:

# firewall-cmd --state
# firewall-cmd --list-all
# firewall-cmd --list-interfaces
# firewall-cmd --get-service
# firewall-cmd --query-service service_name
# firewall-cmd --add-port=80/tcp

4. للتحقق من عملية Apache افتح متصفح آخر على بعد بضعة خطوات واكتب عنوان IP الخاص بخادمك باستخدام HTTP في URL، ويجب أن يظهر صفحة افتراضية كما في الصورة أدناه.

http://server_IP
Verify Apache in Linux

5. في الوقت الحالي، يتم تعيين مسار DocumentRoot Apache إلى مسار النظام /var/www/html، والذي بشكل افتراضي لا يوفر أي ملف فهرسة. إذا كنت ترغب في رؤية قائمة عناوين مسار DocumentRoot الخاص بك.

افتح ملف تكوين welcome Apache وقم بتعيين البيان Indexes من إلى + على توجيه LocationMatch، باستخدام الصورة أدناه كمثال.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

6. بعد إجراء التغييرات، أغلق الملف، أعد تشغيل خدمة Apache لتعكس التغييرات، وإعادة التحميل صفحة المتصفح لرؤية النتيجة النهائية.

# systemctl restart httpd
Apache Directory Listing

الخطوة 2: تثبيت دعم PHP لـ Apache

7. قبل تثبيت دعم PHP لغة البرمجة الديناميكية لـ Apache، حصل على قائمة كاملة من وحدات PHP المتاحة والامتدادات باستخدام الأمر التالي.

# yum search php
List PHP Modules

8. حسب نوع التطبيقات التي ترغب في استخدامها، قم بتثبيت الوحدات PHP المطلوبة من القائمة أعلاه، لكن لدعم MySQL/MariaDB الأساسي في PHP وPhpMyAdmin تحتاج لتثبيت الوحدات التالية.

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. للحصول على قائمة كاملة بالمعلومات حول PHP من متصفحك، قم بإنشاء ملف info.php في جذر مستندات Apache باستخدام الأمر التالي، ثم قم بإعادة تشغيل خدمة httpd، وحدد متصفحك إلى عنوان http://server_IP/info.php.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. إذا حصلت على خطأ في تاريخ ووقت PHP، افتح ملف تكوين php.ini، ابحث عن date.timezone، وقم بإلغاء تعليق البيان، ثم أضف موقعك الجغرافي، وأعد تشغيل مشروع أباتشي.

# vi /etc/php.ini

حدد وغير السطر date.timezone ليبدو كما يلي، باستخدام قائمة التوقيتات المدعومة من قبل PHP.

date.timezone = Continent/City
Set PHP Timezone

الخطوة 3: تثبيت وتكوين قاعدة بيانات MariaDB

11. قام توزيع RHEL بالانتقال من MySQL إلى MariaDB كنظام إدارة قواعد البيانات الافتراضي له. لتثبيت قاعدة بيانات MariaDB استخدم الأمر التالي.

# yum install mariadb-server mariadb
Install MariaDB on Linux

12. بعد تثبيت حزمة MariaDB، قم بتشغيل ديمون قاعدة البيانات واستخدم النصيحة mysql_secure_installation لتأمين القاعدة (تعيين كلمة مرور رئيسية، تعطيل تسجيل الدخول عن بُعد من المستخدم الجذر، إزالة قاعدة البيانات التجريبية، وإزالة المستخدمين المجهولين).

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

13. لاختبار وظائف قاعدة البيانات، قم بتسجيل الدخول إلى MariaDB باستخدام حساب الجذر واخرج باستخدام بيان quit.

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

الخطوة 4: تثبيت PhpMyAdmin لإدارة MySQL

14. بشكل افتراضي، لا توفر المستودعات الرسمية أي حزمة برنامجية لواجهة الويب PhpMyAdmin. إذا كنت غير مرتاح باستخدام سطر الأوامر MySQL لإدارة قاعدة البيانات الخاصة بك، يمكنك تثبيت حزمة PhpMyAdmin عن طريق تمكين مستودع remi باستخدام الأمر التالي.

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm  [On CentOS/RHEL 8]
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm  [On CentOS/RHEL 7]

بعد تمكين مستودع remi، قم بتثبيت PhpMyAdmin.

# yum install phpmyadmin
Install PhpMyAdmin on Linux

15. قم بتكوين PhpMyAdmin للسماح بالاتصالات من المضيفين عن بُعد من خلال تحرير ملف phpmyadmin.conf الموجود في دليل conf.d لـ Apache، وقم بتعليق الأسطر التالية.

# vi /etc/httpd/conf.d/phpMyAdmin.conf

أضف السطر “Require all granted” تحت السطر “Require local” كما هو موضح.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Require local
   Require all granted
</Directory>
Allow Remote PhpMyAdmin Access

16. لتتمكن من تسجيل الدخول إلى واجهة الويب PhpMyAdmin، قم بإعادة تشغيل خدمة Apache وحول متصفحك إلى عنوان URL.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

الخطوة 5: تمكين نظام LAMP على نطاق واسع في نظام Linux

17. إذا كنت بحاجة إلى أن تبدأ خدمات MariaDB و Apache تلقائيًا بعد إعادة التشغيل، فقم بإصدار الأوامر التالية لتمكينها على نطاق النظام.

# systemctl enable mariadb
# systemctl enable httpd

هذا كل ما يلزم لتثبيت أساسي لـ LAMP على توزيعات تعتمد على RHEL. السلسلة التالية من المقالات المتعلقة بـ LAMP ستناقش كيفية إنشاء مضيفات افتراضية، وتوليد شهادات SSL ومفاتيح، وإضافة دعم للمعاملات SSL لخادم Apache HTTP.

Source:
https://www.tecmint.com/install-lamp-server-linux/