إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توفر Azure App Service خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وذاتية التصحيح باستخدام نظام التشغيل Linux. يوضح هذا البرنامج التعليمي كيفية إنشاء تطبيق PHP آمن في Azure App Service متصل بقاعدة بيانات MySQL (باستخدام قاعدة بيانات Azure لخادم MySQL المرن). عند الانتهاء، سيكون لديك تطبيق Laravel يعمل على Azure App Service في Linux.
في هذا البرنامج التعليمي، تتعلم كيفية:
- إنشاء تطبيق PHP وMySQL آمن بشكل افتراضي في Azure
- تكوين أسرار الاتصال إلى MySQL باستخدام إعدادات التطبيق
- توزيع التعليمات البرمجية للتطبيق باستخدام إجراءات GitHub
- قم بتحديث التطبيق ثم أعد توزيعه
- تشغيل عمليات ترحيل قاعدة البيانات بأمان
- تدفق سجلات التشخيص من Azure
- إدارة التطبيق في مدخل Azure
المتطلبات الأساسية
- الاشتراك في Azure إذا لم تكن مشتركاً فيه، فأنشئ حساباً مجانيّاً على Azure قبل البدء. حاليا، باستخدام حساب Azure المجاني، يمكنك تجربة Azure Database for MySQL - Flexible Server مجانا لمدة 12 شهرا. لمزيد من المعلومات، راجع استخدام حساب Azure المجاني لتجربة Azure Database for MySQL - Flexible Server مجانا.
عينات التطبيقات
لمتابعة هذا البرنامج التعليمي، قم باستنساخ نموذج التطبيق أو تنزيله من المستودع:
git clone https://github.com/Azure-Samples/laravel-tasks.git
إذا كنت تريد تشغيل التطبيق محليا، فقم بما يلي:
في .env، قم بتكوين إعدادات قاعدة البيانات (مثل
DB_DATABASE،DB_USERNAME، وDB_PASSWORD) باستخدام الإعدادات في قاعدة بيانات Azure المحلية لقاعدة بيانات MySQL Flexible Server. تحتاج إلى قاعدة بيانات Azure محلية لمثيل MySQL Flexible Server لتشغيل هذا النموذج.من جذر المستودع، ابدأ Laravel بالأوامر التالية:
composer install php artisan migrate php artisan key:generate php artisan serve
1 - إنشاء App Service وقاعدة بيانات Azure لموارد MySQL Flexible Server
في هذه الخطوة، يمكنك إنشاء موارد Azure. الخطوات المستخدمة في هذا البرنامج التعليمي تنشئ App Service وAzure Database for MySQL Flexible Server التكوين الآمن افتراضيا. بالنسبة لعملية الإنشاء، ستحدد:
-
اسم تطبيق الويب. هو الاسم المستخدم كجزء من اسم DNS لتطبيق الويب الخاص بك في شكل
https://<app-name>.azurewebsites.net. - وقت تشغيل التطبيق. إنه المكان الذي تحدد فيه إصدار PHP لاستخدامه لتطبيقك.
- مجموعة الموارد للتطبيق. تتيح لك مجموعة الموارد تجميع (في حاوية منطقية) جميع موارد Azure المطلوبة للتطبيق.
سجّل الدخول إلى مدخل Azure واتبع هذه الخطوات لإنشاء مورد Azure App Service.
| الإرشادات | لقطة شاشة |
|---|---|
في مدخل Microsoft Azure:
|
|
في صفحة إنشاء تطبيق ويب + قاعدة بيانات، املأ النموذج كما يلي.
|
|
يستغرق النشر بضع دقائق لإكماله، وينشئ الموارد التالية:
|
|
2 - إعداد اتصال قاعدة البيانات
قام معالج الإنشاء بإنشاء إعدادات التطبيق لاستخدامها للاتصال بقاعدة البيانات، ولكن ليس بتنسيق قابل للاستخدام للتعليمات البرمجية الخاصة بك حتى الآن. في هذه الخطوة، يمكنك تحرير إعدادات التطبيق وتحديثها بالتنسيق الذي يحتاجه تطبيقك.
| الإرشادات | لقطة شاشة | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| في صفحة خدمة التطبيق، في القائمة اليسرى، حدد تكوين. |
|
||||||||||
في علامة التبويب Application settings في صفحة Configuration ، لكل من الإعدادات التالية، حدد Edit، وقم بتحديث حقل Name بقيم جديدة وحدد OK.
|
|
||||||||||
إنشاء إعداد قاعدة بيانات جديد MYSQL_ATTR_SSL_CA :
|
|
||||||||||
أنشئ إعدادات التطبيق الإضافية التالية باتباع الخطوات نفسها، ثم حدد حفظ.
|
|
3 - توزيع نموذج التعليمات البرمجية
في هذه الخطوة، ستقوم بتكوين توزيع GitHub باستخدام GitHub. إنها مجرد واحدة من العديد من الطرق للتوزيع في خدمة التطبيق، ولكنها أيضا طريقة رائعة للحصول على تكامل مستمر في عملية التوزيع الخاصة بك. بشكل افتراضي، git push كل إلى مستودع GitHub الخاص بك سيبدأ إجراء الإنشاء والتوزيع. ستقوم بإجراء بعض التغييرات على قاعدة التعليمات البرمجية الخاصة بك باستخدام التعليمة البرمجية Visual Studio مباشرة في المتصفح، ثم السماح لإجراءات GitHub بالتوزيع تلقائيا نيابة عنك.
| الإرشادات | لقطة شاشة |
|---|---|
في نافذة متصفح جديدة:
|
|
في صفحة GitHub، افتح تعليمة برمجية Visual Studio في المتصفح بالضغط على . المفتاح. |
|
في تعليمة برمجية Visual Studio في المتصفح افتح config/database.php في المستكشف. في mysql الاتصال، راجع أن إعدادات التطبيق التي قمت بإنشائها سابقا لاتصال MySQL مستخدمة بالفعل (DB_HOST، DB_DATABASE،، DB_USERNAMEDB_PASSWORD، ). MYSQL_ATTR_SSL_CA |
|
| مرة أخرى في صفحة خدمة التطبيق، في القائمة اليسرى، حدد مركز التوزيع. |
|
في صفحة Deployment Center:
.github/workflows الدليل. |
|
في صفحة Deployment Center:
|
|
لإجراء أي تغييرات على التعليمات البرمجية الخاصة بك، انتقل إلى Visual Studio Code في المستعرض:
تلميح يتم تعريف إجراء GitHub بواسطة الملف في مستودع GitHub الخاص بك، في .github/workflow. يمكنك جعله أسرع عن طريق تخصيص الملف. |
|
4 - إنشاء مخطط قاعدة البيانات
يضع معالج الإنشاء مثيل Azure Database for MySQL Flexible Server خلف نقطة نهاية خاصة، بحيث لا يمكن الوصول إليه إلا من الشبكة الظاهرية. نظرا لأن تطبيق خدمة التطبيق متكامل بالفعل مع الشبكة الظاهرية، فإن أسهل طريقة لتشغيل عمليات ترحيل قاعدة البيانات مع قاعدة البيانات الخاصة بك هي مباشرة من داخل حاوية خدمة التطبيق.
| الإرشادات | لقطة شاشة |
|---|---|
في صفحة App Service:
https://<app-name>.scm.azurewebsites.net/webssh/host بدلا من ذلك. |
|
في محطة SSH الطرفية:
|
|
5 - تغيير جذر الموقع
تبدأ دورة حياة تطبيق Laravel في الدليل العام بدلاً من. تستخدم حاوية PHP 8.0 الافتراضية لخدمة التطبيقات Nginx، والتي تبدأ في الدليل الجذر للتطبيق. لتغيير جذر الموقع، تحتاج إلى تغيير ملف تكوين Nginx في حاوية PHP 8.0 (/etc/nginx/sites-available/default). لراحتك، يحتوي مستودع العينة على ملف تكوين مخصص يسمى افتراضي. كما هو ملاحظ سابقا، لا تريد استبدال هذا الملف باستخدام SSH shell، لأنه سيتم فقدان التغييرات الخاصة بك بعد إعادة تشغيل التطبيق.
6 - تصفح إلى التطبيق
7 - دفق سجلات التشخيص
تنظيف الموارد
عند الانتهاء، يمكنك حذف جميع الموارد من اشتراك Azure الخاص بك عن طريق حذف مجموعة الموارد.
الأسئلة الشائعة
- كم يكلف هذا الإعداد؟
- كيف يمكنني الاتصال بقاعدة بيانات Azure لقاعدة بيانات MySQL Flexible Server المؤمنة خلف شبكة ظاهرية؟
- كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
- لماذا توزيع إجراءات GitHub بطيء جدًا؟
كم يكلف هذا الإعداد؟
أسعار موارد الإنشاء كما يلي:
- يتم إنشاء خطة خدمة التطبيق في طبقة متميز V2 ويمكن توسيع نطاقها لأعلى أو لأسفل. راجع تسعير App Service.
- يتم إنشاء مثيل Azure Database for MySQL Flexible Server في طبقة B1ms ويمكن توسيع نطاقه أو تقليله. مع حساب Azure المجاني، تكون طبقة B1ms مجانيا لمدة 12 شهرا، حتى الحدود الشهرية. راجع قاعدة بيانات Azure لتسعير MySQL Flexible Server.
- لا تتحمل الشبكة الظاهرية رسوما ما لم تقم بتكوين وظائف إضافية، مثل التناظر. راجع أسعار شبكة Azure الظاهرية.
- تتحمل منطقة DNS الخاصة رسوما صغيرة. راجع أسعار Azure DNS.
كيف يمكنني الاتصال بقاعدة بيانات Azure لقاعدة بيانات MySQL Flexible Server المؤمنة خلف شبكة ظاهرية؟
للاتصال بقاعدة بيانات Azure لقاعدة بيانات MySQL Flexible Server، يمكنك استخدام عدة طرق استنادا إلى الأدوات والبيئات الموجودة تحت تصرفك:
-
الوصول إلى أداة سطر الأوامر:
-
mysqlاستخدم الأمر من محطة SSH الطرفية للتطبيق للوصول الأساسي.
-
-
أدوات سطح المكتب (على سبيل المثال، MySQL Workbench):
-
استخدام نفق SSH مع Azure CLI:
- إنشاء جلسة SSH لتطبيق الويب باستخدام Azure CLI.
- استخدم جلسة SSH لنفق نسبة استخدام الشبكة إلى MySQL.
-
استخدام VPN من موقع إلى موقع أو Azure VM:
- يجب أن يكون جهازك جزءا من الشبكة الظاهرية.
- ضع في اعتبارك استخدام:
- جهاز Azure ظاهري مرتبط بإحدى الشبكات الفرعية.
- جهاز في شبكة محلية لديه اتصال VPN من موقع إلى موقع بشبكة Azure الظاهرية.
-
استخدام نفق SSH مع Azure CLI:
-
تكامل Azure Cloud Shell:
- دمج Azure Cloud Shell مع الشبكة الظاهرية للوصول المباشر.
كيف يعمل تطوير التطبيقات المحلية مع إجراءات GitHub؟
خذ ملف سير العمل الذي تم إنشاؤه تلقائيا من خدمة التطبيق كمثال، git push كل يبدأ تشغيل بنية وتوزيع جديد. من نسخة محلية من مستودع GitHub، يمكنك إجراء التحديثات المطلوبة دفعه إلى GitHub. على سبيل المثال:
git add .
git commit -m "<some-message>"
git push origin main
لماذا توزيع إجراءات GitHub بطيء جدًا؟
يعرف ملف سير العمل الذي تم إنشاؤه تلقائيا من خدمة التطبيق البناء ثم التوزيع والتشغيل على وظيفتين. لأن كل مهمة تعمل في بيئتها النظيفة الخاصة، يضمن ملف سير العمل أن deploy الوظيفة لديها حق الوصول إلى الملفات من build الوظيفة:
- في نهاية المهمة
build، قم بتحميل الملفات كقطع أثرية. - في بداية المهمة
deploy، قم بتنزيل البيانات الاصطناعية.
يتم إنفاق معظم الوقت الذي تستغرقه العملية المكونة من وظيفتين في تحميل وتنزيل البيانات الاصطناعية. إذا أردت، يمكنك تبسيط ملف سير العمل عن طريق دمج الوظيفتين في واحدة، ما يلغي الحاجة إلى خطوات التحميل والتنزيل.
الملخص
في هذا البرنامج التعليمي، نتعلم طريقة القيام بما يأتي:
- إنشاء PHP آمن بشكل افتراضي وقاعدة بيانات Azure لتطبيق MySQL Flexible Server في Azure
- تكوين أسرار الاتصال بقاعدة بيانات Azure لخادم MySQL المرن باستخدام إعدادات التطبيق
- توزيع التعليمات البرمجية للتطبيق باستخدام إجراءات GitHub
- قم بتحديث التطبيق ثم أعد توزيعه
- تشغيل عمليات ترحيل قاعدة البيانات بأمان
- تدفق سجلات التشخيص من Azure
- إدارة التطبيق في مدخل Azure