উত্তর:
এটিকে সেটিংস.এফপি এর নীচে রাখুন:
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);
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);
অ্যাপাচি ত্রুটি লগটি দেখুন, উবুন্টুতে এটি অবস্থিত /var/log/apache2/error.log
যাতে আপনি এটি করতে পারেন:
tail -f /var/log/apache2/error.log
sudo tail -f /var/log/apache2/error.log
আমি পুরো সাইটটি এর মাধ্যমে চালিয়ে 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
)।
আপনি যদি ড্রাশ ব্যবহার করে থাকেন তবে আপনি ড্রাশ-ডাব্লুএস কমান্ডটি ব্যবহার করে ত্রুটি বার্তা দেখতে পাবেন।
আমি সবেমাত্র ভেরিয়েবল $ আপডেট_ফ্রি_অ্যাক্সেস মান FALSE থেকে সত্যে পরিবর্তিত করেছি এবং আপডেট.এফপিপি ফাইলটি কার্যকর করেছি। এটি আমার সমস্যার সমাধান করেছে।
আপনি 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>';
}
ত্রুটি বার্তাটি ফাইল এবং কোডের লাইন প্রদর্শন করবে যা ত্রুটির কারণ হয়েছিল।