error_log یکی از آن ارورهایی است که در سایتهای وردپرسی رواج زیادی دارد. خطایی که بهخاطر پر شدن فایل error_log رخ میدهد و با اشغال تمام فضای ذخیرهسازی هاست، کلی مشکلات ریزودرشت متفاوت رقم میزند. در این مقاله، میخواهیم راهحل مشکل حجم ارور لاگ را بررسی کنیم و بگوییم چطور این مشکل را حل کنید. قبل از کندوکاو راهحلها، بیایید شناخت کاملتری از error_log به دست بیاوریم.
error_log چیست؟
به بیان ساده، error_log فایلی است که تمام ارورهای رخداده هنگام اجرای یک اپلیکیشن روی آن ثبتوضبط میشوند. علاوهبر خطاهای مرتبط با اپلیکیشنها، ارورهایی که به سیستمعامل و سرور مربوط میشوند هم به ارور لاگ افزوده خواهند شد.
فایل مذکور، شامل اطلاعاتی مثل جزئیات اتفاق یا خطای رخداده، زمان رخداد، میزان جدیت و خطرآفرینی و حتی در برخی موارد، دلایلی که به بروز خطا منجر شدهاند میشود.
این فایلها میتوانند فواید و کاربردهای گوناگونی داشته باشند؛ کاربردهایی مثل:
- دیباگینگ: برنامهنویسها و دولوپرها میتوانند با استفاده از اطلاعات موجود در فایلهای error_log، مشکلات موجود را شناسایی و برطرف کنند.
- مانیتورینگ: ادمینهای سیستم میتوانند سلامت سیستم و نحوۀ عملکرد آن را با استفاده از فایلهای ارور لاگ با دقت زیر ذرهبین ببرند.
- تأمین امنیت: تمام تلاشها برای دسترسیهای غیرمجاز و نفوذ مخرب به سیستم ثبت میشوند و متخصصان حوزۀ امنیت، میتوانند با بررسی آنها، وضع ایمنی سیستم را بهبود ببخشند.
علاوهبر اینها، اطلاعات موجود در این فایلها میتوانند برای آنالیز ماهیت مشکل، تشخیص الگوهای تکراری و گزارشدهی راجعبه وضعیت کلی، به کار گرفته شوند. در سرویسهای میزبانی مجهز به cPanel، این فایل در دایرکتوری public_html نگهداری میشود؛ پس با پر شدن آن، تمام فضای ذخیرهسازی هاست اشغال خواهد شد که میتواند مشکلات متعددی را رقم بزند.
اگر موافق باشید، در بخشی جداگانه ولی مختصر، معضلات ناشی از پر شدن هاست را بررسی کنی
پر شدن فضای هاست در وردپرس چه مشکلاتی را به همراه میآورد؟
از نقص در عملکرد گرفته تا ناپایداری سیستم! مشکلات حاصل از پر شدن فضای ذخیرهسازی هاست (که گفتیم یکی از دلایل پرتکرار بروز آن پر شدن فایل error_log است) بسیار هستند. از آنجایی که فضای کافی برای انجام پردازشهای مختلف وجود ندارد، سرعت پاسخدهی به اقدامات مشخص پایین میآید؛ حتی ممکن است در برخی موارد، پاسخی از جانب سیستم دریافت نکنید!
علاوهبر این، آن دسته از اپلیکیشنهایی که برای دسترسی به دادهها نیازمند فضای ذخیرهسازی هستند هم با کاهش سرعت و انواع متنوع مشکلات عملکردی مواجه خواهند شد. دیتابیس هم که میدانیم تا چه حد به فضای ذخیرهسازی وابستگی دارد، نمیتواند آنطور که بایدوشاید عمل کند و اختلال در عملکرد دیتابیس، کل سیستم را درگیر ناکارآمدی خواهد کرد! همچنین، کلی مشکل دیگر هم به وجود میآیند که برخی از آنها را در ادامه میبینید:
- خطاهای File System: پر شدن فضای ذخیرهسازی به خرابی فایلهای سیستم، از دست رفتن دادهها و عدم امکان دسترسی به آنها منجر میشود.
- عدم اجرای درست اپلیکیشنها و نرمافزارها: امکان دارد اپلیکیشنها درست اجرا نشوند؛ یا ممکن است رفتاری غیرمنتظره از خود نشان دهند.
- عدم اجرای درست فرایند بکاپگیری: نبود فضای کافی برای ذخیرهسازی دادهها، میتواند در فرایند بکاپگیری اختلالهای جدی ایجاد کند.
- بروز رخنههای امنیتی: بهخاطر پر شدن فضای ذخیرهسازی، احتمال آسیبپذیری در برابر حملات سایبری افزایش پیدا میکند.
بهدنبال بروز این مشکلات، شاهد داونتایم بیشتر سرورها خواهیم بود. از نقطهنظر هاستینگها، مشکل بزرگتر هم خواهد بود؛ چراکه با گروه کثیری از مشتریان ناراضی طرف میشوند که پر شدن فضای هاست آنها را کلافه کرده است. قبل از اینکه توضیح دهیم چطور میتوان از پر شدن فایل error_log ممانعت به عمل آورد، اجازه دهید چگونگی فعالسازی این فایل را بررسی کنیم.
چطور error_log را فعال کنیم؟
همانطور که گفتیم، فایلهای error_log با توجه به کاربردی که دارند، ضروری هستند و به مزایای بسیاری را حاصل میکنند. پس فارغ از اینکه احتمال پر شدن آنها میتواند دردسرساز باشد، نباید فراموش کنیم که این فایلها کلی فایده هم دارند. بسته به کنترلپنلی که از آن استفاده میکنید، روال کار ممکن است کمی متفاوت باشد. در ادامه، چگونگی فعال کردن error_log برای دو کنترلپنل سیپنل و دایرکتادمین بررسی خواهیم کرد.
1. در کنترلپنل سیپنل
ابتدا در پنل سیپنل وارد شوید برای این منظور می توانید به مقاله ورود به سیپنل در وبلاگ ایران سرور مراجعه کنید.
1. به بخش SOFTWARE بروید و روی Select PHP Version کلیک کنید.
2. در صفحۀ جدید، روی دکمۀ Switch to PHP Options کلیک کنید.
3. حالا میتوانید دنبال گزینۀ display_errors بگردید و تیک کنار آن را بزنید.
2.در کنترلپنل دایرکت ادمین
اگر هاستتان با دایرکت ادمین کار میکند و قصد فعالسازی فایل error_log را دارید، چند روش پیش رویتان قرار دارد.
از آنجایی که داشبورد کنترلپنل مذکور بخشی را برای این منظور تعبیه نکرده است، بهتر است با اعمال تغییرات در فایل .htaccess کار را پیش ببرید.
1. به File Manager بروید و در آنجا روی public_html کلیک کنید.
2. اگر .htaccess از قبل وجود داشته باشد، باید آن را ویرایش کنید؛ در غیر این صورت (احتمال کم) باید فایل مذکور را بسازید.
3. خطوط زیر باید به فایل .htaccess اضافه شوند:
php_flag log_errors on php_flag log_errors on php_value error_reporting 32767 php_value error_reporting 32767 php_value error_log "error_log.txt" php_value error_log "error_log.txt"
نکتۀ مهم: حتماً قبل از اعمال هر تغییر، از .htaccess بکاپ بگیرید تا اگر احیاناً کار درست پیش نرفت، مشکل خاصی پیش نیاید.
4. بعد از اضافه کردن خطوطی که بالاتر آوردیم، در دایرکتوری public_html یک فایل با عنوان error_log.txt بسازید.
5. تغییرات را ذخیره و فایل را ببندید. حالا تمام خطاها در فایل تازهساختهشده ثبتوضبط میشوند.
و اما برگردیم به مشکل اصلی و ببینیم چطور میتوانیم مانع از پر شدن فایل error_log شویم.
مطلب مرتبط: فایل htaccess کجاست؟ و چه کاربردی دارد.
راههای جلوگیری از پر شدن فایل error_log
گفتیم که پر شدن فایل error_log به پر شدن فضای ذخیرهسازی هاست منجر خواهد شد و بهدنبال این موضوع، کلی مشکل و معضل دیگر پدید میآید. به همین خاطر، میخواهیم توضیح دهیم که از چه طریقی باید مانع بروز این اتفاق شد. اول از همه، ریشۀ مشکل باید شناسایی شود. چه شده که این فایل از اطلاعات خطاهای رخداده پر شده است؟
شاید مشکل بهخاطر تعدد خطاهایی باشد که در آن ثبت میشوند؛ شاید هم بهخاطر اینکه حجم اطلاعات هر خطا بسیار زیاد است! حتی احتمال دارد محدودیتهایی برای خود فایل تعریف شده باشند و ثبت تعدادی خطا زیاد باعث شود فایل به حداکثر ظرفیت برسد.
بهتر است برخی اقدامات پیشگیرانه را انجام دهید تا احتمال بروز این مشکل به حداقل برسد. اتخاذ یک مکانیزم درستوحسابی برای مدیریت ارورها، باعث کاهش تعداد خطاهایی میشود که در این فایل ثبت میشوند.
ضمناً، بهینهسازی کدهای سایت هم میتواند مفید باشد و به کاهش تعداد ارورها منجر شود. بهروز بودن بخشهای مختلف سایت وردپرسی، از نسخۀ PHP گرفته تا ورژن پلاگینها و قالبها، از تداخل بین آنها ممانعت به عمل میآورد و در نتیجه، احتمال اینکه خطا رخ بدهد هم پایین میآید.
کار دیگری که میتوانید انجام دهید، کنترل سایز اطلاعاتی است که از خطاها ثبت میشوند. مثلاً، میتوانید محدودیتی برای سیستم تعریف کنید که بعد از رسیدن به حجمی مشخص، باقی اطلاعات را در لاگی جدید ارائه کند. همچنین، میتوان لاگهای قدیمی را فشردهسازی کرد تا فضای کمتری را اشغال کنند؛ یا اینکه با انتقال لاگهای قدیمی به آرشیو، فضای خالی کافی را در فایل error_log ایجاد کرد. در نهایت، میتوان فیلترهایی را تعیین کرد تا بهکمک آنها، اطلاعات غیرضروری ثبت نشوند تا فضای بیشتری فراهم باشد.
اغلب کنترلپنلها، از جمله دایرکتادمین و سیپنل، سازوکارهایی برای مدیریت بهینۀ فایل مورد بحث ارائه میکنند که میتوانید از آنها هم کمک بگیرید.
لازم است یک نکتۀ مهم را هم متذکر شویم؛ آن هم اینکه در بسیاری از مواقع، ریشۀ مشکل در نحوۀ تعاملات برخی افزونهها و قالبها با هستۀ وردپرس نهفته است.
با مراجعه به File Manager کنترلپنل هاست خود، در دایرکتوری public_html و در فولدر wp-includes، فایل class-wp-hook.php را باز کنید.
در خط 291 این فایل، خط زیر را خواهید دید:
; while ( false !== next( $this->iterations[ $nesting_level ] ) ){
خط زیر را جایگزین خط بالا کنید:
;while ( is_array( $this->iterations[ $nesting_level ] ) && false !== next( $this->iterations[ $nesting_level ] ) ){
با انجام این کار، مشکل پر شدن هاست بهخاطر پر شدن فایل error_log هم از بین میرود.
اگر مشکل حل نشد، با پشتیبانی ایرانسرور تماس بگیرید!
اگر مشتری ما باشید و از سرویسهای میزبانی ایرانسرور استفاده کنید، با اتخاذ راهکارهای بالا، به احتمال خیلی زیاد مشکلتان برطرف خواهد شد. اگر احیاناً همچنان میبینید فضای ذخیرهسازی هاست کاملاً اشغال شده است، توصیه میکنیم با متخصصان ما در پشتیبانی تماس بگیرید تا از راهنمایی حرفهای آنها برخوردار شوید.
اگر از هاستینگهای دیگر سرویس میگیرید، بسته به مشخصات هاست و مسائل فنی دیگر، ممکن است راهکارهای بهتری برای برطرف کردن مشکل وجود داشته باشد؛ در این شرایط هم بهتر است با پشتیبانی ارائهدهنده تماس بگیرید و از آنها کمک بخواهید.
بهعلاوه، اگر پرسشی در این رابطه داشته باشید، میتوانید آن را زیر همین بلاگپست آموزشی بنویسید تا متخصصان ما در کوتاهترین زمان ممکن پاسختان را بدهند.
سوالاتی که شما میپرسید
1. فایل ارور لاگ چه کاربردها و فوایدی دارد؟
فایل ارور لاگ میتواند برای امور مختلفی مثل دیباگینگ، مانیتورینگ و البته تأمین امنیت کل هاست به کار بیاید.
2. پر شدن فایل ارور لاگ چه مشکلاتی را ایجاد میکند؟
مشکل اصلی که به وجود میآید، پر شدن فضای هاست است. پر شدن فضای هاست یعنی نقص عملکرد و افت شدید سرعت!
3. چه روشهایی برای جلوگیری از پر شدن فایل ارور لاگ کارآمد هستند؟
مدیریت درست ارورها، بهینهسازی کدهای سایت و بهروز نگه داشتن بخشهای مختلف، جزو مؤثرترین روشهای پیشگیرانه هستند که از پر شدن فایل ارور لاگ جلوگیری میکنند.
2 دیدگاه. دیدگاه تازه ای بنویسید
با این روش مشکل حل نمیشه، من تعجب میکنم که این پست رو منتشر کردید!!
سلام
با تغییرات ذکر شده مشکل هاست هایی که در ایرانسرور میزبانی میشده اند تا کنون برطرف شده است.
در صورتیکه هاست شما در ایرانسرور میزبانی میشود، لطفا تیکتی مبنی بر وجود این مشکل ارسال نمایید تا عدم رفع مشکل شما پبگیری شود.