يجب تثبيت كل مكون على حدة وبترتيب محدد. في هذا الدليل، سنتناول جميع خطوات تثبيت LAMP Stack على Debian 10.
لأغراض هذا الدليل، نفترض أن لديك خادمًا مثبتًا ومهيئًا بما يلي:
- وصول SSH كجذر
- Debian 10 أو 11
- وصول إلى المحطة الطرفية/سطر الأوامر
تثبيت خادم Apache
Apache هو خادم ويب مفتوح المصدر شائع يمكن استخدامه مع PHP. يتمتع Apache بوثائق ممتازة على الإنترنت وكان أحد الرواد في معظم تاريخ الإنترنت. تُستخدم خوادم Apache على نطاق واسع في جميع أنواع الاستضافة. للبدء، تأكد من تحديث ذاكرة التخزين المؤقتة apt باستخدام:sudo apt update
sudo apt install apache2
http://<your_server_ip>
العثور على عنوان IP العام لخادمك:ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
أدخل العنوان في متصفحك، وسترى صفحة الويب الافتراضية لـ Apache، والتي توجد لأغراض إعلامية واختبارية. يجب أن تبدو كما يلي:
إذا ظهرت هذه الصفحة، فهذا يعني أن خادم الويب الخاص بك قد تم تثبيته بشكل صحيح ويمكن الوصول إليه عبر الإنترنت.
تثبيت MySQL MariaDB
بمجرد بدء تشغيل خادم الويب، حان الوقت لتثبيت MariaDB، وهو خادم قاعدة بيانات. سيقوم هذا الخادم بتنظيم قواعد البيانات التي يمكن لموقعك الإلكتروني تخزين المعلومات فيها وتوفير الوصول إليها. لتثبيت MariaDB، سنستخدم apt مرة أخرى لتثبيت الخادم:sudo apt install mariadb-server
سيعرض هذا الأمر أيضًا قائمة بالحزم التي سيتم تثبيتها، إلى جانب مساحة القرص التي ستشغلها. اكتب Y ثم ENTER للتأكيد والمتابعة.
بمجرد اكتمال التثبيت، قم بتشغيل البرنامج النصي للأمان المرفق مع MySQL، والذي سيزيل بعض الإعدادات الافتراضية الخطيرة ويقفل الوصول إلى نظام قاعدة البيانات. قم بتشغيل البرنامج النصي من خلال وحدة التحكم واتبع التعليمات التي تظهر على الشاشة:
sudo mysql_secure_installation
sudo mariadb
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 74
Server version: 10.3.15-MariaDB-1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
لاحظ أنك لم تكن بحاجة إلى تقديم كلمة مرور لتسجيل الدخول كجذر. يعمل هذا لأن طريقة المصادقة الافتراضية لمستخدم الجذر MariaDB هي عبر unix_socket بدلاً من كلمة مرور. على الرغم من أن هذا قد يبدو في البداية وكأنه مشكلة أمنية، إلا أنه في الواقع يجعل خادم قاعدة البيانات أكثر أمانًا، حيث أن المستخدمين الوحيدين المسموح لهم بتسجيل الدخول كمستخدم جذر MariaDB هم مستخدمو النظام الذين يتمتعون بامتيازات sudo، والذين يسجلون الدخول من المحطة الطرفية أو من خلال تطبيق يعمل بهذه الامتيازات.
دور المستخدم الجذر هو دور إداري فقط، لذا لا يمكنك توصيل تطبيق PHP الخاص بك.
لزيادة الأمان، سنقوم بإعداد حسابات مستخدمين مخصصة مع الامتيازات المناسبة لكل قاعدة بيانات. لإظهار هذا الإعداد، سننشئ قاعدة بيانات باسم example_database ومستخدم باسم example_user. يمكنك استبدال هذه الأسماء بأي أسماء تريدها.
لإنشاء قاعدة بيانات جديدة، قم بتشغيل الأمر التالي من وحدة تحكم MariaDB:
CREATE DATABASE example_database;
الآن سننشئ مستخدمًا جديدًا ونمنحه امتيازات كاملة على قاعدة البيانات التي أنشأناها. يقوم الأمر التالي بتعيين كلمة مرور هذا المستخدم إلى PASSWORD، ولكن يجب استبدال هذه القيمة بكلمة مرور آمنة وقوية:
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
سيمنح الأمر المستخدم example_user امتيازات كاملة على قاعدة البيانات example_database، مع منع هذا المستخدم من إنشاء أو تعديل قواعد بيانات أخرى على الخادم.
يمكنك التحقق من الامتيازات للتأكد من أنها محفوظة ومتاحة دون الحاجة إلى إعادة التشغيل:
FLUSH PRIVILEGES;
يمكنك بعد ذلك الخروج من MariaDB:
exit
يمكنك التحقق مما إذا كان المستخدم الجديد لديه الأذونات المناسبة عن طريق تسجيل الدخول مرة أخرى إلى وحدة تحكم MariaDB باستخدام اسم المستخدم وكلمة المرور اللذين أدخلتهما سابقًا:
mariadb -u example_user -p
ملاحظة: سيؤدي استخدام -p في هذا الأمر إلى مطالبتك بكلمة المرور التي اخترتها عند إنشاء المستخدم example_user. بعد تسجيل الدخول إلى وحدة تحكم MariaDB، تأكد من أن لديك حق الوصول إلى قاعدة البيانات example_database:
SHOW DATABASES;
ستتلقى النتيجة التالية:
+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
للخروج من MariaDB، اكتب:
exit
في هذه المرحلة، يكون نظام قاعدة البيانات قد تم تكوينه ويمكنك الانتقال إلى تثبيت PHP، المكون الأخير لخادم LAMP.
تثبيت PHP على LAMP
PHP هي لغة برمجة لعرض مواقع الويب الديناميكية. يمكنها تشغيل البرامج النصية والاتصال بقواعد بيانات MariaDB لتلقي المعلومات من خادم الويب وإرسالها إليه، وعرضها للمستخدم. سنستخدم apt مرة أخرى لتثبيت PHP، إلى جانب بعض الحزم الأخرى التي ستضمن تشغيل كود PHP على خادم Apache والتواصل مع قاعدة بيانات MariaDB:sudo apt install php libapache2-mod-php php-mysql
من المفترض أن يتم تثبيت PHP دون أي مشاكل، ولكننا سنتحقق من أن كل شيء يعمل بشكل صحيح.
في معظم الحالات، من الأفضل تغيير إعدادات Apache لجعل ملف index.php هو الملف الأول الذي يمكن الوصول إليه، بدلاً من index.html. حاليًا، إذا طلب مستخدم دليلًا من الخادم، فسيبحث Apache أولاً عن ملف باسم index.html. نريد أن نخبر خادم الويب أن يفضل ملفات PHP على الملفات الأخرى، لذلك نحتاج إلى تكوين Apache للبحث عن ملف index.php.
للقيام بذلك، اكتب الأمر التالي لفتح ملف dir.conf في محرر نصوص بامتيازات الجذر:
sudo nano /etc/apache2/mods-enabled/dir.conf
سيبدو الملف كما يلي:
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
انقل ملف index.php (المميز أعلاه) إلى الموضع الأول بعد DirectoryIndex، كما يلي:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
أخيرًا، احفظ الملف. إذا كنت تستخدم nano، فيمكنك القيام بذلك بالضغط على CTRL + X ثم Y و ENTER للتأكيد.
الآن أعد تحميل Apache باستخدام:
sudo systemctl reload apache2
يمكنك التحقق من حالة apache2:
sudo systemctl status apache2
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-07-08 12:58:31 UTC; 8s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 11948 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 11954 (apache2)
Tasks: 6 (limit: 4719)
Memory: 11.5M
CGroup: /system.slice/apache2.service
├─11954 /usr/sbin/apache2 -k start
├─11955 /usr/sbin/apache2 -k start
├─11956 /usr/sbin/apache2 -k start
├─11957 /usr/sbin/apache2 -k start
├─11958 /usr/sbin/apache2 -k start
└─11959 /usr/sbin/apache2 -k start
في هذه المرحلة، يكون خادم LAMP الخاص بك قد تم تكوينه. الآن يمكنك الاهتمام ببقية الإعدادات، مثل vhosts.