আমি মৃত্যুর সাদা পর্দা পেলে ত্রুটি বার্তাগুলি কীভাবে দেখব?


25

আমি যে সাইটটিতে কাজ করছি সেটিকে সাদা পর্দা পেলে আমি কীভাবে ত্রুটি বার্তাগুলি দেখতে পারি?

উত্তর:


33

এটিকে সেটিংস.এফপি এর নীচে রাখুন:

error_reporting(-1);  // Have PHP complain about absolutely everything 
$conf['error_level'] = 2;  // Show all messages on your screen, 2 = ERROR_REPORTING_DISPLAY_ALL.
ini_set('display_errors', TRUE);  // These lines just give you content on WSOD pages.
ini_set('display_startup_errors', TRUE);

এটি উন্নত সাইটগুলির জন্য দুর্দান্ত যদিও আমি লাইভ সাইটের জন্য /var/log/apache2/error.log পছন্দ করি। এটি যদিও কাজ করে। :)
সাইট্রিকগুই

17

Drupal.org- এ হোয়াইট স্ক্রিন অফ ডেথ (সম্পূর্ণ ব্ল্যাঙ্ক পেজ) সংস্থান ত্রুটি বার্তা এবং সেইসাথে সাধারণ সমস্যাগুলি দেখার জন্য আপনাকে ধাপে পদক্ষেপ নেবে।

"অদৃশ্য" ত্রুটি

যদি ত্রুটি প্রতিবেদন বন্ধ করা থাকে তবে আপনি মারাত্মক ত্রুটি পেয়ে যাচ্ছেন কিন্তু এটি দেখছেন না। কোনও প্রোডাকশন সাইটে ত্রুটি প্রতিবেদন বন্ধ থাকা সাধারণ। যদি এটি হয় এবং পিএইচপি কোনও পুনরুদ্ধারযোগ্য ত্রুটি আঘাত করেছে, ত্রুটি বা বিষয়বস্তু উভয়ই প্রদর্শিত হবে না, তাই আপনি সম্পূর্ণ ফাঁকা পৃষ্ঠাতে শেষ করেন।

আপনি এই সম্পর্কে যা করতে পারেন তা হয় পিএইচপি ত্রুটির প্রতিবেদন চালু করা হয় যাতে এটি পৃষ্ঠাতে নিজেই একটি বার্তা প্রদর্শন করে, বা ত্রুটিটি অনুসন্ধান করার জন্য আপনার লগ ফাইলগুলি (সার্ভার থেকে) পরীক্ষা করে। এই দুটি কীভাবে করবেন তা নীচে ব্যাখ্যা করা হয়েছে।

ত্রুটি প্রতিবেদন সক্ষম করুন

যদিও এটি বাণিজ্যিক হোস্ট এবং প্রোডাকশন সাইটগুলিতে বন্ধ করা যেতে পারে (সঙ্গত কারণে, যাতে ব্যবহারকারীরা ত্রুটি দেখতে না পান), সমস্যা সমাধানের জন্য এই ত্রুটিগুলি আপনার অন্যতম সেরা সরঞ্জাম। ত্রুটি প্রতিবেদন সক্ষম করতে, প্রথমগুলি খোলার পিএইচপি ট্যাগের (সরাসরি আপনার মূল ডিরেক্টরিতে অবস্থিত) অস্থায়ীভাবে সম্পাদনা করুন (প্রকৃত ফাইলের তথ্য সম্পাদনা করবেন না) নিম্নলিখিতগুলি যুক্ত করতে:

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

সরাসরি স্ক্রিনে ঘটে যাওয়া কোনও ত্রুটি আপনি এখন দেখতে পাবেন। স্মৃতি সমস্যাগুলি এখনও প্রদর্শিত না হতে পারে, তবে এটি নির্মূলকরণের প্রক্রিয়ার প্রথম পদক্ষেপ।

আপনি যদি কোনও মাল্টি-সাইট সেটআপ ব্যবহার করছেন এবং কেবল একটি সাইটের জন্য ত্রুটিগুলি উপস্থিত হতে চান, তবে হোস্টের নামটি প্রথমে যেমনটি দেখুন:

if ($_SERVER['HTTP_HOST']==='some.domain.name.here') {
  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);
}

আপডেটটি চালানোর সময় যদি সমস্যা দেখা দেয় তবে কোনও পাঠ্য সম্পাদকটিতে আপডেট.এফপি ওপেন করুন।

ini_set('display_errors', FALSE);

10

অ্যাপাচি ত্রুটি লগটি দেখুন, উবুন্টুতে এটি অবস্থিত /var/log/apache2/error.logযাতে আপনি এটি করতে পারেন:

tail -f /var/log/apache2/error.log

2
sudo tail -f /var/log/apache2/error.log
সাইট্রিকগুই

1
যদি আপনি তাদের প্রতিটি জন্য কাস্টম লগ ফাইল অনেক vhosts আছে, শুধু এই ব্যবহার করুন: উবুন্টু লেজ -f তারপর /var/log/apache2/*.log পৃষ্ঠাটি রিফ্রেশ যে wsod সঙ্গে প্রান্ত
izus

2

আমি পুরো সাইটটি এর মাধ্যমে চালিয়ে WSOD ত্রুটিগুলি সনাক্ত করার সহজ উপায় খুঁজে পেয়েছি drush:

drush rs

প্রদত্ত নতুন ঠিকানায় (যেমন, 127.0.0.1:8080) সাইটটি অ্যাক্সেস করার পরে সমস্যাটি পুনরুত্পাদন করার চেষ্টা করুন এবং আপনি টার্মিনাল স্ক্রিনে সমস্ত ত্রুটি দেখতে পাবেন। আপনার পিএইচপি পুনরায় কনফিগার করার দরকার নেই, বিশেষত display_errorsব্যর্থ হলে (যেমন এমএএমপি)।


অন্যান্য জটিল উপায় আমি এটি ডিবাগার ব্যবহার করে খুঁজে পেয়েছি, যেমন:

  • ওএস এক্স:

    sudo dtruss -fn httpd 2>&1 | grep -i error
  • লিনাক্স:

    sudo strace -f $(pgrep -fn httpd) 2>&1 | grep -i error

    নোট: পরিবর্তন httpdমধ্যে phpআপনি ব্যবহার করছেন যদি drush rsউপরে হিসাবে।

অথবা XDebugপিএইচপি এক্সটেনশান ইনস্টল করুন এবং একটি ট্রেস ফাইল উত্পন্ন করুন ( xdebug.auto_trace=1)।


1
আপনি স্যার, একটি জীবন রক্ষাকারী। পরিবর্তিত পিএইচপি সেটিংসের কোনও কিছুই আমার পক্ষে কাজ করেনি, তবে এটি কৌশলটি করেছে!
গ্রেগ সোমারস

1

আপনি যদি ড্রাশ ব্যবহার করে থাকেন তবে আপনি ড্রাশ-ডাব্লুএস কমান্ডটি ব্যবহার করে ত্রুটি বার্তা দেখতে পাবেন।


0

আমি সবেমাত্র ভেরিয়েবল $ আপডেট_ফ্রি_অ্যাক্সেস মান FALSE থেকে সত্যে পরিবর্তিত করেছি এবং আপডেট.এফপিপি ফাইলটি কার্যকর করেছি। এটি আমার সমস্যার সমাধান করেছে।


0

আপনি index.php পরিবর্তন করতে পারেন এবং চেষ্টা / ধরার সাহায্যে কোডটি গুটিয়ে রাখতে পারেন। এটার মত:

try {
    define('DRUPAL_ROOT', getcwd());
    require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
    menu_execute_active_handler();
} catch (Error $t) {
    error_log('Error at Line:' . $t->getLine() . ' File: ' . $t->getFile() . ' Message:' . $t->getMessage() );
    print '<div>Message: ' . $t->getMessage() . '</div>';
    print '<div>File:' . $t->getFile() . '</div>';
    print '<div>Line:' . $t->getLine() . '</div>';
}

ত্রুটি বার্তাটি ফাইল এবং কোডের লাইন প্রদর্শন করবে যা ত্রুটির কারণ হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.