سؤال

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

شكرًا.

هل كانت مفيدة؟

المحلول

يتم عرض كود مصدر PHP فقط عندما لا يتم تكوين Apache بشكل صحيح للتعامل مع ملفات php.أي عندما لا يتم تحديد المعالج المناسب.

بالنسبة للأخطاء، ما يتم عرضه يمكن تكوينه في php.ini، وبشكل أساسي المتغيرdisplay_errors.يجب ضبط ذلك على إيقاف التشغيل وتشغيل log_errors في بيئة الإنتاج.

إذا مات PHP بالفعل، فسيعيد Apache رمز حالة HTTP المناسب (عادةً 500) مع الصفحة المحددة بواسطة توجيه ErrorDocument.إذا لم يمت، ولكنه عالق في حلقة مفرغة، فليس هناك الكثير مما يمكنك فعله على حد علمي.

يمكنك تحديد صفحة مختلفة لرموز الخطأ المختلفة.

نصائح أخرى

أفترض أن هذا يؤدي عادةً إلى خطأ 500، ويمكنك تكوين معالج Apache 500 لإظهار صفحة ثابتة:

خطأ الوثيقة 500 /500error.html

يمكنك أيضًا القراءة عن معالجات الأخطاء على موقع توثيق أباتشي

المشكلة الحقيقية هي أن أخطاء PHP الفادحة لا تتسبب في قيام Apache بإرجاع رمز 500.الأخطاء باستثناء E_FATAL و E_PARSE يمكن التعامل معها كيفما تشاء set_error_handler().

هناك طريقتان لاستخدام PHP وApache.

1. Install PHP as an Apache module: this way the PHP execution is a thread inside the apache process. So if PHP execution fails, then Apache process fails too. there is no fallback strategy.

2. Install PHP as a CGI script handler: this way Apache will start a new PHP process for each request. If the PHP execution fails, then Apache will know that, and there might be a way to handle the error.

بغض النظر عن طريقة تثبيت PHP، عندما يفشل تنفيذ PHP، يمكنك معالجة الأخطاء في ملف php.ini ملف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top