بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاىه
تثبيت وتجهيز Apache Mariadb php على فيدورا.
قبل أن أبدأ أريد أن أوضح أني لا أعرف شيء عن هذه الامور, بشكل عام لا أحب هذا المجال لاكني لأكتب هذا الموضوع قرأت من هنا وهناك بعض الوثائق أتمنى ان يكون الشرح جيد لمن يريد ان يبدأ أو بالفعل بدأ بتعلم php .
قبل أن أبدأ أرجو التركيز هناك اوامر يجب أن تنفذ بصلاحيات root اي من خلال sudo وهناك أوامر يجب ان تنفذ بصلاحيات المستخدم العادي .
1-تثبيت الحزم الضرورية.
sudo dnf install httpd mariadb mariadb-server php php-common php-mysqlnd php-pdo
للبحث عن كل مكتبات php إختار ما يناسبك.
sudo dnf list php-* |less
2-تفعيل وتشغيل الخدمات الضرورية والتأكد منها .
ملاحظة enable يعني تفعيل الخدمة لتعمل عند كل إقلاع للنظام أما start تشغيل الخدمة لمرة واحدة أما status لعرض معلومات عن حالة الخدمة مع الملاحظة زيادة عدد الخدمات التي تعمل مع إقلاع النظام يعني زيادة وقت إقلاع النظام.
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
sudo systemctl enable httpd.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
sudo systemctl status httpd.service
sudo systemctl status mariadb.service
نلاحظ الخدمتين يعملو من دون مشاكل .
3-إعداد Mariadb لأول مرة.
ملاحظة حسب ما أعلم Mariadb متوافقة تماما مع Mysql لمزيد من المعلومات إبحث في جوجل عن سبب إنشقاق وإنشاء Mariadb (عندما تطلب تثبيت Mysql في فيدورا سيتم تثبيت Mariadb بدلا عنه ) .
sudo mysql_secure_installation
نقرأ ونقرر ونختار انا إخترت الامور هكذا مع الملاحظة نلاحظ أني إخترت كلمة مرور ل root نلاحظ كتبتها مرتين ولن تظهر النجوم بدل كلمة المرور أي لن يظهر شيء ,من يستخدم لينكس يعرف هذا السلوك .
إنشاء قاعدة بيانات وهذه التفاصيل من المفروض أنك تعرفها او تتابع دورة ما للأمانة كما ذكرت سابقا انا لا أحب كثيرا هذا المجال ولا أعرف فيه لاكن في الأسقل صورة لإنشاء قاعدة بيانات سميتها mydb3 وإنشاء مستخدم youcef بكلمة مرور mypassword.
4-تجربة أولية ل httpd أو Apache .
للتأكد فقط نعمل إعادة تشغيل لخدمة httpd.
نحتاج إنشاء ملف بهذا المسار وهنا تحتاج صلاحيات root أي إستخدم sudo وأي محرر نصوص يعمل من الترمينال مثل vi أو nano ثم تكتب داخله كما في الصورة ونحفظه.
sudo vi /var/www/html/info.php
نفتح المتصفح نكتب localhost او ip الجهاز أو إسمه نلاحظ أن خدمة httpd تعمل بشكل جيد .
نكتب إسم السكربت الذي سبق وكتبناه لنلاحظ أن كل شيء على ما يرام من httpd إلى php إذا لم يعمل نجرب إعطائه صلاحيات التشغيل من خلال هذا الأمر لاكن غالبا لن تحتاج هذا .
sudo chmod 755 /var/www/html/info.php
5-إعداد الجدار الناري .
إذا أردنا أن نتصل ب httpd من خارج جهازنا الذي نعمل عليه مثلا من خلال ال Lan نحتاج إعداد الجدار الناري .
نحصل
اولا على إسم ال zone الذي يعمل به الجدار الناري ثم ننفذ هذه الأوامر مع
مراعات تغير إسم ال zone إذا كان مختلف عندك (ممكن طلب فتح منفذ من خلال
تحديد الرقم أو من خلال ذكر إسم الخدمة كما فعلت انا) .
firewall-cmd --get-active-zones
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-service=http
sudo systemctl restart firewalld.service
6-تفعيل ما يسمى UserDir .
إضافة ملفات إلى مسار /var/www/html صعب قليلا ممكن تفعيل ما يسمى UserDir ويصبح لكل مستخدم مجلد خاص به داخل مجلد المنزل الخاص به يضع فيه ملفات الموقع هكذا أسهل لأن العمل سيكون عادي من دون إستخدام صلاحيات root .
تغير صلاحيات مجلد المنزل كما في الصورة .
إذا كان selinux مفعل نتأكد من أن httpd_enable_homedirs تساوي on .
داخل مجلد المنزل الخاص بنا نقوم بإنشاء مجلد public_html ونعطيه صلاحيات 755 .
sudo chmod 711 ~/
sudo setsebool -P httpd_enable_homedirs true
mkdir ~/public_html
chmod 755 ~/public_html
sudo vi /etc/httpd/conf.d/userdir.conf
ندخل على هذا الملف نلاحظ هذا هو قبل التعديل .
نحذف كلمة disabled ونكتب بدلها enabled وممكن أيضا تحديد إسم مستخدم محدد أو أكثر وإلا سيكون الأمر مفعل لكل المستخدمين ملاحظة نتأكد من أن هذا السطر لا يبدأ بعلامة # وإلا سيعتبر تعليق (comment) ولن ياخذ به.
نتاكد من ان سطر UserDir public_html لا يبدأ بعلامة # .
sudo systemctl restart httpd.service
أولا نعيد إقلاع خدمة httpd ثم نفتح المتصفح ونكتب .
(إستبدل yusuf بإسم المستخدم عندك) .
لنجرب السكربت الذي سبق وكتبناه في أول الموضوع سانفله إلى مجلد public_html ثم أعطيه صلاحيات التنفيذ .
إنشاء ملف index.html وتجربته .
لمزيد من المعلومات .
https://httpd.apache.org/docs/2.4/howto/public_html.html
https://httpd.apache.org/docs/2.4/howto/public_html.html
7-أخيرا.
في حال واجهت أي مشكلة في المستقبل اول شيء يجب ان تفكر فيه تخفيف سياسة selinux في حال كان مفعل(Enforcing) أي إجعله Permissive بشكل مؤقت من خلال أمر sudo setenforce 0 إذا حلت المشكلة تبحث عن حل دائم أو بإختصار إجعل سياسية selinux هي Permissive بشكل دائم من خلال التعديل على ملف etc/selinux/config/ .