অভ্যন্তরীণ ত্রুটি 500 অ্যাপাচি, তবে লগগুলিতে কিছুই নেই?


122

আমি যখন আমার অ্যাপ্লিকেশনটির একটি নির্দিষ্ট ঠিকানায় HTTP পোস্ট করার চেষ্টা করি তখন আমি 500 টি অভ্যন্তরীণ সার্ভার ত্রুটি পাচ্ছি। আমি ভার্চুয়াল হোস্ট ফাইলগুলিতে নির্দিষ্ট কাস্টম লগ ডিরেক্টরিতে সার্ভার লগগুলি সন্ধান করেছি, তবে ত্রুটিটি সেখানে প্রদর্শিত হবে না কারণ এটি ডিবাগিংয়ের ফলে পাছায় ব্যথা হয়েছে।

আমি কীভাবে এপাচি ত্রুটি লগের অভ্যন্তরীণ 500 ত্রুটি লগ করতে পারি?


1
ভার্চুয়াল হোস্টগুলির সাথে পিএইচপি ব্যবহার করে আমার একই সমস্যা হয়েছে .... কোনও ত্রুটি নেই (অ্যাপাচি 2, উবুন্টু)। পিএইচপি মডিউলগুলি (

1
আমাদের উপর, এটি তাদের অ্যাক্সেস লগে প্রেরণ করছিল (সম্ভবতঃ অ্যাপাচের দৃষ্টিকোণ থেকে, এটি সঠিকভাবে কাজ করছে এবং কেবল একটি গভীর স্তর থেকে তাদের পাশ দিয়ে চলেছিল - আমাদের ক্ষেত্রে, যাত্রী / রেলগুলি)। কেউ যদি তাদের মাথা আঁচড়াচ্ছে তবে কেবল এই নোটটি এখানে রাখুন।
টম হুন্ড 18

উত্তর:


-3

দয়া করে দ্রষ্টব্য: মূল পোস্টারটি বিশেষত পিএইচপি সম্পর্কে জিজ্ঞাসা করছিল না। সমস্ত পিএইচপি কেন্দ্রিক উত্তরগুলি বড় অনুমানগুলি প্রকৃত প্রশ্নের সাথে সম্পর্কিত নয় make

স্ক্রিপ্ট ত্রুটি লগের বিপরীতে ডিফল্ট ত্রুটি লগটিতে সাধারণত (আরও) নির্দিষ্ট ত্রুটি থাকে। প্রায়শই এটি অনুমতি অস্বীকার করা হবে বা এমন কোন দোভাষীও যা পাওয়া যায় না।

এর অর্থ দোষটি প্রায়শই আপনার স্ক্রিপ্টের সাথে থাকে। যেমন আপনি পার্ল স্ক্রিপ্ট আপলোড করেছেন কিন্তু অনুমতি দেওয়ার জন্য এটি দেননি? অথবা সম্ভবত এটি একটি লিনাক্স পরিবেশে দূষিত হয়েছিল যদি আপনি উইন্ডোতে স্ক্রিপ্টটি লিখেন এবং তারপরে লাইন এন্ডিং রূপান্তরিত না করে এটি সার্ভারে আপলোড করেন তবে আপনি এই ত্রুটি পাবেন।

যদি আপনি ভুলে যান

print "content-type: text/html\r\n\r\n";

আপনি এই ত্রুটি পাবেন

এর অনেক কারণ রয়েছে। সুতরাং দয়া করে প্রথমে আপনার ত্রুটি লগটি পরীক্ষা করুন এবং তারপরে আরও কিছু তথ্য সরবরাহ করুন।

ডিফল্ট ত্রুটি লগ প্রায়শই /var/log/httpd/error_logবা এর মধ্যে থাকে /var/log/apache2/error.log

আপনি ডিফল্ট ত্রুটিযুক্ত লগগুলি দেখার কারণ (উপরে উল্লিখিত হিসাবে) হ'ল ভার্চুয়াল হোস্টের সংজ্ঞায়িত হিসাবে ত্রুটিগুলি সর্বদা কাস্টম ত্রুটি লগটিতে পোস্ট হয় না।

লিনাক্স ধরে নেয় এবং অগত্যা পার্ল নয়


6
আমি সার্ভার ত্রুটিযুক্ত পরীক্ষা করে দেখেছি এবং সেখানে খুঁজে পাওয়ার মতো কিছুই নেই।
wcolbert

1
আপনি সঠিক, এটি পিএইচপি স্ক্রিপ্টের সাথে সমস্যা হিসাবে দেখা গেছে। পিয়ার লাইব্রেরি ইনস্টল করা হয়নি। আমি এটি আমার ভিপিএসে ইনস্টল করেছি এবং সব ঠিক আছে। সবাইকে ধন্যবাদ!
wcolbert

260
"আমার লগগুলি খালি কেন" এর গ্রহণযোগ্য উত্তর কীভাবে "দয়া করে লগগুলি পরীক্ষা করুন"?
vলভারো গঞ্জালেজ

4
আমি ব্যবহারকারীকে ডিফল্ট ত্রুটিযুক্ত লগগুলিতে কাস্টম ত্রুটিযুক্ত লগগুলি নির্দেশ করেছিলাম। প্রায়শই যখন কোনও স্ক্রিপ্ট কোনও কারণে ব্যর্থ হয় তবে ত্রুটিটি ডিফল্ট ত্রুটি লগগুলিতে পৌঁছে যায়
বিকাশকারী

1
পিএইচপি সহ, কনফিগার করা অ্যাপাচি ত্রুটি লগগুলিতে আমার কিছুই ছিল না, তবে এর সাথে ত্রুটিগুলি খুঁজে পেয়েছি grep PHP /var/log/syslog। সম্ভবত কারণ আমার কাছে তা থাকত error_log = syslogমধ্যে /etc/php5/apache2/php.ini
mivk

145

কেন 500 আভ্যন্তরীণ সার্ভার ত্রুটিগুলি আপনার অ্যাপাচি ত্রুটির লগগুলিতে লগ করা হচ্ছে না?

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

এই নির্দেশাবলী অভ্যন্তরীণ সার্ভার সমস্যা লগিং জন্য সক্ষম করতে Ubuntu 12.10সঙ্গে PHP 5.3.10এবং Apache/2.2.22

নিশ্চিত করুন যে পিএইচপি লগিং চালু আছে:

  1. আপনার php.ini ফাইলটি সনাক্ত করুন:

    el@apollo:~$ locate php.ini
    /etc/php5/apache2/php.ini
    
  2. রুট হিসাবে ফাইলটি সম্পাদনা করুন:

    sudo vi /etc/php5/apache2/php.ini
    
  3. এই লাইনটি php.ini এ সন্ধান করুন:

    display_errors = Off
    
  4. উপরের লাইনটি এতে পরিবর্তন করুন:

    display_errors = On
    
  5. ফাইলটিতে নীচে নেমে আপনি এটি দেখতে পাবেন:

    ;display_startup_errors
    ;   Default Value: Off
    ;   Development Value: On
    ;   Production Value: Off
    
    ;error_reporting
    ;   Default Value: E_ALL & ~E_NOTICE
    ;   Development Value: E_ALL | E_STRICT
    ;   Production Value: E_ALL & ~E_DEPRECATED
    
  6. সেমিকোলনগুলি মন্তব্য, এর অর্থ লাইনগুলি কার্যকর হয় না। এই লাইনগুলি পরিবর্তন করুন যাতে তারা এর মতো দেখতে পান:

    display_startup_errors = On
    ;   Default Value: Off
    ;   Development Value: On
    ;   Production Value: Off
    
    error_reporting = E_ALL
    ;   Default Value: E_ALL & ~E_NOTICE
    ;   Development Value: E_ALL | E_STRICT
    ;   Production Value: E_ALL & ~E_DEPRECATED
    

    এটি পিএইচপি-তে যা যোগাযোগ করে তা হ'ল আমরা এই সমস্ত ত্রুটি লগ করতে চাই। সতর্কতা, একটি বৃহত পারফরম্যান্স হিট হবে, সুতরাং আপনি এইটিকে উত্পাদনতে সক্ষম করতে চান না কারণ লগিংয়ের কাজ লাগে এবং কাজের জন্য সময় লাগে, সময় লাগে অর্থ ব্যয়।

  7. পিএইচপি এবং অ্যাপাচি পুনরায় চালু করার পরিবর্তনের প্রয়োগ করা উচিত।

  8. আবার 500 অভ্যন্তরীণ সার্ভার ত্রুটির কারণ হিসাবে আপনি যা করেছেন তা করুন এবং লগটি পরীক্ষা করুন:

    tail -f /var/log/apache2/error.log
    
  9. আপনার শেষে 500 টি ত্রুটিটি দেখতে পাওয়া উচিত, এরকম কিছু:

    [Wed Dec 11 01:00:40 2013] [error] [client 192.168.11.11] PHP Fatal error:  
    Call to undefined function Foobar\\byob\\penguin\\alert() in /yourproject/
    your_src/symfony/Controller/MessedUpController.php on line 249, referer: 
    https://nuclearreactor.com/abouttoblowup
    

46
display_errorsস্ক্রিনে ত্রুটিগুলি মুদ্রণ করে । লগ ফাইলেlog_errors ত্রুটি লেখেন ।
দাভ

11
এই প্রশ্নের এই উত্তর হতে হবে।
ডেভিড

9
@ ওয়ানলিকুন এটি তথ্যের একটি খুব সুন্দর অংশ তবে এটি কেবলমাত্র পিএইচপি-র ক্ষেত্রেই প্রযোজ্য, যা এমনকি প্রশ্নের মধ্যে উল্লেখ করা হয়নি।
vlvaro González

1
"আপনার 500 টি অভ্যন্তরীণ সার্ভার ত্রুটির কারণে ত্রুটিগুলি পিএইচপি মডিউল থেকে আসছে default ডিফল্টরূপে পিএইচপি এই ত্রুটিগুলি লগ করে না" " কে পিএইচপি উল্লেখ করেছেন? সার্ভার 500 লগিং পিএইচপি-তে অক্ষম হওয়া একটি অনুমান এবং প্রায়শই একটি ভুল ধারণা। অ্যাপাচি সার্ভার 500 টি ত্রুটিটিকে একটি ত্রুটিযুক্ত মডিউল থেকে লগ করবে (এই ক্ষেত্রে পিএইচপি) তবে বেশিরভাগ ক্ষেত্রে এটি /var/log/apache2/error.log (ডেবিয়ান বা অনুরূপ অনুমান) এ যাবে
বিকাশকারী

4
এই উত্তরটি স্ক্রিনে ত্রুটিগুলি ফেলার জন্য খারাপ পরামর্শ দিয়ে শুরু হয়।
luqo33

11

আপনার পিএইচপি ত্রুটি লগটি যা আপনার অ্যাপাচি ত্রুটি লগ থেকে পৃথক ফাইল হতে পারে তা পরীক্ষা করুন।

এ গিয়ে phpinfo()ত্রুটি_লগ বৈশিষ্ট্যটি পরীক্ষা করে এটি সন্ধান করুন । সেট না থাকলে। এটি সেট করুন: https://stackoverflow.com/a/12835262/445131

আপনি যে পোস্টটি পোস্ট করার চেষ্টা করছেন তার জন্য আপনার পোস্ট_ম্যাক্স_সাইজ খুব ছোট বা অন্য কোনও মেমোরি সেটিংস খুব কম।


1
প্রশ্নটি ছিল, "আমি কীভাবে এপাচি ত্রুটি লগের অভ্যন্তরীণ 500 ত্রুটি লগ করতে পারি?" এটি সম্ভবত একটি মন্তব্য করা উচিত।
jwww

11

আমি কেবল এটিতে ছুটে এসেছি এবং এটি আমার .htaccess ফাইলে একটি mod_authnz_ldap ভুল কনফিগারেশনের কারণে হয়েছিল। অবশ্যই কিছুই লগ করা হচ্ছে না, কিন্তু আমি 500 ত্রুটি পেয়ে চলেছি।

আপনি যদি এই নির্দিষ্ট সমস্যাটিতে চলে যান তবে আপনি মোড_আউথনজ_ল্ডপ এর মতো লগ স্তর পরিবর্তন করতে পারেন:

LogLevel warn authnz_ldap_module:debug

এটি মোড_আউথনজ_লডাপের জন্য একটি লগ স্তরের ডিবাগ ব্যবহার করবে তবে অন্য সমস্ত কিছুর জন্য সতর্ক করবে ( https://httpd.apache.org/docs/2.4/en/mod/core.html#lolegvel )।


1
প্রশ্নটি ছিল, "আমি কীভাবে এপাচি ত্রুটি লগের অভ্যন্তরীণ 500 ত্রুটি লগ করতে পারি?" এটি সম্ভবত একটি মন্তব্য করা উচিত।
jwww

ভাল পর্যবেক্ষণ। আমি এই ত্রুটিগুলি লগ করার জন্য নির্দেশাবলী যুক্ত করেছি।
বমউপিন

7

যদি আপনার অভ্যন্তরীণ সার্ভার ত্রুটির তথ্য লগ ফাইলগুলিতে প্রদর্শিত না হয়, আপনাকে সম্ভবত অ্যাপাচি পরিষেবাটি পুনরায় চালু করতে হবে

আমি খুঁজে পেয়েছি যে অ্যাপাচি ২.৪ (কমপক্ষে উইন্ডোজ প্ল্যাটফর্মে) লগ ফাইলগুলিকে ফ্লাশ করতে দৃub়ভাবে প্রত্যাখ্যান করে — পরিবর্তে লগ ইন করা ডেটা স্মৃতিতে বেশ কিছুক্ষণ রয়ে যায়। পারফরম্যান্স দৃষ্টিকোণ থেকে এটি একটি ভাল ধারণা তবে বিকাশকালে এটি বিভ্রান্তিকর হতে পারে।


এটি লিনাক্সে আমার জন্য সঠিক উত্তর ছিল। এমনকি আসল ত্রুটি.লগটি মুছে ফেলার পরেও (এটি একটি চরিত্রের ডিভাইস ফাইল ছিল) এবং এটিকে প্রতিস্থাপন 777 ত্রুটি.লগ দ্বারা প্রতিস্থাপন করার পরেও অ্যাপাচি পুনরায় আরম্ভ না হওয়া পর্যন্ত এটি লিখবে না।
অ্যাডেলমার

2

@ এরিক-লেসচিনস্কির উত্তর সঠিক।

আপনার সার্ভার এপিআই এফপিএম / ফাস্টসিজিআই (সেন্টোস 8 এ ডিফল্ট বা আপনি phpinfo () ফাংশনটি চেক করতে পারেন) তবে অন্য একটি মামলা রয়েছে is

এক্ষেত্রে:

  1. phpinfo()একটি পিএইচপি ফাইল চালান ;
  2. Loaded Configuration Fileআপনার পিএইচপি-র জন্য কনফিগারেশন ফাইলটি দেখতে প্যারামের সন্ধান করছেন ।
  3. @ এরিক-লেসচিনস্কির উত্তরের মতো কনফিগার ফাইলটি সম্পাদনা করুন।
  4. চেক Server API । যদি আপনার সার্ভারটি কেবল অ্যাপাচি হ্যান্ডেল API -> অ্যাপাচি পুনরায় চালু করে art যদি আপনার সার্ভার পিএইচপি-এফপিএম ব্যবহার করে তবে আপনাকে অবশ্যই পিএইচপি-এফপিএম পরিষেবাটি পুনরায় চালু করতে হবে

    systemctl পিএইচপি-এফপিএম পুনরায় চালু করুন

    পিএইচপি-এফপিএম লগ ফোল্ডারে লগ ফাইলটি পরীক্ষা করুন। যেমন/var/log/php-fpm/www-error.log


1

আমার ক্ষেত্রে এটি httpd.conf এ ত্রুটিযুক্ত নির্দেশ ছিল। আমি হাল ছেড়ে দেওয়ার পরে ইতিমধ্যে এটি দুর্ঘটনাক্রমে লক্ষ্য করেছি। আবিষ্কারটি ভাগ করে নেওয়ার সিদ্ধান্ত নিয়েছে) এখন আমি জানি 500 টি ত্রুটি কোথায় পাওয়া যাবে।


আপনি দয়া করে আপনার উত্তরে আরও বিশদ রাখতে পারেন
ইয়াহিয়া হুসেন

আমি অ্যাপাচের জন্য ম্যাজেন্টো (সিএমএস - বিষয়বস্তু পরিচালনা সিস্টেম) ব্যবহার করছি। আমার পৃষ্ঠায় Magento কোর ক্লাস ব্যবহার করে 500 ত্রুটি হয়েছিল। আমি কোথায় ত্রুটি বার্তা দেখতে পেলাম তা খুঁজে পাইনি। কিছু উত্তর অনুসারে এখানে আমি অ্যাপাচি লগ / ইত্যাদি / httpd / লগ / ত্রুটি_লগ অনুসন্ধান করার চেষ্টা করেছি। তবে সেখানে কিছুই ছিল না। পরে আমি জানতে পেরেছিলাম যে সেই নির্দিষ্ট ওয়েব হোস্টের জন্য আমার httpd.conf এ একটি লাইন রয়েছে, লগের পথটি নির্ধারণ করে: <ভার্চুয়ালহস্ট। ... ত্রুটিলগ / ইউএসআর / www / লগ / ত্রুটি_লগ তাই আমার আরও নির্দিষ্ট হোস্ট লগের দিকে নজর রাখা দরকার সাধারণ অ্যাপাচি লগ নয়।
ইউজিন লিসেনোক

1

যোগ HttpProtocolOptions Unsafeআপনার Apache কনফিগ ফাইলে এবং Apache সার্ভার পুনরায় আরম্ভ করুন। এটি ত্রুটির বিবরণ প্রদর্শন করে।


0

আপনি যে পিএইচপি চালাচ্ছেন তার সংস্করণটি আপনার কোডবেসের সাথে মেলে কিনা তা পরীক্ষা করে দেখুন। উদাহরণস্বরূপ, আপনার স্থানীয় পরিবেশে পিএইচপি 5.4 চলছে (এবং জিনিসগুলি ভাল চলছে) এবং সম্ভবত আপনি একটি নতুন মেশিনে আপনার কোডটি পরীক্ষা করছেন যা পিএইচপি 5.3 ইনস্টল করা আছে। আপনি যদি অ্যারে () এর জন্য [] এর মতো 5.4 বাক্য গঠন ব্যবহার করছেন তবে আপনি উপরে বর্ণিত পরিস্থিতিটি পেয়ে যাবেন।


প্রশ্নটি ছিল, "আমি কীভাবে এপাচি ত্রুটি লগের অভ্যন্তরীণ 500 ত্রুটি লগ করতে পারি?" এটি সম্ভবত একটি মন্তব্য করা উচিত।
jwww

0

একটি স্থিতিশীল ফাইল অ্যাক্সেস চেষ্টা করুন। যদি এটি কাজ না করে থাকে তবে আপনার ফাইলের ডিরেক্টরিতে মূল "/" বা "সি: \" থেকে সমস্ত ডিরেক্টরিতে যান এবং সেগুলিতে ".htaccess" ফাইল রয়েছে কিনা তা পরীক্ষা করে দেখুন।

আমি একবার একটি ফাইল "সি: \" এ রেখেছি এবং এটির মধ্যে সবচেয়ে অদ্ভুত ফলাফল ছিল।


1
প্রশ্নটি ছিল, "আমি কীভাবে এপাচি ত্রুটি লগের অভ্যন্তরীণ 500 ত্রুটি লগ করতে পারি?"
jw

0

আপনি যদি আপনার কোডটিতে কোথাও ত্রুটি প্রতিবেদন অক্ষম করছেন কিনা তা দয়া করে পরীক্ষা করে দেখুন।

আমার কোডে একটি জায়গা ছিল যেখানে আমি এটি অক্ষম করেছি, তাই আমি এর পরে ডিবাগ কোড যুক্ত করেছি:

require_once("inc/req.php");   <-- Error reporting is disabled here

// overwrite it
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.