تكوين تطبيق PHP لـ Azure App Service

إظهار إصدار PHP

يوضح لك هذا الدليل كيفية تكوين تطبيقات ويب PHP والأطراف الخلفية للأجهزة المحمولة وتطبيقات واجهة برمجة التطبيقات في Azure App Service.

يوفر هذا الدليل المفاهيم والإرشادات الأساسية لمطوري PHP الذين يقومون بتوزيع التطبيقات في App Service. إذا لم يسبق لك استخدام Azure App Service، فاتبع التشغيل السريع لـ PHP والبرنامج التعليمي لـ PHP باستخدام MySQL أولاً.

لإظهار إصدار PHP الحالي، قم بتشغيل الأمر التالي في Cloud Shell:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query phpVersion

إشعار

لمعالجة فتحة تطوير، قم بتضمين المعلمة --slot متبوعة باسم الفتحة.

لإظهار كافة إصدارات PHP المدعومة، قم بتشغيل الأمر التالي في Cloud Shell:

az webapp list-runtimes --os windows | grep PHP

يوضح لك هذا الدليل كيفية تكوين تطبيقات ويب PHP والأطراف الخلفية للأجهزة المحمولة وتطبيقات واجهة برمجة التطبيقات في Azure App Service.

يوفر هذا الدليل المفاهيم والإرشادات الأساسية لمطوري PHP الذين يقومون بتوزيع التطبيقات في App Service. إذا لم يسبق لك استخدام Azure App Service، فاتبع التشغيل السريع لـ PHP والبرنامج التعليمي لـ PHP باستخدام MySQL أولاً.

لإظهار إصدار PHP الحالي، قم بتشغيل الأمر التالي في Cloud Shell:

az webapp config show --resource-group <resource-group-name> --name <app-name> --query linuxFxVersion

إشعار

لمعالجة فتحة تطوير، قم بتضمين المعلمة --slot متبوعة باسم الفتحة.

لإظهار كافة إصدارات PHP المدعومة، قم بتشغيل الأمر التالي في Cloud Shell:

az webapp list-runtimes --os linux | grep PHP

تعيين إصدار PHP

قم بتشغيل الأمر التالي في Cloud Shell لتعيين إصدار PHP إلى 8.1:

az webapp config set --resource-group <resource-group-name> --name <app-name> --php-version 8.1

قم بتشغيل الأمر التالي في Cloud Shell لتعيين إصدار PHP إلى 8.1:

az webapp config set --resource-group <resource-group-name> --name <app-name> --linux-fx-version "PHP|8.1"

تشغيل Composer

إذا كنت تريد أن تقوم App Service بتشغيل Composer في وقت التوزيع، فإن أسهل طريقة هي تضمين Composer في المستودع الخاص بك.

من نافذة المحطة الطرفية المحلية، قم بتغيير الدليل إلى جذر المستودع الخاص بك، واتبع الإرشادات الواردة في تنزيل 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 كجزء من التنفيذ التلقائي للتوزيع.

تشغيل Grunt/Bower/Gulp

إذا كنت تريد أن تقوم App Service بتشغيل أدوات التنفيذ التلقائي الشائعة في وقت التوزيع، مثل Grunt أو Bower أو Gulp، فأنت بحاجة إلى توفير برنامج نصي مخصص للتوزيع. تقوم 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

تشغل هذه القصاصة البرمجية 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

تشغل هذه القصاصة البرمجية 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

تشغل هذه القصاصة البرمجية 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 يبني خطوات التنفيذ التلقائي من خلال التسلسل التالي:

  1. قم بتشغيل برنامج نصي مخصص إذا تم تحديده بواسطة PRE_BUILD_SCRIPT_PATH.
  2. شغّل php composer.phar install.
  3. قم بتشغيل برنامج نصي مخصص إذا تم تحديده بواسطة POST_BUILD_SCRIPT_PATH.

PRE_BUILD_COMMAND وPOST_BUILD_COMMAND هما من متغيرات البيئة التي تكون فارغة بشكل افتراضي. لتشغيل أوامر ما قبل الإنشاء، قم بتحديد 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 وإنشائها.

تخصيص بدء التشغيل

إذا أردت، يمكنك تشغيل أمر مخصص في وقت بدء تشغيل الحاوية، عن طريق تشغيل الأمر التالي في Cloud Shell:

az webapp config set --resource-group <resource-group-name> --name <app-name> --startup-file "<custom-command>"

الوصول إلى متغيرات البيئة

في App Service، يمكنك تعيين إعدادات التطبيق خارج التعليمات البرمجية للتطبيق. ثم يمكنك الوصول إليها باستخدام نمط getenv() القياسي. على سبيل المثال، للوصول إلى إعداد تطبيق يسمى DB_HOST، استخدم التعليمات البرمجية التالية:

getenv("DB_HOST")

تغيير جذر الموقع

قد يستخدم إطار عمل الويب الذي تختاره دليل فرعي كجذر للموقع. على سبيل المثال، يستخدم Laravel الدليل الفرعي 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).

قد يستخدم إطار عمل الويب الذي تختاره دليل فرعي كجذر للموقع. على سبيل المثال، يستخدم Laravel الدليل الفرعي 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

في خدمة التطبيقات، يحدث إنهاء 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, and PHP_INI_ALL (راجع توجيهات php.ini)، أضف ملف .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_USER PHP_INI_PERDIR PHP_INI_ALL لتطبيقات الويب linux، مثل upload_max_filesize expose_php، استخدم ملف "ini" مخصصا. يمكنك إنشاؤه في جلسة عمل SSH.

  1. انتقل إلى موقع KUDU https://< sitename.scm.azurewebsites.net>.
  2. حدد Bash أو SSH من القائمة العلوية.
  3. في Bash/SSH، انتقل إلى دليل "/home/site/wwwroot".
  4. إنشاء دليل يسمى "ini" (على سبيل المثال، mkdir ini).
  5. قم بتغيير دليل العمل الحالي إلى المجلد "ini" الذي قمت بإنشائه للتو.

تحتاج إلى إنشاء ملف "ini" لإضافة إعداداتك إليه. في هذا المثال، نستخدم "extensions.ini". لا توجد محررات ملفات مثل Vi أو Vim أو Nano، لذا ستستخدم echo لإضافة الإعدادات إلى الملف. تغيير "upload_max_filesize" من 2M إلى 50M. استخدم الأمر التالي لإضافة الإعداد وإنشاء ملف "extensions.ini" إذا لم يكن موجودا بالفعل.

/home/site/wwwroot/ini>echo "upload_max_filesize=50M" >> extensions.ini
/home/site/wwwroot/ini>cat extensions.ini

upload_max_filesize=50M

/home/site/wwwroot/ini>

ثم انتقل إلى مدخل Microsoft Azure وأضف إعداد التطبيق لمسح دليل "ini" الذي أنشأته للتو لتطبيق التغيير على upload_max_filesize.

  1. انتقل إلى مدخل Microsoft Azure وحدد تطبيق App Service Linux PHP.
  2. حدد Application الإعدادات للتطبيق.
  3. ضمن قسم إعدادات التطبيق، حدد + إضافة إعداد جديد.
  4. بالنسبة إلى App Setting Name، أدخل "PHP_INI_SCAN_DIR" وللقيمة، أدخل "/home/site/wwwroot/ini".
  5. حدد زر الحفظ.

إشعار

إذا قمت بإعادة تحويل ملحق PHP، مثل GD، فاتبع الخطوات في إعادة التحويل البرمجي لملحقات PHP في Azure App Service - إضافة ملحقات PHP

تخصيص توجيهات PHP_INI_SYSTEM

لتخصيص توجيهات PHP_INI_SYSTEM (راجع توجيهات php.ini)، استخدم PHP_INI_SCAN_DIR إعداد التطبيق.

أولاً، قم بتشغيل الأمر التالي في Cloud Shell لإضافة إعداد تطبيق يسمى 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"

انتقل إلى وحدة تحكم Kudu (https://<app-name>.scm.azurewebsites.net/DebugConsole) وانتقل إلى d:\home\site.

قم بإنشاء دليل في 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/setting.ini

لكي تسري التغييرات، أعد تشغيل التطبيق.

لتخصيص توجيهات PHP_INI_SYSTEM (راجع توجيهات php.ini)، لا يمكنك استخدام نهج .htaccess. توفر App Service آلية منفصلة باستخدام إعداد التطبيق PHP_INI_SCAN_DIR.

أولاً، قم بتشغيل الأمر التالي في Cloud Shell لإضافة إعداد تطبيق يسمى 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 (https://<app-name>.scm.azurewebsites.net/webssh/host).

قم بإنشاء دليل في /home/site يسمى ini، ثم قم بإنشاء ملف .ini في الدليل /home/site/ini (على سبيل المثال، settings.ini) مع التوجيهات التي تريد تخصيصها. استخدم نفس بناء الجملة الذي ستستخدمه في ملف php.ini.

تلميح

في حاويات Linux المضمنة في App Service، يتم استخدام /home كمساحة تخزين مشتركة مستمرة.

على سبيل المثال، لتغيير قيمة expose_php، قم بتشغيل الأوامر التالية:

cd /home/site
mkdir ini
echo "expose_php = Off" >> ini/setting.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.

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

az webapp log config --resource-group <resource-group-name> --name <app-name> --docker-container-logging filesystem --level Verbose

القيم المحتملة لـ --level هي: Error وWarning وInfo وVerbose. يتضمن كل مستوى لاحق المستوى السابق. على سبيل المثال: Error يتضمن رسائل الخطأ فقط بينما Verbose يتضمن جميع الرسائل.

بمجرد تشغيل التسجيل التشخيصي، قم بتشغيل الأمر التالي لمشاهدة تدفق السجل:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

وفي حال عدم رؤية سجلات وحدة التحكم على الفور، فتحقق مجددًا في غضون 30 ثانية.

إشعار

يمكنك أيضا فحص ملفات السجل من المستعرض في https://<app-name>.scm.azurewebsites.net/api/logs/docker.

لإيقاف تسجيل التدفق في أي وقت، اكتب 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.

يمكنك أيضًا فحص ملفات السجل من المتصفح الموجود في https://<app-name>.scm.azurewebsites.net/api/logs/docker.

استكشاف الأخطاء وإصلاحها

عندما يتصرف تطبيق PHP يعمل بشكل مختلف في App Service أو عند وجود أخطاء، جرب ما يلي:

  • الوصول إلى دفق السجل.
  • قم باختبار التطبيق محلياً في وضع الإنتاج. تعمل App Service على تشغيل تطبيقك في وضع الإنتاج، لذا يجب التأكد من أن مشروعك يعمل كما هو متوقع في وضع الإنتاج محلياً. على سبيل المثال:
    • اعتماداً على composer.json الخاص بك، قد تثبت حزم مختلفة لوضع الإنتاج (require مقابل require-dev).
    • قد توزع أطر عمل ويب معينة ملفات ثابتة على نحو مختلف في وضع الإنتاج.
    • ربما تستخدم أطر عمل ويب معينة برامج نصية مخصصة لبدء التشغيل عند التشغيل في وضع الإنتاج.
  • قم بتشغيل في App Service في وضع تتبع الأخطاء. على سبيل المثال، في Laravel، يمكنك تكوين تطبيقك لإخراج رسائل تتبع الأخطاء في الإنتاج عن طريق تعيين APP_DEBUG إعداد التطبيق إلى true.

robots933456 في السجلات

قد تشاهد الرسالة التالية في سجلات الحاوية:

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 ببساطة إلى أن المسار غير موجود، ولكنه يتيح لـ"خدمة التطبيقات" معرفة أن الحاوية سليمة وجاهزة للاستجابة للطلبات.

الخطوات التالية

أو راجع موارد إضافية:

متغيرات البيئة ومرجع إعدادات التطبيق