إنشاء تطبيق ويب PHP في خدمات تطبيق Azure
توفر خدمة تطبيقات Azure خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وذاتية التصحيح. يوضح هذا البرنامج التعليمي للتشغيل السريعة كيفية نشر تطبيق PHP لخدمة تطبيقات Azure على Windows.
يمكنك إنشاء التطبيق على شبكة الإنترنت باستخدام Azure CLI في سحابة Shell واستخدام Git لنشر نموذج التعليمات البرمجية لتطبيق PHP إلى تطبيق ويب.
يمكنك اتباع الخطوات هنا باستخدام جهاز ماك أو Windows أو لينكس. بمجرد تثبيت المتطلبات الأساسية، يستغرق الأمر حوالي خمس دقائق لإكمال الخطوات.
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
المتطلبات الأساسية
لإكمال التشغيل السريع:
تنزيل النموذج محلياً
في نافذة محطة طرفية، شغِّل الأوامر التالية. سيؤدي ذلك إلى نسخ عينة التطبيق إلى جهازك المحلي، والانتقال إلى الدليل الذي يحتوي على عينة التعليمات البرمجية.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
تأكد من أن الفرع الافتراضي هو
main
.git branch -m main
تلميح
لا تتطلب App Service تغيير اسم الفرع. ورغم ذلك، ونظراً إلى أن العديد من المستودعات تقوم بتغيير فرعها الافتراضي إلى
main
، يوضح لك هذا البرنامج التعليمي أيضاً كيفية توزيع مستودع منmain
.
تشغيل التطبيق محليًا
شغل التطبيق محلياً لمعرفة كيف يبدو التطبيق عند نشره إلى Azure. افتح نافذة الوحدة الطرفية واستخدام
php
الأمر لإطلاق خادم ويب PHP المدمج.php -S localhost:8080
افتح متصفح ويب، وانتقل إلى التطبيق على
http://localhost:8080
.ستظهر لك رسالة مرحبًا بالعالم! من عينة التطبيق المعروض في الصفحة.
اضغط، في نافذة الوحدة الطرفية، علىCtrl+C للخروج من خادم الويب.
Azure Cloud Shell
Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.
لبدء Azure Cloud Shell:
خيار | مثال/ رابط |
---|---|
انقر فوق جربه في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد جربه لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. | ![]() |
انتقل إلى https://shell.azure.com، أو حدد زر تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. | ![]() |
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. | ![]() |
لاستخدام Azure Cloud Shell:
ابدأ تشغيل Cloud Shell.
حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.
ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.
حدد Enter لتشغيل التعليمات البرمجية أو الأمر.
تكوين مستخدم توزيع
يمكن لـ FTP وGit النشر على تطبيق موقع Azure باستخدام مستخدم نشر. بمجرد تكوين مستخدم النشر الخاص بك، يمكنك استخدامه لكافة عمليات نشر Azure الخاصة بك. يختلف اسم مستخدم وكلمة مرور التوزيع على مستوى الحساب عن بيانات اعتماد اشتراك Azure الخاصة بك.
لتكوين مستخدم التوزيع، قم بتشغيل مجموعة مستخدم توزيع az webapp باستخدام الأمر في Azure Cloud Shell. استبدل <اسم المستخدم> و< كلمة المرور> باسم مستخدم التوزيع وكلمة مروره.
- يجب أن يكون اسم المستخدم فريدًا في Azure، ولا يجب أن يحتوي دفع Git المحلي على رمز ’@‘.
- يجب أن يكون طول كلمة المرور ثمانية أحرف على الأقل، مع اثنين من العناصر الثلاثة التالية: الأحرف والأرقام والرموز.
az webapp deployment user set --user-name <username> --password <password>
يظهر إخراج JSON كلمة المرور كـ null
. إذا واجهت خطأ، قم بتغيير 'Conflict'. Details: 409
اسم المستخدم. إذا واجهت خطأ 'Bad Request'. Details: 400
، فاستخدم كلمة مرور أقوى.
سجل اسم المستخدم وكلمة المرور لاستخدامها لتوزيع تطبيقات الويب الخاصة بك.
إنشاء مجموعة موارد
مجموعة الموارد هي حاوية منطقية يتم فيها نشر موارد Azure وإدارتها، مثل تطبيقات الويب وقواعد البيانات وحسابات التخزين. على سبيل المثال، يمكنك اختيار حذف مجموعة الموارد بأكملها في خطوة واحدة بسيطة لاحقاً.
في Cloud Shell، أنشئ مجموعة موارد باستخدام الأمر az group create
. ينشئ المثال التالي مجموعة موارد باسم myResourceGroup في موقع West Europe. لرؤية جميع المواقع المدعومة لخدمة التطبيقات في المستوى المجاني، قم بتشغيل az appservice list-locations --sku FREE
الأمر.
az group create --name myResourceGroup --location "West Europe"
يمكنك بشكل عام إنشاء مجموعة مواردك والموارد في منطقة قريبة منك.
عند انتهاء الأمر، يظهر لك إخراج JSON خصائص مجموعة الموارد.
إنشاء خطة خدمة تطبيق Azure
في Cloud Shell، أنشئ خطة خدمة التطبيق باستخدام الأمر az appservice plan create
.
ينشئ المثال التالي خطة App ServicemyAppServicePlan
المسماة في طبقة التسعيرالمجاني:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
عند إنشاء خطة خدمة التطبيق، يعرض Azure CLI معلومات مشابهة للمثال التالي:
{ "freeOfferExpirationTime": null, "geoRegion": "West Europe", "hostingEnvironmentProfile": null, "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan", "kind": "linux", "location": "West Europe", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", < JSON data removed for brevity. > "targetWorkerSizeId": 0, "type": "Microsoft.Web/serverfarms", "workerTierName": null }
أنشئ تطبيق ويب
أنشأ في Cloud Shell، تطبيق الويب في خطة خدمة التطبيق
myAppServicePlan
باستخدام الأمرaz webapp create
.في المثال التالي، استبدل
<app-name>
باسم تطبيق مميز عالمي (الأحرف الصالحة هيa-z
و0-9
و-
). تم تحديد وقت التشغيل إلىPHP|7.4
. لمعرفة جميع أوقات التشغيل المعتمدة، قم بتشغيلaz webapp list-runtimes
.az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-git
عند إنشاء تطبيق ويب، يعرض Azure CLI الإخراج مشابهًا للمثال التالي:
Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git' { "availabilityState": "Normal", "clientAffinityEnabled": true, "clientCertEnabled": false, "cloningInfo": null, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<app-name>.azurewebsites.net", "enabled": true, < JSON data removed for brevity. > }
لقد أنشأت تطبيق ويب جديد فارغ، مع تمكين نشر git.
إشعار
يظهر عنوان URL الخاص ببرنامج Git عن بعد في الخاصية
deploymentLocalGitUrl
، مع التنسيقhttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. احفظ عنوان URL هذا حيث تحتاج إليه لاحقًا.تصفح للوصول إلى تطبيق الويب الذي تم إنشاؤه حديثا. استبدل <app-name> باسم تطبيقك المميز المُنشأ في الخطوة السابقة.
http://<app-name>.azurewebsites.net
فيما يلي الشكل الذي يُفترض أن يبدو عليه تطبيق الويب الجديد:
انتقال إلى Azure من Git
نظرًا لأنك تقوم بنشر
main
الفرع، فأنت بحاجة إلى تعيين فرع النشر الافتراضي لتطبيقي App Servicemain
(انظر تغيير فرع النشر). في Cloud Shell، اضبطDEPLOYMENT_BRANCH
إعداد التطبيق باستخدامaz webapp config appsettings set
الأمر.az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
سابقاً في النافذة النهائية، أضف جهاز تحكم عن بعد لـ Azure إلى مستودع Git المحلي. استبدل <deploymentLocalGitUrl-from-create-step> بعنوان URL من جهاز Git للتحكم عن بعد الذي حفظته من إنشاء تطبيق ويب.
git remote add azure <deploymentLocalGitUrl-from-create-step>
اضغط على جهاز التحكم عن بعد Azure لنشر التطبيق الخاص بك مع الأمر التالي. عندما يطالبك Git Credential Manager ببيانات الاعتماد، تأكد من إدخال بيانات الاعتماد التي قمت بإنشائها في تكوين نشر git المحلي، وليس بيانات الاعتماد التي تستخدمها لتسجيل الدخول إلى مدخل Microsoft Azure.
git push azure main
ولربما يستغرق التشغيل بضع دقائق. أثناء التشغيل، يعرض معلومات مُشابهة للمثال التالي:
Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: Updating branch 'main'. remote: Updating submodules. remote: Preparing deployment for commit id '25f18051e9'. remote: Generating deployment script. remote: Running deployment command... remote: Handling Basic Web Site deployment. remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot' remote: Copying file: '.gitignore' remote: Copying file: 'LICENSE' remote: Copying file: 'README.md' remote: Copying file: 'index.php' remote: Ignoring: .git remote: Finished successfully. remote: Running post deployment command(s)... remote: Deployment successful. To https://<app-name>.scm.azurewebsites.net/<app-name>.git cc39b1e..25f1805 main -> main
استعرض التطبيق
تصفح إلى التطبيق المنشور باستخدام متصفح الويب الخاص بك.
http://<app-name>.azurewebsites.net
يتم تشغيل التعليمات البرمجية لنموذج PHP في تطبيق ويب لخدمة تطبيقات Azure.
تهانينا! لقد نشرت أول تطبيق HTML على خدمة التطبيقات.
إجراء تحديث محلي وإعادة نشر التعليمات البرمجية
افتح الملف، باستخدام محرر نص محلي
index.php
داخل تطبيق PHP، وأجري تغييراً بسيطاً للنص داخل السلسلة المجاورة:echo
echo "Hello Azure!";
في نافذة الوحدة الطرفية المحلية، قم بإجراء التغييرات في Git، ثم انقل تغييرات التعليمات البرمجية إلى Azure.
git commit -am "updated output" git push azure main
بمجرد الانتهاء من النشر، عد مرة أخرى إلى نافذة المتصفح التي تم فتحها في خطوة التصفح إلى التطبيق، ثم حدث الصفحة.
إدارة تطبيق Azure الجديد
انتقل إلى مدخل Microsoft Azure لإدارة التطبيق الذي أنشأته. ابحث وحدد خدمات التطبيق.
حدد اسم تطبيق Azure الخاص بك.
ستظهر لك صفحة نبذة تطبيق الويب الخاص بك. هنا، يمكنك تنفيذ مهام الإدارة الأساسية مثل التصفح ،والتوقف والبدءوإعادة التشغيل والحذف.
توفر قائمة تطبيق الويب خيارات مختلفة لتهيئة التطبيق.
تنظيف الموارد
في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تتوقع احتياجك لهذه الموارد في المستقبل، فاحذف مجموعة الموارد من خلال تشغيل الأمر التالي في Cloud Shell:
az group delete --name myResourceGroup
ربما يستغرق الأمر بضع دقائق للتشغيل.
توفر خدمة تطبيقات Azure خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وذاتية التصحيح. يوضح هذا التشغيل السريع كيفية توزيع تطبيق PHP لخدمة تطبيق Azure على نظام التشغيل Linux.
يمكنك اتباع الخطوات هنا باستخدام جهاز ماك أو Windows أو لينكس. بمجرد تثبيت المتطلبات الأساسية، يستغرق الأمر حوالي خمس دقائق لإكمال الخطوات.
للتشغيل السريع، تحتاج إلى:
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- بوابه
- PHP
- Azure CLI لتشغيل الأوامر في أي shell لإنشاء موارد Azure وتكوينها.
1 - الحصول على عينة المستودع
يمكنك إنشاء تطبيق الويب باستخدام واجهة سطر الأوامر في Azure في Cloud Shell، واستخدام Git لتوزيع عينة تعليمة PHP البرمجية لتطبيق الويب.
في نافذة المحطة الطرفية، قم بتشغيل الأوامر التالية لاستنساخ نموذج التطبيق إلى جهازك المحلي والانتقال إلى جذر المشروع.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
لتشغيل التطبيق محلياً، استخدم الأمر
php
لتشغيل خادم ويب PHP المضمن.php -S localhost:8080
استعرض للوصول إلى نموذج التطبيق في
http://localhost:8080
في مستعرض ويب.اضغط، في نافذة الوحدة الطرفية، علىCtrl+C للخروج من خادم الويب.
2 - توزيع كود تطبيقك إلى Azure
يحتوي Azure CLI على أمر az webapp up
يقوم بإنشاء الموارد الضرورية ونشر التطبيق الخاص بك في خطوة واحدة.
في المحطة الطرفية، وزّع الكود في مجلدك المحلي باستخدام الأمر az webapp up
:
az webapp up --runtime "PHP:8.2" --os-type=linux
- إذا لم يتم التعرف على الأمر
az
، فتأكد من تثبيت واجهة سطر الأوامر في Azure. - تنشئ
--runtime "PHP:8.2"
الوسيطة تطبيق الويب مع إصدار PHP 8.2. - تنشئ الوسيطة
--os-type=linux
تطبيق الويب على خدمة التطبيق على نظام التشغيل Linux. - يمكنك اختياريًا تحديد اسم باستخدام الوسيطة
--name <app-name>
. إذا لم تقدم اسما، إنشاء اسم تلقائيا. - يمكنك تضمين اختياريا حجة
--location <location-name>
حيث<location_name>
هو المنطقة Azure المتاحة. يمكنك استرداد قائمة المناطق المسموح بها لحساب Azure الخاص بك عن طريق تشغيل الأمرaz account list-locations
. - إذا ظهر لك الخطأ القائل "تعذر الكشف التلقائي عن مكدس وقت التشغيل لتطبيقك"، فتأكد من تشغيل الأمر في دليل التعليمة البرمجية (راجع استكشاف مشكلات الكشف التلقائي وإصلاحها مع تشغيل az webapp).
يمكن أن يستغرق هذا الأمر بضع دقائق للانتهاء. أثناء تشغيله، يوفر رسائل حول إنشاء مجموعة الموارد وخطة App Service ومورد التطبيق وتكوين التسجيل والقيام بنشر ZIP. ثم يعطي الرسالة، "يمكنك تشغيل التطبيق على http://<app-name>.azurewebsites.net"، وهو عنوان URL للتطبيق على Azure.
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/msangapu/myPhpApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at http://<app-name>.azurewebsites.net { "URL": "http://<app-name>.azurewebsites.net", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "linux", "resourcegroup": "<group-name>", "runtime_version": "php|8.2", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "//home//msangapu//myPhpApp" }
إشعار
يقومaz webapp up
الأمر بالإجراءات التالية:
إنشاء مجموعة موارد افتراضية.
إنشاء خطة App Service افتراضية.
إنشاء تطبيق بالاسم المحدد.
توزيع كل الملفات مضغوطة من دليل المشغّل الحالي، مع تمكين أتمتة الإصدار.
قم بتخزين المعلمات مؤقتًا محليًا في ملف .azure/config بحيث لا تحتاج إلى تحديدها مرة أخرى عند النشر لاحقًا باستخدام
az webapp up
أو أوامرaz webapp
الأخرى من مجلد المشروع. يتم استخدام القيم المخزنة مؤقتاً تلقائياً بشكل افتراضي.
استعرض للوصول إلى تطبيق المنتشرة في متصفح الويب الخاص بك في URLhttp://<app-name>.azurewebsites.net
.
يتم تشغيل التعليمات البرمجية عينة تعليمة PHP البرمجية في إحدى خدمات التطبيقات في Azure.
تهانينا! قمت بنشر تطبيق PHP الأول إلى App Service باستخدام مدخل Microsoft Azure.
3 - تحديث التطبيق وإعادة توزيعه
افتح الملف، باستخدام محرر نص محلي
index.php
داخل تطبيق PHP، وأجري تغييراً بسيطاً للنص داخل السلسلة المجاورة:echo
echo "Hello Azure!";
احفظ التغييرات التي أجريتها، ثم أعِد توزيع التطبيق باستخدام الأمر az webapp up مرة أخرى مع هذه الوسيطات:
az webapp up --runtime "PHP:8.2" --os-type=linux
بمجرد اكتمال النشر، ارجع إلى نافذة المستعرض التي تم فتحها أثناء خطوة الاستعراض إلى التطبيق ، وقم بتحديث الصفحة.
4 - إدارة تطبيق Azure الجديد
انتقل إلى مدخل Microsoft Azure لإدارة التطبيق الذي أنشأته. ابحث وحدد خدمات التطبيق.
حدد اسم تطبيق Azure الخاص بك.
يجب عرض صفحة نظرة عامة على تطبيق الويب الخاص بك. هنا، يمكنك تنفيذ مهام الإدارة الأساسية مثل التصفح ،والتوقف والبدءوإعادة التشغيل والحذف.
توفر قائمة تطبيق الويب خيارات مختلفة لتهيئة التطبيق.
5. تنظيف الموارد
عند الانتهاء من عينة التطبيق، يمكنك إزالة جميع الموارد الخاصة بالتطبيق من Azure. يساعدك على تجنب الرسوم الإضافية وإبقاء اشتراك Azure الخاص بك غير مزدحم. تؤدي إزالة مَجموعة الموارد أيضا إلى إزالة جميع الموارد في مجموعة الموارد وهي أسرع طريقة لإزالة جميع موارد Azure لتطبيقك.
احذف مجموعة موارد باستخدام أمر az group delete.
az group delete --name myResourceGroup
يستغرق هذا الأمر دقيقة للتشغيل.