إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تحذير
بلغ PHP على Windows نهاية الدعم في نوفمبر 2022. يتم دعم PHP فقط لخدمة التطبيقات على Linux. هذه المقالة مخصصة للرجوع إليها فقط.
يوضح لك هذا الدليل كيفية تكوين تطبيقات ويب PHP والنهايات الخلفية للأجهزة المحمولة وتطبيقات واجهة برمجة التطبيقات في Azure App Service. يتم تغطية مهام التكوين الأكثر شيوعا.
إذا كنت مستخدما جديدا لخدمة التطبيقات، فيجب عليك أولا اتباع البرنامج التعليمي إنشاء تطبيق ويب PHP في Azure App Service ونشر تطبيق PHP وMySQL وRedis إلى Azure App Service .
إظهار إصدار PHP
لإظهار إصدار PHP الحالي ، قم بتشغيل الأمر التالي. يمكنك استخدام Azure Cloud Shell:
az webapp config show --resource-group <resource-group-name> --name <app-name> --query phpVersion
استبدل <resource-group-name> و <app-name> بالأسماء المناسبة لتطبيق الويب الخاص بك.
إشعار
لمعالجة فتحة تطوير، قم بتضمين المعلمة --slot متبوعة باسم الفتحة.
لإظهار جميع إصدارات PHP المدعومة، قم بتشغيل الأمر التالي:
az webapp list-runtimes --os windows | grep PHP
يوضح لك هذا الدليل كيفية تكوين تطبيقات ويب PHP والنهايات الخلفية للأجهزة المحمولة وتطبيقات واجهة برمجة التطبيقات في Azure App Service. يتم تغطية مهام التكوين الأكثر شيوعا.
إذا كنت مستخدما جديدا لخدمة التطبيقات، فيجب عليك أولا اتباع البرنامج التعليمي إنشاء تطبيق ويب PHP في Azure App Service ونشر تطبيق PHP وMySQL وRedis إلى Azure App Service .
إظهار إصدار PHP
لإظهار إصدار PHP الحالي ، قم بتشغيل الأمر التالي. يمكنك استخدام Azure Cloud Shell.
az webapp config show --resource-group <resource-group-name> --name <app-name> --query linuxFxVersion
استبدل <resource-group-name> و <app-name> بالأسماء المناسبة لتطبيق الويب الخاص بك.
إشعار
لمعالجة فتحة تطوير، قم بتضمين المعلمة --slot متبوعة باسم الفتحة.
لإظهار جميع إصدارات PHP المدعومة، قم بتشغيل الأمر التالي:
az webapp list-runtimes --os linux | grep PHP
تعيين إصدار PHP
لتعيين إصدار PHP إلى 8.1 ، قم بتشغيل الأمر التالي:
az webapp config set --resource-group <resource-group-name> --name <app-name> --php-version 8.1
لتعيين إصدار PHP إلى 8.1 ، قم بتشغيل الأمر التالي:
az webapp config set --resource-group <resource-group-name> --name <app-name> --linux-fx-version "PHP|8.1"
ماذا يحدث لأقات التشغيل القديمة في App Service؟
يتم إهمال أوقات التشغيل القديمة من قبل المؤسسة التي تحتفظ بها أو بها ثغرات أمنية كبيرة. وفقا لذلك، تتم إزالتها من إنشاء الصفحات وتكوينها في المدخل. عند إخفاء وقت تشغيل قديم من المدخل، يستمر تشغيل أي تطبيق لا يزال يستخدم وقت التشغيل هذا.
إذا كنت ترغب في إنشاء تطبيق بإصدار وقت تشغيل قديم لم يعد معروضا على المدخل، فاستخدم Azure CLI أو قالب ARM أو Bicep. تتيح لك بدائل التوزيع هذه إنشاء أوقات تشغيل مهملة تمت إزالتها من المدخل ولكن لا تزال مدعومة.
إذا تمت إزالة وقت التشغيل بالكامل من النظام الأساسي لخدمة التطبيقات، يتلقى مالك اشتراك Azure إشعارا بالبريد الإلكتروني قبل الإزالة.
تشغيل Composer
إذا كنت تريد أن تقوم App Service بتشغيل Composer في وقت النشر، فإن أسهل طريقة هي تضمين Composer في المستودع الخاص بك.
من نافذة المحطة الطرفية المحلية، قم بتغيير الدليل إلى جذر المستودع الخاص بك. ثم اتبع الإرشادات الموجودة في Download Composer للتنزيل composer.phar إلى جذر الدليل.
شغّل الأوامر التالية. لتشغيلها، تحتاج إلى تثبيت npm .
npm install kuduscript -g
kuduscript --node --scriptType bash --suppressPrompt
يحتوي جذر المستودع الآن على ملفين جديدين: .deployment و deploy.sh.
افتح deploy.sh وابحث عن Deployment المقطع، الذي يبدو مثل هذا المثال:
##################################################################################################################################
# Deployment
# ----------
في نهايةDeployment القسم، أضف قسم التعليمات البرمجية التي تحتاجها لتشغيل الأداة المطلوبة:
# 4. Use composer
echo "$DEPLOYMENT_TARGET"
if [ -e "$DEPLOYMENT_TARGET/composer.json" ]; then
echo "Found composer.json"
pushd "$DEPLOYMENT_TARGET"
php composer.phar install $COMPOSER_ARGS
exitWithMessageOnError "Composer install failed"
popd
fi
قم بتنفيذ جميع التغييرات ونشر التعليمات البرمجية الخاصة بك باستخدام Git أو باستخدام نشر ZIP مع تمكين أتمتة البناء. يجب تشغيل Composer الآن كجزء من أتمتة التوزيع.
تشغيل Bower أو Gulp أو Grunt
إذا كنت تريد أن تقوم App Service بتشغيل أدوات الأتمتة الشائعة في وقت التوزيع، مثل Bower أو Gulp أو Grunt، فأنت بحاجة إلى توفير برنامج نصي مخصص للتوزيع. تقوم App Service بتشغيل هذا البرنامج النصي عند النشر باستخدام Git أو باستخدام نشر ZIP مع تمكين أتمتة البناء.
لتمكين مستودعك من تشغيل هذه الأدوات، تحتاج إلى إضافتها إلى التبعيات في package.json. على سبيل المثال:
"dependencies": {
"bower": "^1.7.9",
"grunt": "^1.0.1",
"gulp": "^3.9.1",
...
}
من نافذة المحطة الطرفية المحلية، قم بتغيير الدليل إلى جذر المستودع وتشغيل الأوامر التالية. لتشغيلها، تحتاج إلى تثبيت npm .
npm install kuduscript -g
kuduscript --node --scriptType bash --suppressPrompt
يحتوي جذر المستودع الآن على ملفين جديدين: .deployment و deploy.sh.
افتح deploy.sh وابحث عن Deployment المقطع، الذي يبدو مثل هذا المثال:
##################################################################################################################################
# Deployment
# ----------
ينتهي هذا القسم بتشغيل npm install --production.
في نهايةDeployment القسم، أضف قسم التعليمات البرمجية التي تحتاجها لتشغيل الأداة المطلوبة:
راجع مثالا في نموذج MEAN.js، حيث يقوم البرنامج النصي للتوزيع أيضا بتشغيل أمر مخصص npm install .
باور
يتم تشغيل bower installهذه القصاصة البرمجية :
if [ -e "$DEPLOYMENT_TARGET/bower.json" ]; then
cd "$DEPLOYMENT_TARGET"
eval ./node_modules/.bin/bower install
exitWithMessageOnError "bower failed"
cd - > /dev/null
fi
جرع
يتم تشغيل gulp imageminهذه القصاصة البرمجية :
if [ -e "$DEPLOYMENT_TARGET/gulpfile.js" ]; then
cd "$DEPLOYMENT_TARGET"
eval ./node_modules/.bin/gulp imagemin
exitWithMessageOnError "gulp failed"
cd - > /dev/null
fi
نعر
يتم تشغيل gruntهذه القصاصة البرمجية :
if [ -e "$DEPLOYMENT_TARGET/Gruntfile.js" ]; then
cd "$DEPLOYMENT_TARGET"
eval ./node_modules/.bin/grunt
exitWithMessageOnError "Grunt failed"
cd - > /dev/null
fi
تخصيص أتمتة البناء
إذا قمت بنشر تطبيقك باستخدام Git أو باستخدام حزم ZIP مع تمكين أتمتة البناء، فإن أتمتة البناء في App Service تخطو من خلال التسلسل التالي:
- تشغيل برنامج نصي مخصص إذا
PRE_BUILD_SCRIPT_PATHحدده. - شغّل
php composer.phar install. - تشغيل برنامج نصي مخصص إذا
POST_BUILD_SCRIPT_PATHحدده.
PRE_BUILD_COMMAND وPOST_BUILD_COMMAND هما من متغيرات البيئة التي تكون فارغة بشكل افتراضي. لتشغيل أوامر prebuild، حدد PRE_BUILD_COMMAND. لتشغيل أوامر ما بعد الإنشاء، قم بتحديد POST_BUILD_COMMAND.
يحدد المثال التالي المتغيرين إلى سلسلة من الأوامر، مفصولة بفواصل:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PRE_BUILD_COMMAND="echo foo, scripts/prebuild.sh"
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings POST_BUILD_COMMAND="echo foo, scripts/postbuild.sh"
بالنسبة لمتغيرات البيئة الأخرى لتخصيص أتمتة البناء، راجع تكوين Oryx.
لمعرفة كيفية تشغيل App Service وإنشاء تطبيقات PHP في Linux، راجع وثائق Oryx حول كيفية اكتشاف تطبيقات PHP وإنشائها.
تخصيص بدء التشغيل
يمكنك تشغيل أمر مخصص في وقت بدء تشغيل الحاوية. شغّل الأمر التالي:
az webapp config set --resource-group <resource-group-name> --name <app-name> --startup-file "<custom-command>"
الوصول إلى متغيرات البيئة
في App Service، يمكنك تعيين إعدادات التطبيق خارج التعليمات البرمجية للتطبيق. يمكنك بعد ذلك الوصول إلى هذه الإعدادات باستخدام النمط القياسي getenv() . على سبيل المثال، للوصول إلى إعداد تطبيق يسمى DB_HOST، استخدم التعليمات البرمجية التالية:
getenv("DB_HOST")
تغيير جذر الموقع
قد يستخدم إطار عمل الويب الذي تختاره دليل فرعي كجذر الموقع. على سبيل المثال، يستخدم public/ الدليل الفرعي كجذر الموقع.
لتخصيص جذر الموقع، قم بتعيين مسار التطبيق الظاهري للتطبيق باستخدام az resource update الأمر . يعين المثال التالي جذر الموقع إلى public/ الدليل الفرعي في المستودع الخاص بك:
az resource update --name web --resource-group <group-name> --namespace Microsoft.Web --resource-type config --parent sites/<app-name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01
بشكل افتراضي، تشير Azure App Service إلى مسار التطبيق الظاهري الجذر (/) إلى الدليل الجذر لملفات التطبيق المنشورة (sites\wwwroot).
قد يستخدم إطار عمل الويب الذي تختاره دليل فرعي كجذر الموقع. على سبيل المثال، يستخدم public/ الدليل الفرعي كجذر الموقع.
تستخدم صورة PHP الافتراضية ل App Service NGINX، ويمكنك تغيير جذر الموقع عن طريق تكوين خادم NGINX مع root التوجيه. يحتوي ملف الضبط هذا على المقتطف التالي الذي يغير التوجيه root :
server {
#proxy_cache cache;
#proxy_cache_valid 200 1s;
listen 8080;
listen [::]:8080;
root /home/site/wwwroot/public; # Changed for Laravel
location / {
index index.php index.html index.htm hostingstart.html;
try_files $uri $uri/ /index.php?$args; # Changed for Laravel
}
...
تستخدم الحاوية الافتراضية ملف التكوين في /etc/nginx/sites-available/default. يتم مسح أي تحرير تجريه على هذا الملف عند إعادة تشغيل التطبيق. لإجراء تغيير فعال عبر عمليات إعادة تشغيل التطبيق، أضف أمر بدء تشغيل مخصصا مثل هذا المثال:
cp /home/site/wwwroot/default /etc/nginx/sites-available/default && service nginx reload
يستبدل هذا الأمر ملف تكوين NGINX الافتراضي بملف يسمى default في جذر المستودع الخاص بك، ويعيد تشغيل NGINX.
الكشف عن جلسة عمل HTTPS
في App Service، يحدث إنهاء TLS/SSL في موازنات تحميل الشبكة، لذلك تصل جميع طلبات HTTPS إلى تطبيقك كطلبات HTTP غير مشفرة. إذا كان منطق التطبيق يحتاج إلى التحقق مما إذا كانت طلبات المستخدم مشفرة، فافحص X-Forwarded-Proto العنوان:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
// Do something when HTTPS is used
}
وتتيح لك أطر عمل الويب الشائعة الوصول إلى معلومات X-Forwarded-* في نمط التطبيق القياسي. في CodeIgniter، تتحقق الدالة is_https() من X_FORWARDED_PROTO قيمة بشكل افتراضي.
تخصيص إعدادات php.ini
إذا كنت بحاجة إلى إجراء تغييرات على تثبيت PHP الخاص بك، يمكنك تغيير أي من توجيهاتphp.ini باستخدام الخطوات التالية.
إشعار
أفضل طريقة لرؤية إصدار PHP والتكوين الحالي php.ini هي الاتصال phpinfo() بتطبيقك.
تخصيص التوجيهات غير PHP_INI_SYSTEM
لتخصيص PHP_INI_USERتوجيهات و PHP_INI_PERDIRو PHP_INI_ALL ، أضف ملفا .user.ini إلى الدليل الجذر لتطبيقك.
أضف إعدادات التكوين إلى .user.ini الملف باستخدام نفس بناء الجملة الذي ستستخدمه php.ini في ملف. على سبيل المثال، إذا أردت تشغيل display_errors الإعداد وتعيين upload_max_filesize الإعداد إلى 10M، فسيحتوي الملف على .user.ini هذا النص:
; Example Settings
display_errors=On
upload_max_filesize=10M
; Write errors to d:\home\LogFiles\php_errors.log
; log_errors=On
أعد نشر تطبيقك باستخدام التغييرات ثم أعد تشغيله.
كبديل لاستخدام .user.ini ملف، يمكنك استخدام ini_set() في تطبيقك لتخصيص هذه التوجيهات غيرPHP_INI_SYSTEM .
ينطبق هذا القسم على التوجيهات التي يكون فيها نمط تغيير ، PHP_INI_USERPHP_INI_PERDIRأو PHP_INI_ALL. للتوجيهات التي تتطلب تغيير الوضع PHP_INI_SYSTEM، انظر تخصيص PHP_INI_SYSTEM التوجيهات.
لتخصيص PHP_INI_USER، PHP_INI_PERDIR، والتوجيهات PHP_INI_ALL لتطبيقات الويب التي تعمل بنظام التشغيل Linux ، مثل upload_max_filesize و expose_php، استخدم ملف .ini مخصص. يمكنك إنشاؤه في جلسة عمل SSH. أولا، قم بإعداد الدليل:
- انتقل إلى موقع Kudu الخاص بك. للحصول على قيم التجزئة والمنطقة العشوائية، في نظرة عامة على التطبيق، انسخ المجال الافتراضي.
- في القائمة العلوية، حدد Debug console، ثم Bash أو SSH.
- في Bash أو SSH، انتقل إلى الدليل الخاص بك
/home/site. - إنشاء دليل يسمى
ini(على سبيل المثال،mkdir ini). - قم بتغيير دليل العمل الحالي إلى
iniالمجلد الذي قمت بإنشائه.
بعد ذلك ، قم بإنشاء ملف .ini حيث تضيف إعداداتك. هذا المثال يستخدم extensions.ini. لا توجد برامج تحرير ملفات مثل Vi أو Vim أو Nano ، لذا استخدمها Echo لإضافة الإعدادات إلى الملف. غيّر قيمة upload_max_filesize من 2M إلى 50M. استخدم الأمر التالي لإضافة الإعداد وإنشاء extensions.ini ملف إذا لم يكن موجودا بالفعل:
/home/site/ini>echo "upload_max_filesize=50M" >> extensions.ini
/home/site/ini>cat extensions.ini
upload_max_filesize=50M
/home/site/ini>
في مدخل Microsoft Azure، أضف إعداد تطبيق لفحص ini الدليل الذي قمت بإنشائه للتو لتطبيق التغيير على upload_max_filesize:
- انتقل إلى مدخل Microsoft Azure وحدد تطبيق App Service Linux PHP.
- انتقل إلى Settings>Environment variables.
- حدد + إضافة.
- بالنسبة إلى Name ، أدخل PHP_INI_SCAN_DIRوللقيمة، أدخل
:/home/site/ini. - حدد تطبيق، ثم تطبيق مرة أخرى. قم بتأكيد التغييرات التي أجريتها.
تأكد من تضمين النقطتين (:) عند إلحاق مسارات مخصصة ب PHP_INI_SCAN_DIR. سيؤدي حذفه إلى إرجاع خطأ 404 من NGINX.
إشعار
إذا قمت بإعادة تحويل ملحق PHP، مثل GD، فاتبع الخطوات في إعادة تحويل ملحقات PHP.
تخصيص توجيهات PHP_INI_SYSTEM
لتخصيص PHP_INI_SYSTEM التوجيهات، استخدم PHP_INI_SCAN_DIR إعداد التطبيق.
أولا ، قم بتشغيل الأمر التالي لإضافة إعداد تطبيق يسمى PHP_INI_SCAN_DIR:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PHP_INI_SCAN_DIR="d:\home\site\ini"
في مدخل Microsoft Azure، حدد تطبيقك. ضمن أدوات التطوير في قائمة الشريط الجانبي، حدد أدوات متقدمة، ثم انتقل إلى d:\home\site استخدام SSH.
إنشاء دليل في d:\home\site يسمى ini. بعد ذلك ، قم بإنشاء ملف .ini في الدليل d:\home\site\ini ، على سبيل المثال ، settings.iniباستخدام التوجيهات التي تريد تخصيصها. استخدم نفس بناء الجملة الذي ستستخدمه php.ini في ملف.
على سبيل المثال، لتغيير قيمة expose_php، قم بتشغيل الأوامر التالية:
cd /home/site
mkdir ini
echo "expose_php = Off" >> ini/settings.ini
لكي تسري التغييرات، أعد تشغيل التطبيق.
ينطبق هذا القسم على التوجيهات التي تحتوي على نمط تغيير في PHP_INI_SYSTEM. إذا لم تدخل تغييراتك حيز التنفيذ بعد اتباع القسم السابق، تحقق من وضع التغيير في التوجيه قبل المتابعة.
لتخصيص PHP_INI_SYSTEM التوجيهات، استخدم PHP_INI_SCAN_DIR إعداد التطبيق.
أولا ، قم بتشغيل الأمر التالي لإضافة إعداد تطبيق يسمى PHP_INI_SCAN_DIR:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings PHP_INI_SCAN_DIR="/usr/local/etc/php/conf.d:/home/site/ini"
القيمة /usr/local/etc/php/conf.d هي الدليل الافتراضي حيث php.ini يوجد. القيمة /home/site/ini هي الدليل المخصص الذي تضيف فيه ملف .ini مخصصا. يمكنك فصل القيم باستخدام نقطتين (:).
انتقل إلى جلسة SSH على الويب باستخدام حاوية Linux الخاصة بك.
إنشاء دليل في /home/site يسمى ini. بعد ذلك ، قم بإنشاء ملف .ini في الدليل /home/site/ini ، على سبيل المثال ، settings.iniباستخدام التوجيهات التي تريد تخصيصها. استخدم نفس بناء الجملة الذي ستستخدمه php.ini في ملف.
تلميح
تستخدم /home حاويات Linux المضمنة في App Service كمساحة تخزين مشتركة مستمرة.
على سبيل المثال، لتغيير قيمة expose_php، قم بتشغيل الأوامر التالية:
cd /home/site
mkdir ini
echo "expose_php = Off" >> ini/settings.ini
لكي تسري التغييرات، أعد تشغيل التطبيق.
تمكين ملحقات PHP
تحتوي عمليات تثبيت PHP المضمنة على الملحقات الأكثر استخداما. يمكنك تمكين المزيد من الملحقات بنفس الطريقة التي تقوم بها بتخصيص توجيهات php.ini.
إشعار
أفضل طريقة لرؤية إصدار PHP والتكوين الحالي php.ini هي الاتصال phpinfo() بتطبيقك.
لتمكين الملحقات الأخرى، استخدم الخطوات التالية:
أضف دليلا
binإلى الدليل الجذر لتطبيقك ، وقم بوضع ملفات الامتداد.dll فيه ، على سبيل المثال ،mongodb.dll. تأكد من أن الملحقات متوافقة مع إصدار PHP في Azure، وأنها متوافقة مع VC9 وغير آمنة لمترابط (NTS).نشر التغييرات.
اتبع الخطوات الواردة في تخصيص توجيهات PHP_INI_SYSTEM، وأضف الملحقات إلى ملف .ini المخصص باستخدام الملحق أو توجيه zend_extension :
extension=d:\home\site\wwwroot\bin\mongodb.dll zend_extension=d:\home\site\wwwroot\bin\xdebug.dll
لكي تسري التغييرات، أعد تشغيل التطبيق.
تحتوي عمليات تثبيت PHP المضمنة على الملحقات الأكثر استخداما. يمكنك تمكين المزيد من الملحقات بنفس الطريقة التي تقوم بها بتخصيص توجيهات php.ini.
إشعار
أفضل طريقة لرؤية إصدار PHP والتكوين الحالي php.ini هي الاتصال phpinfo() بتطبيقك.
لتمكين الملحقات الأخرى، استخدم الخطوات التالية:
أضف دليلا
binإلى الدليل الجذر لتطبيقك ، وضع ملفات الامتداد .so فيه (على سبيل المثال ،mongodb.so). تأكد من أن الملحقات متوافقة مع إصدار PHP في Azure، وأنها متوافقة مع VC9 وغير آمنة لمترابط (NTS).نشر التغييرات.
اتبع الخطوات الواردة في تخصيص توجيهات PHP_INI_SYSTEM، وأضف الملحقات إلى ملف .ini المخصص باستخدام الملحق أو توجيه zend_extension :
extension=/home/site/wwwroot/bin/mongodb.so zend_extension=/home/site/wwwroot/bin/xdebug.so
لكي تسري التغييرات، أعد تشغيل التطبيق.
الوصول إلى سجلات التشخيص
استخدم الأداة القياسية error_log() لجعل سجلات التشخيص تظهر في Azure App Service.
للوصول إلى سجلات وحدة التحكم التي تم إنشاؤها من داخل التعليمات البرمجية للتطبيق الخاص بك في App Service، قم بتشغيل التسجيل التشخيصي عن طريق تشغيل الأمر التالي في Cloud Shell:
az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose
القيم المحتملة ل --level هي Errorو WarningInfoو و.Verbose يتضمن كل مستوى لاحق المستوى السابق. على سبيل المثال، Error يتضمن رسائل الخطأ فقط.
Verbose يتضمن جميع الرسائل.
بعد تشغيل التسجيل التشخيصي، قم بتشغيل الأمر التالي لمشاهدة دفق السجل:
az webapp log tail --resource-group <resource-group-name> --name <app-name>
إذا لم تظهر سجلات وحدة التحكم على الفور، فتحقق مرة أخرى في 30 ثانية.
لإيقاف دفق السجل في أي وقت، حدد Ctrl+C.
يمكنك الوصول إلى سجلات وحدة التحكم التي يتم إنشاؤها من داخل الحاوية.
لتشغيل تسجيل الحاوية، قم بتشغيل الأمر التالي:
az webapp log config --name <app-name> --resource-group <resource-group-name> --docker-container-logging filesystem
استبدل قيم <app-name> و <resource-group-name> بأسماء مناسبة لتطبيق الويب الخاص بك.
بعد تشغيل تسجيل الحاوية، قم بتشغيل الأمر التالي لمشاهدة دفق السجل:
az webapp log tail --name <app-name> --resource-group <resource-group-name>
إذا لم تظهر سجلات وحدة التحكم على الفور، فتحقق مرة أخرى في 30 ثانية.
لإيقاف بث السجلات في أي وقت، استخدم اختصار لوحة المفاتيح Ctrl+C.
استكشاف الأخطاء وإصلاحها
عندما يتصرف تطبيق PHP يعمل بشكل مختلف في App Service أو يحتوي على أخطاء، جرب الحلول التالية:
- الوصول إلى دفق سجل التشخيص.
- اختبر التطبيق محليا في وضع الإنتاج. تشغل App Service تطبيقك في وضع الإنتاج، لذلك تحتاج إلى التأكد من أن مشروعك يعمل كما هو متوقع في وضع الإنتاج محليا. على سبيل المثال:
- اعتمادا على الملف الخاص بك
composer.json، قد يتم تثبيت حزم مختلفة لوضع الإنتاج (requireمقابلrequire-dev). - قد تقوم أطر عمل ويب معينة بنشر ملفات ثابتة بشكل مختلف في وضع الإنتاج.
- قد تستخدم أطر عمل ويب معينة برامج نصية مخصصة لبدء التشغيل عند التشغيل في وضع الإنتاج.
- اعتمادا على الملف الخاص بك
- قم بتشغيل تطبيقك في App Service في وضع التصحيح. على سبيل المثال، في Laravel، يمكنك تكوين تطبيقك لإخراج رسائل تصحيح الأخطاء في الإنتاج عن طريق تعيين
APP_DEBUGإعداد التطبيق إلىtrue.
تجاهل رسالة الروبوتات933456 في السجلات
قد ترى الرسالة التالية في سجلات الحاوية:
2019-04-08T14:07:56.641002476Z "-" - - [08/Apr/2019:14:07:56 +0000] "GET /robots933456.txt HTTP/1.1" 404 415 "-" "-"
يمكنك تجاهل هذه الرسالة بأمان.
/robots933456.txt هو مسار URL وهمي. تستخدم خدمة التطبيقات هذا النموذج للتحقق مما إذا كانت الحاوية قادرة على تلبية الطلبات. يشير رد خطأ "404" إلى أن المسار غير موجود، ويشير إلى خدمة التطبيقات بأن الحاوية سليمة وجاهزة للرد على الطلبات.