خطای ترسناک ۵۰۰ همیشه در بدترین زمان رخ میدهد! ترسناک بودن خطای ۵۰۰ آنجاست که شما یک سایت فروشگاهی دارید و این پیام خطا برای شما ظاهر میشود که میتواند باعث از دست دادن مشتریان و بازدیدکنندگان سایتتان و همچنین زیانآور برای برند شما باشد. خطای ۵۰۰ نشانگر این است که هنگام اتصال به سرور خطایی رخ داده و نمیتوان به صفحه درخواستی دسترسی پیدا کرد. اما نگران نباشید ما به شما کمک میکنیم که دوباره سایت خود را آنلاین کنید.
فهرست محتوا
- خطای Internal Server 500 به چه معناست؟
- شکلهای متفاوت خطای ۵۰۰
- دلایل خطای ۵۰۰ داخلی سرور چیست؟
- نحوه رفع خطای ۵۰۰ (ارور داخلی سرور)
- ۱- صفحه را ریفرش کنید.
- ۲- کش و کوکی مرورگر را پاک کنید
- ۳- بررسی لاگ (log) سرور
- ۴- بررسی خطاهای اتصال به پایگاه داده
- ۵- افزونهها و پوستههای خود را بررسی کنید
- ۶- نصب دوباره هسته وردپرس
- ۷- خطای سطح دسترسی در فایل و پوشه
- ۸- افزایش محدودیت حافظه PHP
- ۹- ویرایش فایل htaccess.
- ۱۰- برطرف کردن خطاهای کدنویسی یا syntax در اسکریپت CGI/Perl
- ۱۱- مشکلات سرور را با شرکت هاست خود در میان بگذارید
خطای Internal Server 500 به چه معناست؟
هنگام بازدید از هر سایتی مرورگر شما درخواستی را برای سروری که سایت در آن میزبانی میشود ارسال میکند. اگر مرورگر کد وضعیت ۲۰۰ دریافت کند محتوای سایت به شما نمایش داده میشود. کد وضعیت درواقع راهی برای اطلاع از وضعیت درخواست است. درصورتیکه مرورگر شما کد وضعیت ۵۰۰ را دریافت کند به معنای مشکلی در سمت سرور است. در این حالت سرور میداند خطایی وجود دارد ولی توضیح دقیقی از خطا را در مرورگر به کاربر نشان نمیدهد.
شکلهای متفاوت خطای ۵۰۰
بهخاطر وجود مرورگرها، وبسرورها و سیستمعاملهای متفاوت خطای ۵۰۰ به شکلهای متفاوتی ظاهر میشود. همچنین برخی از برندهای بزرگ مانند YouTube و Airbnb صفحه ارور ۵۰۰ اختصاصی خود را دارند که همه اینها یک معنا و مفهوم را در بر میگیرند. در زیر فقط چند مورد از حالتهای مختلف خطای ۵۰۰ را مشاهده میکنید:
- 500 Internal Server Error - HTTP 500 - Internal Server Error - HTTP 500 – Internal Server Error - 500 Error - HTTP Error 500 - 500 – Internal Server Error - 500 Internal Server Error. Sorry something went wrong - 500. That’s an error. There was an error. Please try again later. That’s all we know - The website cannot display the page – HTTP 500 - Is currently unable to handle this request. HTTP ERROR 500
همچنین ممکن است این پیام را بههمراه خطای ۵۰۰ ببینید:
«سرور با یک خطای داخلی یا پیکربندی نادرست روبهرو شد و نتوانست درخواست شما را تکمیل کند. لطفاً با مدیر سرور، [email protected] تماس بگیرید و آنها را از زمان رخداد خطا و هر کاری که ممکن است انجام داده باشید که باعث بروز خطا شده باشد، آگاه کنید. اطلاعات بیشتر در مورد این خطا ممکن است در گزارش خطای سرور (log) موجود باشد.»
خطای ۵۰۰ در مرورگرهای سافاری و فایرفاکس بهصورت صفحه سفید خالی ظاهر میشود:
دلایل خطای ۵۰۰ داخلی سرور چیست؟
خطای ۵۰۰ داخلی سرور همانطور که از نامش پیداست یک مشکل مربوط به سرور وبسایت است. اگر این خطا را دریافت کردید به احتمال زیاد یکی از موارد زیر باعث ایجاد آن شده است.
- کش (حافظه پنهان) مرورگر
- نادرستی اطلاعات ورود به پایگاه داده
- خرابی پایگاه داده
- فایلهای خراب در نصب وردپرس
- مشکلات در سرور پایگاه داده
- خراب بودن فایلهای اصلی وردپرس
- خرابی فایل htaccess.
- مشکلات مربوط به افزونهها
- مشکل زمانبندی PHP یا خطاهای fatal PHP با افزونههای شخص سوم (Third Party)
- اشتباه در تنظیمات مجوزهای فایل و پوشه
- تمام شدن محدودیت حافظه PHP در سرور
- خطا در اسکریپت CGI و Perl
نحوه رفع خطای ۵۰۰ (ارور داخلی سرور)
فرض کنید الان شما با خطای ۵۰۰ داخلی سرور روبهرو شدید و نمیدانید برای رفع خطا از کجا شروع کنید. نخست بدانید که در بیشتر اوقات این خطا همانطور که از نامش هم مشخص است مربوط به سرور وبسایت است اما بر اساس تجربه گاهی این خطا مربوط به سمت کاربر هم میتواند باشد. در ادامه ۱۱ روش رفع این خطا در دو سمت کاربر و سرور را بررسی میکنیم.
۱- صفحه را ریفرش کنید.
اولین و سادهترین کاری که هنگام روبهرو شدن با خطای ۵۰۰ باید امتحان کنید ریفرش کردن صفحه چند دقیقه بعد از خطاست یا اینکه سایت را در مرورگر دیگری باز کنید. ممکن است زمانی که شما سایت را باز کردید، در همان لحظه سرور یا هاست، اورلود (Overload) شده باشد و بلافاصله سایت دوباره آنلاین شود که با ریفرش کردن سایت خطا برای شما برطرف میشود.
گاهی این خطا پس از بهروزرسانی یک افزونه یا قالب سایت معمولا روی هاستهایی که بهدرستی تنظیم نشده باشند رخ میدهد و برای چند ثانیه وقفه موقت ایجاد میشود. در این حالت است که با ریفرش کردن وبسایت خطا برطرف میشود.
۲- کش و کوکی مرورگر را پاک کنید
قبل از وارد شدن به مراحل عیبیابی خطا، پاک کردن کش مرورگر (حافظه پنهان) و همچنین کوکیهایی که احتمال دارد با پیام خطای ۵۰۰ مرتبط باشند، کمککننده هستند.
۳- بررسی لاگ (log) سرور
در فایل لاگ سرور خود میتوانید خطای پیش آمده را ببینید. اگر سرور شما ابزار گزارشدهی (log) ندارد میتوانید برای فعالسازی حالت عیبیابی وردپرس دستور زیر را به فایل wp-config.php اضافه کنید تا لاگ فعال شود.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
پوشه گزارشها (log) در وردپرس معمولا در پوشه wp-content/ هستند:
فایل لاگ در وبسرور آپاچی در مسیر /var/log/apache2/error.log و در انجینایکس در مسیر /var/log/nginx/error.log قرار دارد.
اگر خطای ۵۰۰ بهدلیل خطای fatal PHP نمایش داده میشود. میتوانید گزارش خطای PHP را با افزودن دستور زیر به فایل لاگ PHP فعال کنید.
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
همچین شاید نیاز باشد فایل php.ini خود را بهصورت زیر تغییر دهید:
display_errors = on
۴- بررسی خطاهای اتصال به پایگاه داده
خطای اتصال به پایگاه داده میتواند باعث خطای ۵۰۰ شود. در تصویر زیر مثالی از پیام «خطا در ایجاد اتصال پایگاه داده» آمده است:
صفحه خالی نشان از این دارد که اتصال بهدرستی کار نمیکند. این خطا نهتنها فرانتاند سایت شما را نابود میکند، بلکه از دسترسی شما به داشبورد وردپرس نیز جلوگیری میکند. دلایل رایج این اتفاق را در زیر میآوریم:
- اعتبارنامه ورود به پایگاه داده شما نادرست است.
- خراب شدن پایگاه داده وردپرس
- وجود فایلهای خراب در نصب وردپرس
- مشکلات دیگر با پایگاه داده سرور
۵- افزونهها و پوستههای خود را بررسی کنید
افزونهها، پوستهها، اسکریپتهای شخص سوم (third-party) و غیره بهراحتی میتوانند خطای ۵۰۰ را ایجاد کنند. در این مرحله به مسیر پیشخوان وردپرس > افزونهها > افزونههای نصب شده بروید و یکی از افزونههای سایتتان را غیرفعال کنید و سایت را دوباره لود کنید اگر خطا برطرف نشده بود دوباره آن افزونه را فعال کنید و این روند را یکییکی برای افزونههای سایتتان انجام دهید تا زمانی که خطا رفع شود و متوجه شوید کدام افزونه باعث خطای ۵۰۰ شده است.
۶- نصب دوباره هسته وردپرس
گاهی فایلهای اصلی وردپرس (بهویژه در سایتهای قدیمی) خراب میشوند. آپلود دوباره هسته وردپرس بدون اینکه تاثیری روی افزونهها و قالب بگذارد میتواند خطای ۵۰۰ را برطرف کند. قبل از این کار حتما یک نسخه پشتیبان (بکاپ) تهیه کنید.
۷- خطای سطح دسترسی در فایل و پوشه
تعیین نادرست سطح دسترسی فایلها و پوشهها در وردپرس میتواند باعث خطای ۵۰۰ شود. بهطورکلی سه نوع سطح دسترسی برای فایل و پوشه تعریف شده است:
- خواندن (r)
- نوشتن (w)
- اجرا کردن (x)
شما میتوانید از طریق کنترل پنل یا FTP به سرور سایتتان متصل شوید و برای تغییر مجوزهای فایل و پوشه در وردپرس به روش زیر عمل کنید تا با خطای ۵۰۰ روبهرو نشوید:
- سطح دسترسی همه فایلها باید ۶۴۴ (-rw-r-r–) یا ۶۴۰ باشد.
- سطح دسترسی همه دایرکتوریها باید ۷۵۵ (drwxr-xr-x) یا ۷۵۰ باشد.
- به هیچ دایرکتوری نباید سطح دسترسی ۷۷۷ داده شود، حتی دایرکتوریهای آپلود.
- سطح دسترسی فایل wp-config.php روی ۴۴۰ یا ۴۰۰ تنظیم شود تا سایر کاربران روی سرور نتوانند آن را بخوانند.
۸- افزایش محدودیت حافظه PHP
اتمام محدویت حافظ PHP میتواند باعث خطای ۵۰۰ شود. در زیر نحوه افزایش محدودیت حافظه در آپاچی، سی پنل، فایل php.ini و فایل wp-config.php را آموزش میدهیم.
افزایش محدودیت حافظه PHP در سی پنل
در بخش Software گزینه Select PHP Version را انتخاب کنید سپس در بالای صفحه سمت راست روی گزینه Switch to PHP Options کلیک کنید. در صفحه باز شده طبق تصویر زیر حجم memory_limit را افزایش دهید و ذخیره کنید.
افزایش محدودیت حافظه PHP در آپاچی
فایل htaccess. در دایرکتوری Root را ویرایش کنید و کد زیر را برای افزایش محدودیت حافظه به آن اضافه کنید.
php_value memory_limit 128M
افزایش محدودیت حافظه PHP در فایل php.ini
در دایرکتوری Root فایل php.ini را باز کنید یا اگر نبود آن را بسازید و دستور زیر را در آن قرار دهید. بسته به نیاز خود میتوانید حجم آن را در کد زیر افزایش دهید.
memory_limit = 128M
در برخی از هاستهای اشتراکی شاید نیاز باشد که دستور suPHP را در فایل htaccess. خود اضافه کنید تا تنظیمات فایل php.ini بالا عمل کند. در دایرکتوری Root فایل htaccess. را ویرایش کنید و کد زیر را به آن اضافه کنید.
<IfModule mod_suphp.c> suPHP_ConfigPath /home/yourusername/public_html </IfModule>
افزایش محدودیت حافظه PHP در فایل wp-config.php
اگر از روشها بالا جواب نگرفتید وارد کنترل پنل شوید و فایل wp-config.php را در دایرکتوری Root سایت پیدا کنید و کد زیر را در ابتدای فایل قرار دهید.
define('WP_MEMORY_LIMIT', '128M');
۹- ویرایش فایل htaccess.
خطا در کدنویسی و مشکل در ساختار فایل htaccess. میتواند باعث خطای ۵۰۰ شود. فایل htaccess. را در دایرکتادمین از این مسیر File Manager –> public_html پیدا کنید و در سیپنل این فایل در پوشه public_html قرار دارد که به طور پیشفرض مخفی هست. در بالای صفحه سمت راست تنظیمات را انتخاب کنید و تیک گزینه «Show Hidden Files» را بزنید و ذخیره کنید. حالا نام فایل htaccess. را تغییر دهید و صفحه خطا را ریفرش کنید اگر خطا رفع شده بود میتوانید برای ساخت دوباره فایل htaccess. در بخش تنظیمات –> پیوندهای یکتا را انتخاب کنید سپس در انتهای صفحه روی گزینه ذخیره تغییرات کلیک کنید.
۱۰- برطرف کردن خطاهای کدنویسی یا syntax در اسکریپت CGI/Perl
خطای ۵۰۰ ناشی از خطا در CGI و Perl نسبت به گذشته کمتر شده ولی هنوز هم برای کسانی که از کنترل پنل cPanel استفاده میکنند رخ میدهد.
نکات مهم برای کار با اسکریپتهای CGI:
- همیشه از یک ویرایشگر متن ساده مانند Atom ،Sublime یا ++Notepad برای ویرایش استفاده کنید. برای اینکه آنها در قالب ASCII باقی بمانند.
- مطمئن شوید که از سطح دسترسی chmod ۷۵۵ در اسکریپتها و دایرکتوریهای CGI استفاده شده است.
- اسکریپتهای CGI را در حالت ASCII در پوشه cgi-bin سرور خود آپلود کنید.
- تایید ماژولهای Perl موردنیاز برای اسکریپت نصب شده
۱۱- مشکلات سرور را با شرکت هاست خود در میان بگذارید
در پایان، از آنجاییکه خطای ۵۰۰ نیز میتواند به دلیلهای مختلفی رخ دهد، همیشه میتوانید با شرکت هاست خود تماس بگیرید چون گاهی عیبیابی این خطاها بدون متخصص دشوار است. ما در این مقاله چند نمونه رایج از برخی خطاهایی که باعث ایجاد کد وضعیت ۵۰۰ HTTP در سرور میشوند را بررسی کردیم.
2 دیدگاه. Leave new
سلام چرا سایستم خرابه خواهشن درستش کنین
سلام حمید گرامی
در صورتی که سایت شما در مارال هاست میزبانی می شود، از طریق تیکت با پشتیبانی فنی در ارتباط باشید تا مشکل شما را پیگیری نمایند.