العودة إلى المدونة

تثبيت وتهيئة Laravel مع Nginx على Ubuntu 20.04

تثبيت وتهيئة Laravel مع Nginx على Ubuntu 20.04

مقدمة

Laravel هو إطار عمل لتطبيقات الويب يأتي مع مجموعة من الأدوات والموارد المدمجة لتطوير تطبيقات PHP الحديثة. وهو معروف بموثوقيته وأدائه وكفاءته ونمطيته وأمانه. وبسبب ميزاته المدمجة المتنوعة، شهد Laravel نموًا هائلاً في شعبيته. يعتمد العديد من المطورين Laravel لتبسيط عملية تطوير الويب.

سيوضح هذا الدليل كيفية تثبيت وتكوين تطبيق Laravel جديد على Ubuntu 20.04.

Laravel على Ubuntu

سنستخدم Composer، وهو مدير اعتماديات لـ PHP، لتنزيل Laravel وإدارته. لـ تثبيت Composer، اتبع الإرشادات الواردة في هذا البرنامج التعليمي. سيقوم خادم Nginx بتقديم التطبيق. سيقوم بإنشاء تطبيق Laravel تجريبي باستخدام قاعدة بيانات MySQL.

يتطلب هذا الدليل بعض الشروط المسبقة. نفترض أن لديك بالفعل خادم Ubuntu 20.04 تم تكوينه بشكل صحيح ويعمل بالفعل. كمرجع، إليك دليل سريع حول إعداد خادم Ubuntu. من المطلوب أيضًا تثبيت وتكوين حزمة LEMP (Linux و Nginx و MySQL و PHP). لدينا دليل مفصل حول تثبيت وتكوين حزمة LEMP.

نظرًا لأننا سنقوم بتثبيت حزم مختلفة، فإن ذلك يتطلب صلاحيات root. في حالة Ubuntu، يتم تعطيل مستخدم root افتراضيًا. لذلك، نحتاج إلى الوصول إلى مستخدم غير root يتمتع بصلاحيات sudo. إليك كيفية منح صلاحية sudo للمستخدمين الآخرين.

الخطوة 1 – تثبيت وحدات PHP

قبل تثبيت Laravel، نحتاج إلى بعض وحدات PHP المهمة لإطار العمل. تتوفر هذه الوحدات مباشرة من مستودعات حزم Ubuntu الافتراضية. تدعم هذه الوحدات ميزات مثل ترميز الأحرف، و XML، والرياضيات الدقيقة.

أولاً، قم بتحديث ذاكرة التخزين المؤقت لـ APT وتثبيت الحزم:

الخطوة 2 – إنشاء قاعدة بيانات للتطبيق

لتوضيح وظائف Laravel، سنقوم بإنشاء تطبيق قائمة سفر يعرض قائمة بالأماكن التي يرغب المستخدم في زيارتها، وقائمة بالأماكن التي تم زيارتها بالفعل. يمكننا تخزين هذه البيانات في جدول place مع الحقول name (اسم الموقع) و visited (تحديد كـ visited أو nonvisited). سيتضمن حقل إضافي معرفًا فريدًا لكل إدخال. لتوصيل البيانات بتطبيق Laravel الخاص بنا، سنقوم بإنشاء مستخدم MySQL مخصص، ونمنحه الصلاحية الكاملة على قاعدة البيانات travellist.

مكتبة MySQL PHP الأصلية mysqlnd لم تعد تدعم caching_sha2_authentication. وبالتالي، نحتاج إلى إعداد قاعدة البيانات الخاصة بنا باستخدام طريقة المصادقة mysql_native_password. قم بالوصول إلى واجهة تفاعل MySQL كمستخدم root:

بعد ذلك، قم بإنشاء قاعدة بيانات جديدة باسم travellist:

بعد ذلك، قم بإنشاء مستخدم مخصص travellist_user بكلمة مرور مناسبة:

امنح المستخدم travellist_user الصلاحية الكاملة على قاعدة البيانات travellist. سيمنع هذا أيضًا المستخدم من إنشاء أو تعديل أي قاعدة بيانات أخرى على الخادم:

اخرج من واجهة تفاعل MySQL:

exit

دعنا نختبر المستخدم الجديد. سيقوم الأمر التالي بتسجيل الدخول إلى واجهة تفاعل MySQL كمستخدم travellist_user. ستطلب العلامة -p كلمة مرور المستخدم:

قم بطباعة جميع قواعد البيانات المتاحة. كما تم تكوينه سابقًا، يجب أن يظهر travellist و information_schema فقط:

بعد ذلك، نحتاج إلى إنشاء جدول البيانات places. قم بتشغيل بيان MySQL التالي:

دعونا نملأ الجدول ببعض البيانات التجريبية:

دعونا نرى ما إذا كان قد تم تخزين البيانات بنجاح في قاعدة البيانات:

كما نرى، تم ملء جدول الاختبار ببيانات صالحة. يمكننا الآن الخروج من واجهة MySQL:

MySQL shell

الخطوة 3 – إنشاء تطبيق Laravel جديد

نحن جاهزون الآن لإنشاء تطبيق Laravel جديد باستخدام Composer. سنستخدم travellist كتطبيق تجريبي. سيعرض هذا التطبيق قائمة المواقع من قاعدة بيانات MySQL، مما يوضح التكوين الأساسي لـ Laravel. انتقل إلى الدليل الرئيسي للمستخدم:

الخطوة التالية هي إنشاء تطبيق Laravel جديد باستخدام Composer. سيؤدي ذلك إلى إنشاء دليل مخصص travellist يحتوي على تطبيق Laravel أساسي بالإعدادات الافتراضية. قم بتشغيل الأمر التالي:

composer create-project

بمجرد إنشاء التطبيق، يمكننا التحقق مما إذا كان قد تم تثبيت جميع المكونات بنجاح:

php artisan

يؤكد المخرج أن جميع ملفات التطبيق في مكانها الصحيح. كما يضمن أن جميع أدوات سطر أوامر Laravel تعمل بشكل صحيح. ومع ذلك، فإنه لا يزال يتطلب تكوين التطبيق لإعداد قاعدة البيانات وبعض التعديلات الإضافية.

الخطوة 4 – تكوين Laravel

يتم تخزين جميع ملفات تكوين Laravel داخل دليل يسمى config داخل دليل التطبيق الرئيسي. بالإضافة إلى ذلك، عند تثبيت Laravel باستخدام Composer، فإنه ينشئ أيضًا ملف بيئة. يحتوي هذا الملف على إعدادات مختلفة خاصة بالبيئة الحالية. القيم المعلنة داخله ستكون لها الأسبقية على القيم المحددة في ملفات التكوين العادية في config.

سيتطلب كل تثبيت فريد ملف بيئة خاص به لتحديد قيم مثل إعدادات الاتصال بقاعدة البيانات، ورابط التطبيق (URL)، وخيارات تصحيح الأخطاء، وما إلى ذلك. لاحظ أن ملف البيئة يحتوي على معلومات حساسة مثل بيانات اعتماد قاعدة البيانات، ومفاتيح الأمان، وما إلى ذلك. ولهذا السبب يُوصى بشدة بعدم مشاركة هذا الملف علنًا أبدًا.

افتح ملف البيئة باستخدام محرر نصوص:

إليك نموذج لكود البيئة:

DB_PASSWORD=password123

دعونا نفصل هذه القيم:

  • APP_NAME: يصف هذا الحقل اسم التطبيق. سيتم استخدام هذا الاسم للإشعارات والرسائل.
  • APP_ENV: البيئة الحالية للتطبيق.
  • APP_KEY: يتم إنشاء هذا المفتاح تلقائيًا عند تثبيت Laravel من خلال Composer. ويُستخدم لإنشاء قيم عشوائية (salts) وتجزئات (hashes). لا داعي لتغييره.
  • APP_DEBUG: مفتاح تبديل وضع تصحيح الأخطاء. عند تفعيله، سيعرض معلومات تصحيح الأخطاء على جانب العميل.
  • APP_URL: رابط التطبيق الأساسي. يُستخدم أيضًا لإنشاء روابط التطبيق.
  • DB_DATABASE: اسم قاعدة البيانات. في هذه الحالة، ستكون قاعدة البيانات المخصصة التي أنشأناها.
  • DB_USERNAME: اسم المستخدم للاتصال بقاعدة البيانات.
  • DB_PASSWORD: كلمة المرور للاتصال بقاعدة البيانات.

بمجرد إجراء التغييرات، احفظ الملف وأغلق المحرر.

الخطوة 5 – إعداد Nginx

لقد قمنا بتثبيت Laravel بنجاح في مجلد محلي داخل الدليل الرئيسي للمستخدم. يعمل هذا التكوين بشكل جيد في بيئة التطوير المحلية. ومع ذلك، لا يُنصح بتطبيقه على خوادم الويب المفتوحة لشبكة الإنترنت العامة.

خطوتنا التالية هي نقل التطبيق إلى /var/www حيث أنه الموقع المعتاد لتطبيقات الويب التي تعمل على Nginx. استخدم الأمر mv لنقل travellist إلى /var/www/travellist:

بعد ذلك، قم بتعيين صلاحية الوصول للكتابة للمستخدم إلى مجلدات storage و cache. هذه هي مواقع الملفات التي تم إنشاؤها بواسطة تطبيق Laravel:

ملفات التطبيق أصبحت الآن في مكانها الصحيح. ومع ذلك، نحتاج إلى إخبار Nginx بتقديم المحتوى. قم بإنشاء ملف تكوين مضيف افتراضي جديد:

إليك نموذجًا للإعدادات الموصى بها لتطبيق Laravel يعمل على Nginx:

حان الوقت لتنشيط ملف تكوين المضيف الافتراضي الجديد. قم بإنشاء رابط رمزي إلى دليل sites-enabled :

سيقوم أمر Nginx التالي باختبار ملفات التكوين بحثًا عن أخطاء في بناء الجملة:

بعد ذلك، أعد تحميل Nginx:

يجب أن يكون التطبيق متاحًا الآن باستخدام اسم المجال أو عنوان IP (كما هو محدد بواسطة توجيه server_name ):

Installing Laravel image 3

الخطوة 6 – تخصيص الصفحة الرئيسية

بعد تكوين تطبيق Laravel، يمكننا الآن البدء في العمل عليه. للتوضيح، حان الوقت لإنشاء صفحة نموذجية تعرض البيانات التجريبية من جدول قاعدة البيانات places. أولاً، افتح ملف المسار الرئيسي في محرر نصوص:

سيحتوي الملف على بعض المحتوى افتراضيًا. هنا، يتم تعريف المسارات باستخدام الطريقة الثابتة (Route::get). وهي تستقبل path و callback function كمعاملات.

استبدل الكود بالكود التالي:

Installing Laravel image 2

احفظ الملف وأغلق المحرر. بعد ذلك، سنقوم بإنشاء التخطيط لعرض نتائج استعلام قاعدة البيانات للمستخدم. أنشئ ملفًا جديدًا داخل resource/views:

في الكود التالي، قمنا بإنشاء قائمتين من الأماكن اعتمادًا على قيمة visited و togo:

Installing Laravel image 1

احفظ الملف وأغلق المحرر. الآن، قم بالوصول إلى صفحة تطبيق الويب مجددًا:

Travel list

ها قد انتهينا! لدينا الآن تطبيق Laravel فعال يستخدم قاعدة بيانات MySQL للمحتويات.

أفكار نهائية

في هذا البرنامج التعليمي، شرحنا كيفية إعداد تطبيق Laravel على حزمة LEMP التي تعمل على خادم Ubuntu 20.04. كما أوضحنا كيفية تخصيص المسار الافتراضي للاستعلام عن محتوى قاعدة البيانات وعرض النتائج في عرض مخصص. لمزيد من المعلومات حول Laravel، راجع الوثائق الرسمية الخاصة بـ views, routes، و دعم قاعدة البيانات.

يتم إجراء التثبيت في هذا البرنامج التعليمي على جهاز افتراضي مستقل. ومع ذلك، يمكنك أيضًا نشر Laravel على حزم LEMP على Docker.

نتمنى لك تجربة حوسبة ممتعة!

author

Hark Labs

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.