পিএইচপি কোথায় ত্রুটি লগ সংরক্ষণ করে? (পিএইচপি 5, অ্যাপাচি, ফাস্টসিগি, সিপেনেল)


392

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

ত্রুটি_লগ ফাইলগুলি সন্ধান করার জন্য পুরো সাইটের কাঠামোটি অতিক্রম করার পরিবর্তে ভাগ করা হোস্টিং পরিবেশে ত্রুটি লগটি খুঁজে পেতে আমি অন্য কোনও উপায় পাব?

আমার অ্যাক্সেস রয়েছে php.ini(আমি পিএইচপি সংস্করণ 5.2.16 ব্যবহার করছি)।


25
লিনাক্সে, হয় /var/log/httpd/error_logবা /var/log/apache2/error.log। এই ফাইলগুলি রুটের মালিকানাধীন, সুতরাং আপনাকে sudoএটির মূল দেখতে বা এটি দেখতে বা পড়তে হবে read
এরিক লেসচিনস্কি

112
php --info | grep error
sjas

8
উইন্ডোজ সমাধান সন্ধানকারীদের জন্য, php --info | findstr /r /c:"error_log"লগ ফাইলটি কোথায় রয়েছে তা দেখতে ব্যবহার করুন।
বুম

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

@ সোয়াকু আপনি যদি ফাস্টসিজি অ্যাপাচি ব্যবহার করেন তবে নিজে পিএইচপি চালায় না। আপনি যখন mod_php ব্যবহার করেন যা অ্যাপাচি মডিউল থাকে, অ্যাপাচি পিএইচপি হ্যান্ডেল করে। তার মানে মোড_এফপি ব্যবহার করার সময় ত্রুটিগুলি অ্যাপাচি লগগুলিতে থাকতে পারে এবং সম্ভবত সিজি বা ফাস্টসিগি ব্যবহার করার সময় এটি হবে না
গ্যাল অ্যানোনিম

উত্তর:


314

পিএইচপি /var/log/apache2যদি অ্যাপাচি 2 মডিউল হয় তবে পিএইচপি ত্রুটি লগ ইন করে stores ভাগ করা হোস্টগুলি প্রায়শই আপনার মূল ডিরেক্টরি /logসাবফোল্ডারে লগ ফাইলগুলি সঞ্চয় করে। তবে ... আপনার যদি কোনও php.iniফাইলে অ্যাক্সেস থাকে তবে আপনি এটি করতে পারেন:

error_log = /var/log/php-scripts.log

রিনোগোর মন্তব্য অনুসারে : আপনি যদি সিপ্যানেল ব্যবহার করে থাকেন তবে আপনি যে মাস্টার লগ ফাইলটি সন্ধান করছেন সম্ভবত এটি ডিফল্টরূপে সংরক্ষণ করা হবে

/usr/local/apache/logs/error_log

অন্য সব কিছু ব্যর্থ হলে আপনি লগ ফাইলের অবস্থানটি ব্যবহার করে পরীক্ষা করতে পারেন

<?php phpinfo(); ?>

20
"পিএইচপি যদি ত্রুটি লগগুলিতে / var / লগ / অ্যাপাচি 2 সংরক্ষণ করে তবে পিএইচপি একটি অ্যাপাচি 2" আরএইচইল ইত্যাদিতে নেই, যেখানে প্যাকেজের নাম 'httpd' রয়েছে। কেউ সত্যিই ধরে নিতে পারে না যে কোনও প্যাকেজের নাম ডিস্ট্রো জুড়ে সুসংগত।
চেলমার্টজ

28
গুগলদের কাছে এফওয়াইআই - আপনি যদি /usr/local/apache/logs/error_log
সিপ্যানেল

5
তবে <?php phpinfo(); ?>পথটি নিশ্চিত করতে 'ত্রুটি_লগ' বিভাগটি দেখুন
ডাব্লিউজেক

যদি এটি অ্যাপাচি 2 মডিউল না হয়। উদাহরণস্বরূপ এটি nginx এ চলমান ডেবিয়ানের একটি এফএমপি প্যাকেজ হতে পারে।
n611x007

2
phpinfo বিভাগে এটি এটি প্রদর্শিত হবে? ত্রুটি_ব্লগ-এ আমি কী / মানটির জন্য যা দেখি তা হ'ল 'ত্রুটি_ব্লগ' এবং কোনও আসল পথ নেই
রবার্ট সিনক্লেয়ার

86

phpinfo()"ত্রুটি_লগ" চেষ্টা করে দেখুন


13
এটি কেবল ত্রুটি_লগ বলে কোনও পথ নির্দিষ্ট করে নি। আমার ধারণা এটি সম্ভবত কারণ এটি একটি ভাগ করা হোস্টিং পরিবেশে রয়েছে এবং যদি আমাদের এটির অ্যাক্সেস থাকে তবে আমরা প্রত্যেকে এলিস সাইটের ত্রুটি দেখতে পাই।
PHPLOVER

8
@ পিএলপিএলওভার যদি আপনি চেষ্টা করেন তবে এটি কি একই কথা বলে echo ini_get('error_log');?
চেলমার্টজ

আমি এটি চেষ্টা করি নি তবে php.ini ফাইলটিতে এটি একই বলেছিল তাই আমি যা করেছি তা হল php.ini ফাইলের পথ পরিবর্তন করা এবং এটি কাজ করছে কিনা তা যাচাই করে দেখছি is আমি লগ ত্রুটি (ডকুমেন্টের মূলের বাইরে) এর পথ পরিবর্তন করে দিলেও এটি এখনও সমস্ত ত্রুটি লগ করে? ধন্যবাদ পিএলপিভার
PHPLOVER

2
@ পিএলপিওভার: আপনি সহজেই সেটিং এর মাধ্যমে রিপোর্টিং স্তরটি নিয়ন্ত্রণ করতে পারবেন error_reporting(E_ALL|E_STRICT);se.php.net/manual/en/function.error-reporting.php
চেলমার্টজ

3
মাইন ত্রুটি_লগও বলেছে, কোথায় এটি সন্ধান করা হবে তার কোনও ধারণা নেই। এটি গুগলে এনআরকে আঘাত করে কিন্তু এর উত্তর দেয় না।
এইচএমআর

53

লিনাক্স

php --info | grep error 

টার্মিনাল ত্রুটি লগ অবস্থান আউটপুট হবে।

উইন্ডোজ

php --info | findstr /r /c:"error_log"

কমান্ড প্রম্পট ত্রুটি লগ অবস্থান আউটপুট হবে

লগ অবস্থান সেট করতে

আপনার খুলুন php.iniএবং নিম্নলিখিত লাইন যুক্ত করুন:

error_log = /log/myCustomLog.log

ধন্যবাদ @ চেলমার্তেজ , এর জন্য @ বুম (প্রশ্নের মন্তব্য)।


5
আমি লিনাক্স উপর। এটি আমার জন্য কোনও লগ অবস্থানের উল্লেখ করে না।
সাইরেক্স

1
@ সাইরেক্স কিছু php -infoআউটপুট দেয় ? আপনাকে নিশ্চিত করতে হবে যে phpপিএইচপি চালানোর জন্য আসলে কল করছে ...
কুল্লব

1
এছাড়াও, এটি সম্ভব যে পিএইচপি বর্তমানে কোনও লগইন করছে না। যদি সেই ক্ষেত্রে, আপনি আপনার খুলতে পারে php.ini, এবং সেট error_reportingকরার E_ALL & ~E_DEPRECATED & ~E_STRICT, বা যাই হোক না কেন ত্রুটি তোমাকে দেখতে চাই, তাহলে সেট error_logডিরেক্টরির যেখানে আপনি চান লগ করতে আপনার ত্রুটির পথের দিকে। (দ্রষ্টব্য: এটি কোনও ডিরেক্টরিতে কোনও ফাইলের পুরো পথ নয়))
কুল্লব

1
আমি কেবলমাত্র / var / লগ / httpd / এ পুরানো লগগুলি পেয়েছি যেখানে বেশিরভাগ লোকেরা অনুসন্ধানের পরামর্শ দেয় তবে php --info | grep logদৌড়াদৌড়িটি আমাকে / var / www / লগগুলিতে দেখায় যেখানে সর্বশেষতম লগগুলি ছিল log
ক্রিসোবি 16

1
একবার আপনি লগ অবস্থান সেট করার পরে, অ্যাপাচি পুনরায় আরম্ভ করতে ভুলবেন না:sudo /etc/init.d/apache2 restart
BrianHenryIE

31

একটি এলএএমপি পরিবেশে পিএইচপি ত্রুটিগুলি নীচের ফাইলটিতে ডিফল্ট নির্দেশিত হয়।

/var/log/httpd/error_log

সমস্ত অ্যাক্সেস লগের আওতায় আসে:

/var/log/httpd/access_log

সুতরাং পিএইচপি ত্রুটি লগ ফাইল স্পেসিফিকেশন মন্তব্য এবং এটি এখানে লিখতে হবে?
ব্যবহারকারী 16

17

লিনাক্সে আপনার পিএইচপি ত্রুটি লগটি কীভাবে খুঁজে পাবেন:

eric@dev /var $ sudo updatedb
[sudo] password for eric:
eric@dev /var $ sudo locate error_log

/var/log/httpd/error_log

অন্য সমতুল্য উপায়:

eric@dev /home/eric $ sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log

12

এটি প্রদর্শিত হয় যে ডিফল্টরূপে পিএইচপি ত্রুটিগুলি কোথাও লগ করে না , error_logphp.ini- র কীটি আমার দেখা সমস্ত ইনস্টলটিতে মন্তব্য করেছে।

সাধারণত আমি:

  1. php.ini ফাইলগুলি সন্ধান করুন। locate php.ini
  2. error_reportingমানটির জন্য এই ফাইলগুলি অনুসন্ধান করুন ;

    যা আপনার জন্য পিএইচপি লগ স্তরের সংমিশ্রণে যথেষ্ট পরিমাণে সেট করা উচিত। ,

    উদাহরণ: E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. error_logএটি কোনও আসল জায়গায় দেখায় এবং মন্তব্য না করে তা নিশ্চিত করার জন্য মানটি পরীক্ষা করে দেখুন ।

    ডিফল্ট মানটি একটি পুরো পাথ দেয় না, কেবল একটি ফাইলের নাম, আমি জানি না এই পাথটি কোথায় সাধারণত সমাধান হয়। সম্ভবত /var/log/


11

আপনার php.ini ফাইলে ত্রুটি_লগ ভেরিয়েবল সেট করার সময় আপনার নিখুঁত পথটি ব্যবহার করা উচিত , অন্যথায়, ত্রুটিযুক্ত লগগুলি আপনার আপেক্ষিক পাথ অনুসারে সংরক্ষণ করা হবে।

error_log = /var/log/php.errors

অন্য সমাধানটি সরল স্ক্রিপ্ট লিখতে হবে যা ডিরেক্টরি ট্রি থেকে সমস্ত ত্রুটিযুক্ত লগ ফাইলের তালিকা করে।


10

/var/log/apache2/error.logআপনি গুগল কম্পিউট ইঞ্জিনে থাকলে এটিও হতে পারে ।

এবং আপনি এর মতো লেজ দেখতে পারেন:

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

5

যদি আপনি উত্স থেকে অ্যাপাচি এবং পিএইচপি তৈরি করে থাকেন, তবে ডিফল্টরূপে ত্রুটিযুক্ত লগগুলি আপনার ${Apache install dir}/logs/error_logসাধারণত উত্পন্ন হয় /usr/local/apache2/logs/error_log। অন্যথায়, যদি আপনি এটি সংগ্রহস্থল থেকে ইনস্টল করা আছে, আপনি তা খুঁজে পেতে এ হবে /var/log/apache2/error_log.আপনি আপনার পথ সেট করতে পারেন php.iniএছাড়াও আবাহন করার মাধ্যমে এটিকে যাচাই phpinfo()


5

সর্বোত্তম উপায় হ'ল আপনার httpd.conf ফাইলটি দেখতে এবং ডিফল্টটি কী। এটি আপনার নির্দিষ্ট ভার্চুয়াল হোস্ট দ্বারা ওভাররাইড করা যেতে পারে। আমি ত্রুটি_লগটি দেখে /etc/httpd/conf/httpd.confবা /etc/apache2/httpd.confঅনুসন্ধান করে শুরু করি । এটি / var / লগ / httpd / ত্রুটি_লগ /var/log/apache2/error_logহিসাবে তালিকাবদ্ধ হতে পারে বা এটি সহজভাবে তালিকাভুক্তও হতে পারে logs/error_log

এই ক্ষেত্রে এটি একটি আপেক্ষিক পথ, যার অর্থ এটি অধীন হবে /etc/httpd/logs/error_log। যদি আপনি এখনও এটি খুঁজে না পান তবে আপনার httpd.conf ফাইলের নীচে চেক করুন এবং দেখুন যেখানে আপনার ভার্চুয়াল হোস্টগুলি অন্তর্ভুক্ত রয়েছে। এটি /etc/httpd/conf.d/<- এ "অন্য" বা "অতিরিক্ত" হিসাবে থাকতে পারে। আপনার ভার্চুয়াল হোস্টটি ত্রুটি-লগ "/ পাথ / থেকে / ত্রুটি_লগ" এর সাথে ওভাররাইড করতে পারে।


4

Php.ini এ আপনার ত্রুটি লগ ফাইলটি কনফিগার করার সময় আপনি একটি নিখুঁত পাথ বা কোনও আপেক্ষিক পথ ব্যবহার করতে পারেন। উত্পন্ন স্ক্রিপ্টের অবস্থানের ভিত্তিতে একটি আপেক্ষিক পথটি সমাধান করা হবে এবং আপনার প্রতিটি স্ক্রিপ্টে থাকা ডিরেক্টরিতে একটি লগ ফাইল পাবেন you ফাইল.

এখানে আরও দেখুন: http://www.php.net/manual/en/ref.errorfunc.php#53025


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

4

এনজিআইএনএক্স সাধারণত এটি /var/log/nginx/error.log বা অ্যাক্সেস.লগ এ সঞ্চয় করে। (যে কোনও ক্ষেত্রে উবুন্টুতে)


4
php --info | grep error

এটি সহায়ক। প্রশ্নে sjas দ্বারা মন্তব্য। সুতরাং আমি এটি একটি উত্তর হিসাবে অন্তর্ভুক্ত।


2
(দেখে মনে হচ্ছে) এটি পিএইচপি কমান্ড লাইন সেটিংসের (যেমন /etc/php/7.1/cli/php.ini) অ্যাপাচি সেটিংসের চেয়ে বেশি ফলাফল দেয়।
ব্রায়ান হেনরিআইই

3

আপনি যদি php5-fpm ব্যবহার করেন তবে লগ ডিফল্ট হতে হবে

/var/log/php5-fpm.log

2

আপনি যেদিকেই এটি চান, যদি আপনি এটি আপনার ফাংশন কল সেট করেন: ত্রুটি_ব্লগ ($ ত্রুটিমেশাজেরলগ। "\ n", 4, 'কিছুপ্যাথ / সোমারফিলনেম.সোম');


2

কমান্ড লাইনে ErrorLogচলার জন্য জন্য httpd.conf ফাইল অনুসন্ধান করুন cat <file location> | grep ErrorLog। উদাহরণ স্বরূপ:

$ cat /etc/apache2/httpd.conf | grep ErrorLog

আউটপুট:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/apache2/error_log"

যে রেখাটি শুরু হয় তা সন্ধান করুন ErrorLogএবং আপনার উত্তর আছে।

দ্রষ্টব্য: ভার্চুয়াল হোস্টগুলির জন্য, আপনি httpd-vhosts.confআলাদা লগ ফাইলের অবস্থান নির্দিষ্ট করতে ভার্চুয়াল হোস্টগুলি ফাইল সম্পাদনা করতে পারেন ।


2

সিপ্যানেল ত্রুটির লগগুলি এখানে অবস্থিত:

, / Usr / স্থানীয় / cPanel / লগ /

, / Usr / স্থানীয় / Apache / লগ /

ডিফল্টরূপে অ্যাচে লগগুলি ভিতরে অবস্থিত:

প্রথমেই / var / log /? Apache

অথবা

প্রথমেই / var / log /? Apache2

যদি কেউ কাস্টম লগ অবস্থান ব্যবহার করে থাকে তবে আপনি এই আদেশটি চালিয়ে এটি পরীক্ষা করতে পারেন:

বিড়াল জন্য / etc / apache2 / সার্ভার /httpd.conf | গ্রেপ ত্রুটি

যদি আপনি ত্রুটি পেয়ে থাকেন যে অ্যাপাচি 2 ডিরেক্টরিটি বিদ্যমান নেই তবে আপনি সঠিক স্থানটি খুঁজতে এই আদেশটি চালাতে পারেন:

যেখানে অ্যাপাচি

অথবা

যেখানে apache2


1
  1. আপনি ফাইল ম্যানেজার চেক লগ ফোল্ডারে যেতে পারেন।
  2. সর্বজনীন_এইচটিএমএল ফোল্ডারে লগ ফাইলটি পরীক্ষা করুন।
  3. লগ স্টোর যেখানে "php phpinfo ()" ফাইল পরীক্ষা করুন।

1

আপনি শেয়ার পরিবেশে আছেন এবং ত্রুটি লগটি খুঁজে পাবেন না, সর্বদা সিপ্যানেলে আপনার সিপ্যানেল ড্যাশবোর্ডে বিকল্প ত্রুটি আছে কিনা তা পরীক্ষা করে দেখুন। আপনি যদি ত্রুটি লগ খুঁজে পেতে সক্ষম না হন তবে আপনি এটি সেখানে খুঁজে পেতে পারেন।

সিপ্যানেল অনুসন্ধান বারে, অনুসন্ধান ত্রুটি এটি ত্রুটি পৃষ্ঠাগুলি প্রদর্শন করবে যা মূলত বিভিন্ন HTTP ত্রুটি পৃষ্ঠাগুলির তালিকা এবং অন্যান্য ত্রুটি যেখানে ত্রুটি লগগুলি প্রদর্শিত হয়।

ভাগ করা পরিবেশ দেখার জন্য অন্যান্য স্থান: / হোম / আপনার ব্যবহারকারী নাম / লগ / হোম / আপনার ব্যবহারকারী নাম / পাবলিক_এইচটিএমএল / ত্রুটি_লগ


1

এটার মতো কিছু :

sudo locate error.log | xargs -IX grep -iH "errorlog" X

অথবা

sudo locate error_log | xargs -IX grep -iH "errorlog" X

অথবা

sudo find / -iname "error?log" 2>/dev/null | xargs -IX grep -iH "errorlog" X

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