كيفية نشر Laravel على خدمات الويب من Amazon: برنامج تعليمي تفصيلي تفصيلي

تحديث يبني حيدات. لقد مر المطورين لدينا كثيرًا. هذه هي قصصهم. يروي هذا واحد من قبل كريستي ، واحدة من كبار صناع التطبيق لدينا.

إذا كنت مطور ويب ، فمن المحتمل أنك سمعت عن Laravel. أنا واحد استخدامها كثيرا. Laravel هو إطار مفتوح المصدر للتحكم في عرض نموذج PHP - ما الذي لا يعجبك؟

وعندما يتعلق الأمر باستضافة التطبيقات التي تدعمها Laravel ، فإنني غالباً ما أستخدم Amazon Web Services (AWS) ، وبالتحديد Elastic Beanstalk. إنه حل استضافة قوي مع كل البنية الأساسية التي تحتاجها (موازنات التحميل ، والقياس التلقائي ، وقاعدة البيانات العلائقية ، VPC المخصصة).

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

لقد صدمت رأسي على الحائط عدة مرات في محاولة لنشر مشاريعنا التي صممها Laravel على AWS. لقد كتبت هذا المقال حتى لا تضطر إلى ذلك.

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

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

0. المتطلبات الأساسية

يجب أن يكون لديك بالفعل حساب مع AWS. إذا لم تقم بذلك ، فقم بإنشاء واحدة ثم استمر في القراءة.

الخطوة 0.1 إنشاء البيئة

  • الوصول إلى AWS وحدة التحكم الخاصة بك
  • انتقل إلى شجرة الفاصولياء المرنة
  • انقر فوق "إنشاء تطبيق" وأكمل النموذج
  • بالنسبة لك إجراءات التطبيق الجديدة إجراءات> إنشاء بيئة
  • في الإطار الجديد ، حدد بيئة خادم الويب وانقر فوق تحديد
  • آكمل الطلب:
  • → اختر PHP كمنصة جاهزة مسبقًا
  • → لرمز التطبيق ، حدد نموذج التطبيق
  • → انقر فوق إنشاء بيئة
  • إذا كنت ترغب في تعديل المزيد من الإعدادات ، انقر فوق تكوين المزيد من الخيارات
  • قم بإجراء التغييرات المطلوبة (يفضل تعيين / إنشاء زوج المفاتيح المستخدم في ssh)
  • انقر فوق إنشاء بيئة

الخطوة 0.2 تكوين البيئة

  • انقر فوق البيئة التي تم إنشاؤها حديثًا
  • في القائمة اليسرى انقر فوق "تكوين"
  • انقر فوق تعديل من البرنامج
  • في خيارات الحاوية:
  • → تعيين جذر المستند إلى / العامة
  • → جعل التكوينات اللازمة الأخرى
  • في خصائص البيئة ، ضع كل معلومات التكوين لديك في ملف .env الخاص بمشروعك
  • انقر فوق تطبيق

1. تحميل الأرشيف عبر متصفح الويب

  • على جهازك المحلي ، انتقل إلى مجلد جذر مشروعك
  • أرشفة المشروع إلى ملف مضغوط
  • تأكد من تضمين مجلد البائع
  • للملفات المتعلقة بـ Git ، مجلد الاختبارات غير مطلوب
قرص مضغوط //
الرمز البريدي ص. الرمز البريدي
  • الوصول إلى AWS وحدة التحكم الخاصة بك
  • انتقل إلى شجرة الفاصولياء المرنة
  • انتقل إلى لوحة معلومات التطبيق
  • انقر فوق تحميل ونشر
  • لتطبيق الرفع ، اختر الأرشيف الذي أنشأته للتو
  • للحصول على تسمية الإصدار ، أدخل رقم الإصدار الجديد
  • انقر فوق نشر

2. استخدام كود النشر

الخطوة 2.1 تكوين تطبيق نشر الكود في AWS

  • الوصول إلى AWS وحدة التحكم الخاصة بك
  • انتقل إلى CodeDeploy
  • انقر فوق إنشاء تطبيق
  • آكمل الطلب:

→ أدخل اسم التطبيق المطلوب

→ اختر EC2 / في أماكن العمل كمحاسبة للنظام الأساسي

→ أدخل اسم مجموعة النشر المطلوب

→ نوع النشر هو النشر في المكان

→ التكوين البيئة:

  • → إذا كان تطبيق الويب الخاص بك يستخدم موازنة التحميل> حدد مجموعة القياس التلقائي لموازنة التحميل
  • → إذا كان تطبيق الويب الخاص بك لا يستخدم موازنة التحميل> حدد مثيل Amazon EC2

→ لتكوين النشر ، حدد CodeDeployDefault.OneAtATime

→ لدور الخدمة ، حدد دور خدمة يمنح AWS CodeDeploy الوصول إلى الحالات (على سبيل المثال ، arn: aws: iam :: 34325423432: role / elasticbeanstalk-ec2-role)

  • انقر فوق حفظ
  • لديك الآن مجموعة النشر الخاصة بك (مجموعة من مثيلات EC2 التي سينفذها CodeDeploy لكل عملية نشر)

الخطوة 2.2 تكوين رمز نشر في Bitbucket

  • تثبيت CodeDeploy الوظيفة الإضافية في Bitbucket
  • انقر على الإعدادات في مستودع مشروع Bitbucket
  • انقر فوق إعدادات CodeDeploy
  • إذا لم يكن لديك دور AWS
  • → اتبع التعليمات لإنشاء دور AWS جديد
  • → حدد الدور ARN والمنطقة من القائمة المنسدلة
  • → انقر فوق حفظ ومتابعة
  • إذا كان لديك دور AWS
  • → حدد تطبيق AWS (الذي قمت بإنشائه أعلاه في الخطوة 2.1) و S3 Bucket لاستخدامه
  • → انقر فوق حفظ

الخطوة 2.3 تكوين ملف YML

يلزمك إخبار CodeDeploy عن كيفية النشر إلى مثيلاتك باستخدام appspec.yml. ثم أضف appspec.yml إلى جذر مشروعك (انظر مثال أدناه)

الإصدار: 0.0
os: لينكس
ملفات:
    - المصدر: /
      الوجهة: / var / www / html /
السنانير:
    BeforeInstall:
        - الموقع: البرامج النصية / BeforeInstall.sh
    AfterInstall:
        - الموقع: البرامج النصية / AfterInstall.sh
  • قم بإنشاء مجلد برامج نصية في جذر مشروعك وقم بتضمين البرامج النصية التي تريد تشغيلها
  • AfterInstall.sh ، من المثال أعلاه ، يمكن أن تبدو بشيء من هذا القبيل
#! / بن / سحق
# تعيين أذونات لتخزين و bootstrap ذاكرة التخزين المؤقت
sudo chmod -R 0777 / var / www / html / storage
sudo chmod -R 0777 / var / www / html / bootstrap / cache
#
cd / var / www / html
#
# تشغيل الملحن
sudo /usr/bin/composer.phar install - no-ansi - no-dev - no-Suggest - no-response - no-progress --prefer-dist - no-scripts -d / var / شبكة الاتصالات العالمية / أتش تي أم أل
#
# تشغيل الأوامر الحرفي
ترحيل php / var / www / html / artisan

الخطوة 2.4 نشر على بيئة مثيل واحد

  • سه في مثيل EC2 الخاص بك
ssh -i ~ / .pem ec2-user@ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
  • تحقق مما إذا كان قد تم تثبيت وكيل CodeDeploy قيد التشغيل
sudo service codedeploy-agent status
  • إذا رأيت رسالة مثل الخطأ: لا يوجد عامل AWS CodeDeploy قيد التشغيل ، فابدأ الخدمة
خدمة sudo بداية codedeploy وكيل
  • إذا رأيت رسالة خطأ مثل codedeploy-agent: لم يتم العثور على الأمر ، فيجب عليك تثبيت وكيل CodeDeploy. للقيام بذلك ، قم بتشغيل الكود أدناه:
مؤتمر نزع السلاح / الوطن / ec2 المستخدم
حليقة -O https://aws-codedeploy-.s3.amazonaws.com/latest/install
شمود + س. / تثبيت
sudo. / تثبيت السيارات
  • إذا تم تثبيت وكيل CodeDeploy بنجاح ، فانتقل إلى Bitbucket واجعل نشرك الأول

الخطوة 2.5 نشر على تحميل بيئة متوازنة

  • الوصول إلى AWS وحدة التحكم الخاصة بك
  • انتقل إلى EC2
  • انقر فوق مجموعات القياس التلقائي في القائمة اليمنى
  • حدد المجموعة التي تتوافق مع موازن التحميل الخاص بك
  • لاحظ اسم بدء التشغيل الذي يتوافق مع مجموعة القياس التلقائي
  • انقر فوق "تشغيل التكوينات" في القائمة اليمنى
  • حدد التكوين الذي تحتاجه
  • اضغط تصرفات> نسخ توصيف التشغيل
  • في الصفحة الجديدة ، انقر فوق تحرير التفاصيل
  • انقر فوق "تفاصيل متقدمة" وفي منطقة نص بيانات المستخدم بعد Content-Disposition: attachment؛ اسم الملف = "user-data.txt" إضافة:
#! / بن / سحق
sudo yum install -y nodejs npm --enablerepo = epel
 
نقطة تثبيت awscli
 
php -r "copy ('https://getcomposer.org/installer'، 'composer-setup.php')؛"
sudo php composer-setup.php - - install-dir = / home / ec2-user - filename = composer
sudo rm composer-setup.php
 
يم -Y التحديث
yum تثبيت -y روبي
 
مؤتمر نزع السلاح / الوطن / ec2 المستخدم
حليقة -O https://aws-codedeploy-.s3.amazonaws.com/latest/install
شمود + س. / تثبيت
./ تثبيت السيارات
  • انقر فوق تخطي للمراجعة
  • انقر فوق تكوين تكوين الضحك
  • حدد زوج المفاتيح
  • تحقق من أنني أقر بأنه يمكنني الوصول إلى ملف المفتاح الخاص المحدد ، وأنه بدون هذا الملف ، لن أتمكن من تسجيل الدخول إلى حالتي والنقر فوق "إنشاء تهيئة التشغيل"
  • انقر فوق مجموعات القياس التلقائي في القائمة اليمنى ثم حدد مجموعة موازنك
  • انقر فوق تصرفات> تحرير
  • في علامة التبويب "تفاصيل" لتشغيل "التكوين" ، حدد التكوين المنشأ حديثًا وانقر فوق "حفظ"
  • تحتاج الآن إلى تحديث ملف appspec.yml الموجود في جذر المشروع الخاص بك باستخدام التعليمة البرمجية التالية
ApplicationStart:
- الموقع: البرامج النصية / RegisterWithELB.sh
ApplicationStop:
- الموقع: البرامج النصية / DeregisterFromELB.sh
  • أضف RegisterWithELB.sh و DeregisterFromELB.sh في مجلد البرامج النصية لمشروعك
  • ادفع التعديلات إلى Bitbucket

الخطوة 2.6 نشر من Bitbucket

  • انتقل إلى مستودع مشروعك على Bitbucket
  • انقر فوق الفروع
  • انقر فوق الفرع الذي تريد نشره على AWS
  • انقر فوق نشر إلى AWS
  • اختر مجموعة النشر المطلوبة
  • انقر فوق بدء النشر
  • يمكنك الآن التحقق من حالة النشر في وحدة تحكم CodeDeploy

استنتاج

مع قليل من الحظ ، في هذه المرحلة ، يجب أن يكون لديك تطبيق Laravel يعمل على تطبيق Flex Beanstalk. لا تتردد في بدء التغيير والتبديل في ملفات الإعداد والتكوين لتلبية احتياجاتك. ماذا بعد؟ إذا كنت تفكر في مراقبة بيئتك أو الاندماج مع خدمات AWS الأخرى ، فقم بإلقاء نظرة على وثائق Beanstalk المرنة.

أتمنى أن تكون قد استمتعت بهذا المقال حول نشر Laravel إلى AWS باستخدام تطبيق Beanstalk المرن. هل لديك أي تلميحات أو نصائح خاصة بك؟ أو ربما بعض الأسئلة؟ لا تتردد في طرحها في التعليقات.

أو ربما تحاول القيام بأشياء رائعة مع Laravel. عندي. تابعونا للحصول على أدلة خطوة بخطوة أخرى لنشر تطبيق Laravel على Heroku ، أو Google Compute Engine على LINUX ، أو Google App Engine ، أو إعداد منصة تجارة إلكترونية قائمة على Laravel.

ترميز سعيد!

إذا كنت تحب هذا ، فقد تكون مهتمًا أيضًا بمشاريعنا الأخرى. اقرأ المزيد على بلوق. تابعونا علىupdision وعلى Facebook.