آشنایی با خطای Internal Server Error 500
یکی از خطاهای رایج که ممکن است برای هر سایتی اتفاق بیافتد، خطای Internal Server Error 500 است. این خطا از ناحیهی سرور و یا همان هاست بروز پیدا میکند و باعث از دسترس خارج شدن سایت میشود. در این مقاله به صورت کامل علت بروز و آموزش رفع خطای Internal Server Error 500 را بیان خواهیم کرد.
دلیل وقوع خطای Internal Server Error 500 چیست؟
خطا درونی سرور که با نام http error 500 نیز شناخته میشود، یکی از خطاهای رایج http است که ممکن است برای هر سایتی با هر سیستم مدیریت محتوا اعم از وردپرس، جوملا و… رخ است. زمانی که در سرور یا هاست سایت اشکالی به وجود آید و سرور علت آن را نتواند تشخیص دهد، با ارور Internal Server Error 500 مواجه میشویم.
چون خطای Internal Server Error 500 باعث خارج شدن سایت از دسترس همگان میشود، بسیار مهم است که برای جلوگیری از افت رتبه سئو سریعا خطا برطرف شود.
رفع خطای Internal Server Error 500 در سمت کاربر
در هنگام تکمیل مقاله در حال مطالعه سایت هاب اسپات بودم، ابتدا تعجب کردم که ممکن است از سمت کلاینت بتونیم خطای Internal Server Error 500 را برطرف کنیم، کمی بیشتر فکر کردم و متوجه شدم که اگر سایت با یک نوع محتوای کوکی به خطا بر بخورد و اکنون سمت سرور اصلاح شده باشد، با حذف کوکی های کلاینت و پاک کردن کش کلاینت مشکل سمت کلاینتی که این مشکل را داشته است حل خواهد شد:
هنگامی که یک کاربر با خطای Internal Server Error 500 مواجه میشود، میتواند با انجام کارهای زیر تلاش کند تا این مشکل را سمت خود برطرف کند:
○ صفحهی مرورگر را رفرش کنید.
با فشردن دکمهی F5 میتوانید صفحه مرورگر را رفرش کنید.
○ کش (cache) مرورگر را پاک نمایید.
این دلیل به ندرت ممکن است این خطا را به وجود آورد. برای پاک کردن کش مرورگر کافیست Ctrl+F5 را فشار دهید. برای اطمینان بیشتر میتوانید مرورگر را در حالت ناشناس (Private tab or Incognito tab) باز کنید و بررسی کنید که خطا رخ میدهد یا نه، اگر رخ نداد، به این معنی است که برای بازدیدکنندگان جدید این مشکل وجود نخواهد داشت
○ کوکیهای مرورگر را حذف کنید.
گاهی اوقات با حذف کوکیها ممکن است این خطا رفع شود. برای این کار باید به بخش تنظیمات مرورگر رجوع کنید و در بخش Cookies، کوکیهای موجود را حذف کنید. سپس مرورگر را بسته و دوباره سایت را مشاهده کنید.

رفع خطای Internal Server Error 500 توسط مدیر وب
اکثر علت وقوع خطای Internal Server Error 500 در سمت هاست یا سرور است و اگر شما مدیر سایت هستید با کنترل موارد زیر میتوانید این خطا را پیدا و رفع کنید:
تنظیم سطح دسترسی (Permission) فایلها و دایرکتوریها
چون اکثر هاستها بر اساس cPanel هستند، ما در اینجا تنظیم Permission در cPanel را توضیح میدهیم. البته در Direct Admin هم مشابه همین مراحل است. بر روی File Manager کلیک کنید:

ابتدا به پوشهی public-html بروید و سپس مقدار ستون Permission برای تمام فایلها و پوشههای موجود را بررسی کنید و موارد اشتباه را اصلاح کنید. مقدار ستون Permission را به صورت زیر تنظیم کنید (راست کلیک کنید، گزینه Change Permission را انتخاب کنید و مقدار متناسب را تنظیم کنید):
○ برای دایرکتوریها(فولدرها) مقدار 755
○ برای فایلها 644
○ برای اسکریپتهایی cgi مقدار 755

رفع خطای فایل htaccess.
ابتدا در cPanel باید مجوز نمایش فایلهای مخفی را فعال کنید، برای این کار در File Manager بر روی Settings (بالا سمت راست صفحه) کلیک کنید و سپس بر روی گزینه Show Hidden File کلیک کنید تا تیک دار شود و بر روی Save کلیک کنید:

اگر با کدهای فایل .htaccess آشنایی دارید، می توانید خطوطی که فکر میکنید اشتباه است را کامنت کنید (ابتدای خط علامت # بگذارید)، اگر هم آشنا نیستید و از وردپرس استفاده می کنید، به راحتی میتوانید فایل htaccess. را ریست کنید، .برای ریست کردن این فایل ابتدا از فایل خود بکاپ بگیرید. سپس از طریق کنترل پنل هاست (مثلا در cPanel از طریق File Manager این فایل را حذف کنید.) سپس در تنظیمات وردپرس، بخش پیوند های یکتا یکبار دکمه ذخیره را بزنید، تا فایل htaccess. توسط وردپرس ساخته شود.
در ادامه تعدادی از خطاهای رایج در فایل htacccess. و روش حل آن را بیان خواهیم کرد.
خطاهای htaccess - خطای FollowSymlinks
اگر در Error Log خطایی مشابه زیر دیدید، به این معنی است که شما خطای FollowSymlinks مواجه شدید:
[Sun Jun 05 08:05:14 2022] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: Option FollowSymlinks not allowed here
خطا FollowSymLinks به آسانی قابل حل است، کافی است در فایل مورد نظر، به جای «FollowSymlinks» دستور «SymlinksIfOwnerMatches» را استفاده کنید یا خط مربوطه را کامنت یا حذف نمایید.
خطاهای htaccess - خطای Syntax Not Closed
این خطا در مواردی رخ میدهد که از دستوری مانند IfModule استفاده شده است و باید پایان آن مشخص شود ولی نشده است. شما با متن خطا مشابه زیر مواجه می شوید:
[Sun Jun 05 05:14:38 2022] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: <IfModule>ExampleRule/Module> was not closed.
برای رفع این خطا کافی است در جایی که تگ را نبستید، ببندید:
<IfModule>ExampleRule</IfModule>
غیرفعال کردن افزونه های وردپرس و قالب
باید افزونه های وردپرس را تک تک غیرفعال کنید تا بفهمید که آیا افزونهها موجب خطای Internal Server Error 500 شدهاند یا خیر. ابتدا افزونههای ایرانی را غیرفعال کنید چون متاسفانه بسیاری از آنها کدنویسی استانداردی ندارند. اگر بعد از غیر فعال کردن افزونهای مشکل برطرف شد، باقی افزونهها به غیر از آن را فعال کنید.
در زمانی که خطای Internal Server Error 500 رخ داده است، شما به داشبورد وردپرس دسترسی ندارید، پس باید بتوانید بدون دسترسی به داشبورد وردپرس افزونه ها را غیرفعال و قالب را تغییر دهید:
○ برای غیر فعال کردن افزونه ها ابتدا از طریق File Manager یک بکاپ از دایرکتوری plugins که درون wp-content است بگیرید، سپس برای غیرفعال کردن هر افزونه کافی است دایرکتوری آن را حذف کنید.
○ برای تغییر قالب وردپرس از طریق هاست یا به عبارت بهتر تغییر پوسته وردپرس از طریق دیتابیس اینجا کلیک کنید و مطابق آموزش عمل کنید.
هیچکدام از این راهحلها جواب نداد! چکار کنم؟

بسیاری از مشکلات در سمت سرور توسط شما به عنوان مدیر سایت قابل بررسی نیست ولی پشتیبان سرور شما از طریق کنترل Log فایلها میتواند مشکل را پیدا و حل کند. اگر با موارد بالا نتوانستید مشکل را حل کنید، یک تیکت به پشتیبانی هاست خود بزنید و از آنها کمک بخواهید.
دیدگاهی ثبت نشده است