مشاركة عبر


إنشاء تطبيق ويب PHP في خدمات تطبيق Azure

تحذير

بلغ PHP على Windows نهاية الدعم في نوفمبر 2022. يتم دعم PHP فقط لخدمة التطبيقات على Linux. هذه المقالة مخصصة للرجوع إليها فقط.

توفر خدمة تطبيقات Azure خدمة استضافة ويب قابلة للتطوير بدرجة كبيرة وذاتية التصحيح. يوضح هذا البرنامج التعليمي للتشغيل السريعة كيفية نشر تطبيق PHP لخدمة تطبيقات Azure على Windows.

يمكنك إنشاء التطبيق على شبكة الإنترنت باستخدام Azure CLI في سحابة Shell واستخدام Git لنشر نموذج التعليمات البرمجية لتطبيق PHP إلى تطبيق ويب.

نموذج تطبيق يعمل في Azure

يمكنك اتباع الخطوات هنا باستخدام جهاز ماك أو Windows أو لينكس. بمجرد تثبيت المتطلبات الأساسية، يستغرق الأمر حوالي خمس دقائق لإكمال الخطوات.

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

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

لإكمال التشغيل السريع:

تنزيل النموذج محلياً

  1. في نافذة محطة طرفية، شغِّل الأوامر التالية. سيؤدي ذلك إلى نسخ عينة التطبيق إلى جهازك المحلي، والانتقال إلى الدليل الذي يحتوي على عينة التعليمات البرمجية.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. تأكد من أن الفرع الافتراضي هو main.

    git branch -m main
    

    تلميح

    لا تتطلب App Service تغيير اسم الفرع. ورغم ذلك، ونظراً إلى أن العديد من المستودعات تقوم بتغيير فرعها الافتراضي إلى main، يوضح لك هذا البرنامج التعليمي أيضاً كيفية توزيع مستودع من main.

تشغيل التطبيق محليًا

  1. شغل التطبيق محلياً لمعرفة كيف يبدو التطبيق عند نشره إلى Azure. افتح نافذة الوحدة الطرفية واستخدام php الأمر لإطلاق خادم ويب PHP المدمج.

    php -S localhost:8080
    
  2. افتح متصفح ويب، وانتقل إلى التطبيق على http://localhost:8080.

    ستظهر لك رسالة مرحبًا بالعالم! من عينة التطبيق المعروض في الصفحة.

    نموذج التطبيق قيد التشغيل في Azure

  3. اضغط، في نافذة الوحدة الطرفية، علىCtrl+C للخروج من خادم الويب.

Azure Cloud Shell

Azure يستضيف Azure Cloud Shell، بيئة تفاعلية يمكن استخدامها من خلال المستعرض. يمكنك استخدام Bash أو PowerShell مع Cloud Shell للعمل مع خدمات Azure. يمكنك استخدام أوامر Cloud Shell المثبتة مسبقًا لتشغيل التعليمات البرمجية في هذه المقالة دون الحاجة إلى تثبيت أي شيء على البيئة المحلية.

لبدء Azure Cloud Shell:

خيار مثال/ رابط
انقر فوق ⁧⁩جربه⁧⁩ في الزاوية العلوية اليسرى من التعليمة البرمجية أو كتلة الأمر. تحديد ⁧⁩جربه⁧⁩ لا يقوم بنسخ التعليمة البرمجية أو الأمر تلقائيًا إلى Cloud Shell. لقطة شاشة تعرض مثالاً على Try It for Azure Cloud Shell.
انتقل إلى ⁧⁩⁧ https://shell.azure.com⁩⁧⁩، أو حدد زر ⁩تشغيل Cloud Shell لفتح Cloud Shell في المتصفح لديك. زر لتشغيل Azure Cloud Shell.
حدد زر Cloud Shell على شريط القوائم في أعلى اليمين في مدخل Microsoft Azure. لقطة شاشة تعرض زر Cloud Shell في مدخل Microsoft Azure

لاستخدام Azure Cloud Shell:

  1. ابدأ تشغيل Cloud Shell.

  2. حدد الزر نسخ على كتلة التعليمات البرمجية (أو كتلة الأوامر) لنسخ التعليمات البرمجية أو الأمر.

  3. ألصق التعليمة البرمجية أو الأمر في جلسة Cloud Shell بتحديد Ctrl+Shift+Vعلى Windows وLunix، أو بتحديد Cmd+Shift+Vعلى macOS.

  4. حدد 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
} 

أنشئ تطبيق ويب

  1. أنشأ في 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 <URL>
     {
       "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 . احفظ عنوان URL هذا حيث تحتاج إليه لاحقًا.

  2. تصفح للوصول إلى تطبيق الويب الذي تم إنشاؤه حديثا.

    فيما يلي الشكل الذي يُفترض أن يبدو عليه تطبيق الويب الجديد:

    صفحة تطبيق الويب فارغة

انتقال إلى Azure من Git

  1. نظرا لأنك تقوم بنشر الفرع main ، تحتاج إلى تعيين فرع التوزيع الافتراضي لتطبيق App Service الخاص بك إلى main. (راجع تغيير فرع النشر.) في Cloud Shell، اضبط DEPLOYMENT_BRANCH إعداد التطبيق باستخدام الأمر az webapp config appsettings set .

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. سابقاً في النافذة النهائية، أضف جهاز تحكم عن بعد لـ Azure إلى مستودع Git المحلي. استبدل <deploymentLocalGitUrl-from-create-step> بعنوان URL من جهاز Git للتحكم عن بعد الذي حفظته من إنشاء تطبيق ويب.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. اضغط على جهاز التحكم عن بعد 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 <URL>
      cc39b1e..25f1805  main -> main
  

استعرض التطبيق

تصفح إلى التطبيق المنشور باستخدام متصفح الويب الخاص بك.

يتم تشغيل التعليمات البرمجية لنموذج PHP في تطبيق ويب لخدمة تطبيقات Azure.

نموذج تطبيق يعمل في Azure

تهانينا! لقد نشرت أول تطبيق HTML على خدمة التطبيقات.

إجراء تحديث محلي وإعادة نشر التعليمات البرمجية

  1. افتح الملف، باستخدام محرر نص محليindex.phpداخل تطبيق PHP، وأجري تغييراً بسيطاً للنص داخل السلسلة المجاورة:echo

    echo "Hello Azure!";
    
  2. في نافذة الوحدة الطرفية المحلية، قم بإجراء التغييرات في Git، ثم انقل تغييرات التعليمات البرمجية إلى Azure.

    git commit -am "updated output"
    git push azure main
    
  3. بمجرد الانتهاء من النشر، عد مرة أخرى إلى نافذة المتصفح التي تم فتحها في خطوة التصفح إلى التطبيق، ثم حدث الصفحة.

    نموذج التطبيق المحدث قيد التشغيل في Azure

إدارة تطبيق Azure الجديد

  1. انتقل إلى مدخل Microsoft Azure لإدارة التطبيق الذي أنشأته. ابحث وحدد خدمات التطبيق.

    ابحث عن خدمات التطبيقات في مدخل Microsoft Azure وأنشأ تطبيق ويب PHP

  2. حدد اسم تطبيق Azure الخاص بك.

    الانتقال في المدخل إلى تطبيق Azure

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

    صفحة خدمات التطبيق في مدخل Microsoft Azure

    توفر قائمة تطبيق الويب خيارات مختلفة لتهيئة التطبيق.

تنظيف الموارد

في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تتوقع احتياجك لهذه الموارد في المستقبل، فاحذف مجموعة الموارد من خلال تشغيل الأمر التالي في Cloud Shell:

az group delete --name myResourceGroup

قد يستغرق تشغيل هذا الأمر دقيقة.

توفر Azure App Service خدمة تصحيح ذاتي قابلة للتطوير بدرجة كبيرة لاستضافة الويب. يوضح هذا التشغيل السريع كيفية توزيع تطبيق PHP لخدمة تطبيق Azure على نظام التشغيل Linux.

لقطة شاشة لنموذج التطبيق الذي يعمل في Azure.

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

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

تنزيل نموذج المستودع

في الخطوات التالية، يمكنك إنشاء تطبيق الويب باستخدام Azure CLI، ثم نشر نموذج التعليمات البرمجية PHP إلى تطبيق الويب.

يمكنك استخدام Azure Cloud Shell.

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

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. لتشغيل التطبيق محلياً، استخدم الأمر php لتشغيل خادم ويب PHP المضمن.

    php -S localhost:8080
    
  3. استعرض للوصول إلى نموذج التطبيق في http://localhost:8080 في مستعرض ويب.

    لقطة شاشة لنموذج التطبيق الذي يعمل محليا.

  4. اضغط، في نافذة الوحدة الطرفية، علىCtrl+C للخروج من خادم الويب.

نشر التعليمات البرمجية للتطبيق الخاص بك إلى 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 up.

يمكن أن يستغرق هذا الأمر بضع دقائق للانتهاء. أثناء تشغيله، يوفر رسائل حول إنشاء مجموعة الموارد وخطة App Service ومورد التطبيق وتكوين التسجيل والقيام بنشر ZIP. ثم يوفر عنوان 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 <directory-location> ...
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": "<directory-path>"
}

إشعار

يقومaz webapp upالأمر بالإجراءات التالية:

  • إنشاء مجموعة موارد⁩ افتراضية.

  • إنشاء خطة App Service افتراضية.

  • إنشاء تطبيق بالاسم المحدد.

  • توزيع كل الملفات مضغوطة من دليل المشغّل الحالي، مع تمكين أتمتة الإصدار.

  • قم بتخزين المعلمات مؤقتًا محليًا في ملف .azure/config بحيث لا تحتاج إلى تحديدها مرة أخرى عند النشر لاحقًا باستخدام az webapp up أو أوامر az webapp الأخرى من مجلد المشروع. يتم استخدام القيم المخزنة مؤقتاً تلقائياً بشكل افتراضي.

استعرض وصولا إلى التطبيق المنشور في مستعرض الويب الخاص بك على عنوان URL المتوفر في المحطة الطرفية.

يتم تشغيل التعليمات البرمجية عينة تعليمة PHP البرمجية في إحدى خدمات التطبيقات في Azure.

لقطة شاشة لنموذج التطبيق الذي يعمل في Azure، ويظهر Hello World.

تهانينا! قمت بنشر تطبيق PHP الأول إلى App Service باستخدام مدخل Microsoft Azure.

قم بتحديث التطبيق ثم أعد توزيعه

  1. حدد موقع الدليل php-docs-hello-world وافتح ملف index.php باستخدام محرر نصوص محلي. قم بإجراء تغيير بسيط على النص داخل السلسلة بجوار echo:

    echo "Hello Azure!";
    
  2. احفظ التغييرات التي أجريتها، ثم أعِد توزيع التطبيق باستخدام الأمر az webapp up مرة أخرى مع هذه الوسيطات:

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. بمجرد اكتمال النشر، ارجع إلى نافذة المستعرض التي تم فتحها أثناء خطوة الاستعراض إلى التطبيق ، وقم بتحديث الصفحة.

    لقطة شاشة لنموذج التطبيق المحدث الذي يعمل في Azure.

إدارة تطبيق Azure الجديد

  1. انتقل إلى مدخل Microsoft Azure لإدارة التطبيق الذي أنشأته. ابحث وحدد خدمات التطبيق.

    لقطة شاشة لمدخل Microsoft Azure مع خدمات التطبيق المكتوبة في مربع نص البحث.

  2. حدد تطبيق Azure لفتحه.

    لقطة شاشة لقائمة خدمات التطبيقات في Azure. يتم تمييز اسم خدمة التطبيق التجريبي.

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

    لقطة شاشة لصفحة نظرة عامة على App Service في مدخل Microsoft Azure. في شريط الإجراءات، يتم تمييز مجموعة الأزرار استعراض وإيقاف وتبديل وإعادة تشغيل وحذف.

    توفر قائمة تطبيق الويب خيارات مختلفة لتهيئة التطبيق.

تنظيف الموارد

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

احذف مجموعة موارد باستخدام أمر az group delete.

az group delete --name myResourceGroup

يستغرق هذا الأمر دقيقة للتشغيل.