ارور 500 چیست و آموزش رفع خطای 500 Internal Server Error در هاست

خطاهای وردپرس
بدون دیدگاه
663

ارور 500 یا خطای 500 internal server error اغلب به دلایل پیکربندی نادرست رخ میدهد. در این آموزش به شما میگوییم که http error 500 چیست و اصلا چرا ارور http error 500 در وردپرس رخ میدهد و درنهایت به رفع خطای 500 internal server error خواهیم پرداخت. ارور 500 در سی پنل هم قابل پیگیری است و کافیست فایل ارور لاگ را بررسی کنید.

از رایج ترین دلایل بروز ارور Internal Server 500 می تواند از اعمال سطح دسترسی یا Permission نادرست بر روی فایل ها و دایرکتوری ها، Ownership نادرست در هاست، کد های نادرست در فایل php.ini یا فایل .htaccess، درخواست های نامعتبر از سمت اسکریپت سایت و… اشاره کرد.

خطای Internal Server Error 500 با توجه به نام آن بسیاری از کاربران را به این اشتباه می اندازد که مشکلی در سرور وجود دارد ولی در واقع سرور مشکلی نداشته و با اعمال تغییرات در تنظیمات پیکربندی سایت معمولاً قابل رفع می باشد.

خطای http error 500 چیست؟

وقتی که کاربری از سایت شما بازدید میکند مرورگر درخواستی به سروری که سایت در آن میزبانی می‌شود ارسال می‌کند.اگر کد وضعیت ارسال شده ازسمت سرور به مرورگر 200 باشد محتوای سایت نمایش داده میشود و در غیر این صورت اگرمرورگر از سمت سرور کد وضعیت 500 دریافت کند نشان دهنده ی مشکلی از سمت سرور می باشد.

خطای internal server error 500 صرفا مختص وردپرس نبوده و همانطور که از نام آن مشخص است به دلیل عدم ناسازگاری در کدهای سایت و دلایل دیگر در سایت رخ میدهد. بنابراین قبل از هر کاری ابتدا باید بررسی کرده و ببینید دلیل بروز خطای 500 سایت چیست، بنابراین اگر هنگام تغییر در فایل های وردپرس و ویرایش قالب یا افزونه چنین خطایی را مشاهده کردید به احتمال بسیار زیاد مشکل به تغییرات اخیر مربوط است.

اما اگر بعد از چند روز به سایت مراجعه کردید خطای internal server error 500 مشاهده شد باید تمامی راهکارهای ذکر شده در این راهنما را تا برطرف کردن مشکل خطای داخلی سرور در وردپرس(خطای 500) طی کنید. البته در برخی موارد این خطا صرفا در صفحه ورود به پیشخوان وردپرس ظاهر میشود و عملا شما با خطای HTTP 500 Internal Server در صفحه اصلی سایت مواجه نخواهید شد.

خطای Internal Server 500 چیست

انواع خطای 500 internal server error

ارور http error 500 یا خطای 500 internal server error به اشکال مختلفی در مرورگر نمایش داده می شود از متداول ترین پیغام های ارور 500 سایت میتوان به موارد زیر اشاره کرد:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request

دلیل بروز خطای 500 داخلی سرور

خطای 500 internal server error به دلایل متنوعی ممکت است رخ دهد اما اصولا با بررسی موارد زیر میتوانید در خصوص رفع آن اقدام کنید:

  • مشکل در فایل htaccess.
  • اشکال در دیتابیس سایت
  • محدودیت حافظه php
  • اشکال در هسته وردپرس
  • اختلال افزونه های سایت
  • دسترسی اسکریپت CGI و Perl
  • مشکل دسترسی فایل و پوشه های هاست
  • و…

در ادامه ی آموزش انواع عوامل بروز خطای Internal Server Error 500 را همراه با نحوه ی رفع آن ها توضیح خواهیم داد:

1- بررسی فایل ارور لاگ هاست

جزئیات کاملی از خطاهای سایت در فایل Error Logs همیشه ذخیره می شود که در زمان مشاهده ی خطای 500 می توانید با مراجعه به این فایل اطلاعاتی در مورد عامل ایجاد این خطا دریافت کنید. این فایل در قسمت File Manager در هاست شما وجود دارد که لیستی از خطاهای سایت را همراه با تاریخ و جزئیات ارائه می دهد.

چنانچه خطای داخلی سرور یا Internal Server Error 500 به دلیل Bad Permission, Writable by Group رخ داده باشد با بررسی فایل ارور لاگ داخل هاست می توانید سریعا سرنخ هایی برای حل این مشکل پیدا کنید. برای دسترسی به فایل ارور لاگ ابتدا حالت دیباگ وردپرس را فعال کنید.سپس به کمک آموزش ورود به سی پنل وارد هاست خود شوید در مسیر نصب وردپرس به دنبال فایلی به نام errorlog.txt باشید، آن را باز کنید تا سرنخی از دلیل بروز خطای 500 internal server error سایت بیابید. در ادامه متداول ترین هشدارها را بررسی میکنیم.

2- بررسی سطح دسترسی فایل ها و پوشه ها

در برخی مواقع خطای 500 به واسطه ی سطح دسترسی پوشه ها بیش از حد مجاز رخ می دهد. در فایل Error Logs می توانید این خطا را بدین صورت مشاهده کنید:

[Sun Jun 05 12:03:22 2024] [error] [client 66.249.72.82] SoftException in Application.cpp:601: Directory "/home/exampleuser/public_html" is writeable by group

در این مثال، سطح دسترسی پوشه غیر مجاز تعریف شده که برای رفع این مشکل باید سطح دسترسی پوشه را از 777 به 755 تغییر دهید. سطح دسترسی دایرکتوری ها و پوشه ها 755 می باشد، اسکریپت های اجرایی شامل پوشه ی cgi-bin نیز دارای سطح دسترسی 755 می باشند. تصاویر، فایل های چندرسانه ای و فایل های متنی مثل HTML نیز دارای سطح دسترسی 644 می باشند. حتما بررسی کنید که سطوح دسترسی مطابق با مجوزهای زیر باشد:

  • Files – 644: سطح دسترسی فایل ها 644 باشد.
  • CGI Scripts – 755: سطح دسترسی اسکریپت CGI روی 755 تنطیم شود.
  • Directories – 755: سطح دسترسی دایرکتوری یا پوشه ها روی 755 باشد.

شما می توانید سطح دسترسی ها را از طریق File manager واقع در دسته بندی Files در Cpanel یا سرویس گیرنده FTP و یا از طریق دستورات chmod در SSH/Bash ویرایش کنید. برای این منظور وارد هاست خود شوید، سپس در بخش File manager به مسیر نصب وردپرس مراجعه کنید و در نهایت پرمیشن فایل و دایرکتوری ها را بررسی کنید.

رفع خطای داخلی سرور در سایت

گر در فایل ارور لاگ هاست این خطا را مشاهده کردید بدون لحظه ای تامل سریعا سطوح دسترسی را بررسی و ویرایش کنید.

3- خرابی فایل htaccess.

رایج ترین دلیل بروز خطای 500 در وردپرس و ارور HTTP 500 Internal Server به دلیل مشکل در فایل htaccess. است، بنابراین وارد هاست خودتون بشید و سپس به File Manager هاست مراجعه کنید، بعد از این مرحله به مسیر public_html مراجعه کنید، در اینجا فایلی با نام htaccess. قرار داره که در کنار پوشه‌های wp-content، wp-admin و wp-includes قرار داره.

ممکن است کاربران در فایل .htaccess خطوطی را اضافه کنند که در اثر عدم دانش کافی و بی دقتی حاوی کلمات نادرست یا متضاد با تنظیمات سرور باشند، در این حالت خطای 500 رخ خواهد داد. احتمالا در چنین شرایطی در فابل ارور لاگ هشدار زیر ار میبینید:

Bad .htaccess, Invalid code, command, or syntax

یکی از اصلی ترین دلایل بروز خطای 500 Internal Server Error اعمال کد های اشتباه در فایل .htaccess هاست می باشد، بنابراین جهت رفع خطای 500 Internal Server Error ابتدا فایل .htaccess را داخل هاست در مسیر نصب وردپرس پیدا کنید.

این فایل ممکن است مخفی باشد پس در قسمت Settings یا تنظیمات سی پنل که آیکون آن به شکل چرخ دنده در بالا سمت راست صفحه وجود دارد گزینه show hidden files را فعال کنید.

آموزش حل خطای 500 سایت

سپس این فایل را در هاست در محلی که وردپرس را نصب کرده اید، پیدا کرده اصولا فایلی با نام htaccess. در کنار پوشه‌های wp-content، wp-admin و wp-includes قرار دارد.

حالا بعد از اینکه فایل به شما نمایش داده شد روی آن راست کلیک کرده و نام فایل را به چیزی مثل htaccess_old. تغییر نام دهید و آدرس سایت خود را در مرورگر وارد کنید و صفحه را رفرش کنید تا ببینید مشکل برطرف شده یا خیر، اگر که برطرف شده بود حالا به پیشخوان وردپرس وارد شده و به مسیر تنظیمات> پیوندهای یکتا مراجعه کرده و یکبار روی دکمه ذخیره تغییرات کلیک کنید تا فایل htaccess. جدید مجددا ساخته شود.

بهترین روش برای رفع این مشکل ، تبدیل خطوط مشکل دار در فایل .htaccess به توضیحات یا Comment می باشد که کافی است در ابتدای خطوط کاراکتر # را درج کنید و فایل را ذخیره نمایید. برای مثال اگر محتوای فایل .htaccess شما به صورت زیر باشد:

DirectoryIndex default.html
AddType application/x-httpd-php5 php

برای اینکه خط دوم را کامنت کنید می بایست به این صورت عمل کنید و ابتدای آن خط # بگذارید.

DirectoryIndex default.html
#AddType application/x-httpd-php5 php

خطوطی که با php_flag شروع می شوند معمولا دچار خطا می شوند و می بایست آن ها را کامنت کنید.

علاوه بر موارد ذکر شده فوق، ارور 500 می تواند به دلیل وجود مشکلات زیر نیز باشد که ممکن است هشدار زیر را ببینید:

Other common .htaccess errors

مشکل FollowSymlinks

در این حالت خطایی مشابه ذیل خواهید داشت:

[Sun Jun 05 12:07:10 2024] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: Option FollowSymlinks not allowed here

این خطا به سادگی قابل رفع می باشد. کافی است در فایل مورد نظر که نام و مسیر آن در پیغام هشدار نوشته شده، دستور مجاز SymlinksIfOwnerMatches را به جای FollowSymlinks استفاده کنید یا خط مربوطه را حذف نمایید.

مشکل Syntax Not Closed

در این حالت در فایل ارور لاگ، خطایی مشابه ذیل خواهید داشت:

[Sun Jun 05 12:11:38 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: <IfModule>ExampleRule/Module> was not closed.

باز هم به سادگی می توانید این خطا را رفع کنید و یا آن را حذف نمایید. در این مورد دستور </IfModule> را به درستی در پیانا فایل قرار دهید تا چیزی شبیه به کد زیر داشته باشید:

<IfModule>
ExampleRule اینجا قطعه کدهای شما درج شده است
</IfModule>

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

خطاهایی که در فایل php.ini می تواند رخ دهد به صورت زیر می باشند:

Improperly configured php.ini

مشکل ForceType

زمانیکه از فایل ها با پسوند یا بدون پسوندی متفاوت از پسوندهای معمول استفاده می کنید می توانید از ForceType در فایل .htaccess استفاده کنید و نحوه استفاده از آن در سرور را تعیین کنید. (برای تمامی فایل های موجود در پوشه ی مربوطه و سرور های بدون phpsuexec).

برای مثال زمانیکه شما فایلی با نام item دارید ( مانند Nucleus برای استفاده از FancyURL) و می خواهید در سرور بعنوان فایل php تعریف شود، می توانید از کد زیر در فایل .htaccess استفاده کنید:

ForceType application/x-httpd-php

البته در سرور هایی که دارای phpsuexec می باشند با کد فوق خطای Internal Server Error دریافت خواهید ، که این مشکل به راحتی با استفاده از SetHandler بجای ForceType در فایل .htaccess رفع خواهد شد:

SetHandler application/x-httpd-php

مشکل php_value

در سرور های بدون phpsuexec می توان از php_value در فایل .htaccess برای تغییر تنظیمات php (در واقع بازنویسی تنظیمات از php.ini) استفاده نمود. در سرور های دارای phpsuexec استفاده از این دستور خطای Internal Server Error را ایجاد می کند. برای رفع این خطا شما می توانید از فایل php.ini که در همان پوشه ی ای که فایل .htaccess قرار دارد موجود است. در فایل php.ini می توانید تمامی تنظیمات مربوط به php را تغییر دهید. برای مثال اگر شما می خواهید short_open_tag را برابر با off قرار دهید، شما باید از short_open_tag? = off در فایل .htaccess استفاده کنید. با استفاده از فایل php.ini نتیجه به این صورت می شود:

[PHP]
short_open_tag = Off

4- افزایش میزان حافظه PHP سایت

اگر خطای HTTP 500 Internal Server را فقط در صفحه ورود به پیشخوان وردپرس مشاهده کردید باید میزان حافظه PHP هاست را افزایش دهید. برای این منظور وارد File Manager هاست شده و سپس به مسیر public_html/wp-admin مراجعه کنید فایل php.ini که در مسیر اصلی محل نصب وردپرس قرار گرفته را مشاهده نموده و بررسی کنید قطعه کد زیر در آن وجود دارد یا خیر، سپس آن را اصلاح کنید، اگر این فایل وجود نداشت یک فایل جدید با نام php.ini در این پوشه بسازید و کد زیر را داخل فایل قرار دهید.

memory_limit = 128M

حالا فایل را ذخیره کرده و مجددا به صفحه ورود به پیشخوان وردپرس مراجعه کنید تا ببینید مشکل شما برطرف شده است یا خیر، معمولا اگر خطا به خاطر میزان حافظه رخ داده باشد با این روش حل خواهد شد، در صورتی که مشکل برطرف نشد میتوانید کد زیر را در فایل wp-config.php قرار بدین که در مسیر public_html قرار دارد، چرا که ممکن است با کد قبلی حجم حافظه افزایش پیدا نکند.

وارد هاست سی پنل خود شوید. سپس به مسیر نصب وردپرس مراجعه کنید. در جایی که وردپرس نصب شده، در میان فایل ها wp-config.php را پیدا کنید. روی آن راست کلیک کرده و گزینه Edit را بزنید تا این فایل برای ویرایش باز شود. سپس در این فایل به دنبال قطعه کد زیر بگردید:

define('WP_MEMORY_LIMIT', '128M');

حالا مقدار 128M در مثال بالا را افزایش دهید. اگر این کد را پیدا نکردید میتوانید به ابتدای فایل wp-config.php اضافه کنید. سپس فایل را ذخیره و مجددا وضعیت خطای 500 سایت را چک کنید.

5-  غیرفعال کردن افزونه‌های وردپرس

اگر با روش‌های قبلی موفق به رفع خطای 500 سایت نشدید، ممکن است افزونه ها باعث بروز اختلال شده باشند. به همین خاطر بیشترین خطایی که در وردپرس رخ مدهد هنگام نصب افزونه در وردپرس و فعال کردن آن است. برای رفع خطای HTTP 500 Internal Server به شکل زیر عمل کنید:

  • از پیشخوان وردپرس به بخش افزونه ها و زیرمنوی افزونه های نصب شده مراجعه کنید
  • یکباره کلیه افزونه ها را غیرفعال کنید.
  • سپس افزونه ها را تک به تک فعال کنید. با فعال کردن هر افزونه سایت را رفرش کنید تا به افزونه ای که ایجاد مشکل کرده برسید.
ارور 500 چیست

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

غیرفعال کردن افزونه های وردپرس از طریق هاست

اگر به دلیل بروز خطای 500 سایت به پیشخوان وردپرس دسترسی ندارید میتوانید وارد هاست خود شده سپس به File Manager مراجعه کنید. در مسیر نصب وردپرس به دایرکتوری wp-content مراجعه کنید و سپس پوشه plugins را تغییر نام دهید تا کلیه افزونه های وردپرس غیرفعال شوند اگر اکنون به سایت مراجعه کنید و ببینید ارور 500 رفع شده است، قطعا یکی از افزونه ها باعث بروز اختلال بوده است بنابراین وارد پیشخوان شده و به روش قبلی افزونه ها را یکی پس از دیگری فعال کرده و پس از هربار فعالسازی سایت را بررسی کنید تا افزونه مشکل ساز را بیابید.

6- آپلود مجدد هسته وردپرس

در نهایت اگر با این روش ها هم مشکل شما برطرف نشد ممکن است اختلالی در هسته وردپرس رخ داده باشد که شما از آن بی اطلاع باشید، آخرین راهکار عملی ان است که جدیدترین نسخه وردپرس را دانلود کرده و جایگزین نسخه فعلی کنید به این شکل میتوانید هسته ورپرس را آپدیت و جایگزین کنید. برای این کار به مخزن وردپرس مراجعه کرده، فایل نصبی وردپرس را دانلود کنید آن را در یک پوشه در هاستتان آپلود و اکسترکت کنید سپس تمامی فایل ها و پوشه ها (به جز wp-admin و wp-content و فایل wp-config.php) را جایگزین کنید. به طور واضح تر:

  1. بعد از دانلود فایل ZIP وردپرس و اکسترکت کردن آن، پوشه wp-content و فایل wp-config.php را از فایل زیپ حذف کنید.
  2. سپس پوشه ها و فایل های باقی مانده را از پوشه wordpress خارج کنید و به مسیر اصلی اصلی برگردانید.
  3. حالا یک بار دیگر خروجی فشرده ای از این فایل ها با فرمت zip تهیه کرده و با آپلود کردن، آنها را با فایل ها و پوشه های دیگر در هاست خود جایگزین کنید.

در صورتی که مشکل ارور 500 در وردپرس از هسته وردپرس بوده برطرف خواهد شد.

7- تغییر نسخه php هاست

در برخی موارد با تغییر نسخه php هاست مشکل شما سریعا رفع می شود در چنین حالتی می توانید از میزیان هاست خود بخواهید که نسخه php هاست شما را بررسی و سپس آن را تغییر دهند یا اینکه به هاست خود مراجعه کنید در بخش select php version یا multi php manager ابتدا نام دامنه خود را انتخاب کنید سپس از کشوی  PHP Version آخرین ورژن سازگار با قالب سایت خود را انتخاب کنید.

500 internal server error چیست

سوالات متداول آموزش رفع خطای 500 Internal Server Error در هاست

  1. آیا خطای سرور داخلی 500 دائمی است؟

    خطای 500 Internal Server Error در هاست می تواند کل وب سایت شما یا فقط بخش هایی از آن را تحت تأثیر قرار بدهد. این خطا می تواند دائمی باشد، به صورت پراکنده ظاهر شود یا به یک صفحه خالی منجر شود.

  2. چرا خطای 500 در سایت نمایش داده می شود؟

    نمایش خطای 500 دلایل متعددی دارد اما از شایع ترین دلایل بروز خطای 500 سایت میتوان به

  3. خطای Internal Server 500 چیست؟

    وقتی که کاربری از سایت شما بازدید میکند مرورگر درخواستی به سروری ارسال میکند اگر از سمت سرور به مرورگر کد وضعیت 200 نمایش داده شود سایت کاملا صحیح و بدون مشکل نمایش داده میشود در غیر این صورت اگر از سمت سرور به مرورگر کد وضعیت 500 ارسال شود نشان دهنده ی خطای از سمت سرور می باشد.

جمع بندی

ارور 500 سایت که تحت عناوین http error 500 یا خطای 500 internal server error هم شناخته می شود را حتما دیده اید. در این راهنما گفتیم که http error 500 چیست و چرا ارور http error 500 در وردپرس رخ میدهد. رفع خطای 500 internal server error بسیار ساده است و تنها کافیست فایل ارور لاگ هاست را بررسی کنید 500 server error انواع مختلفی دارد اما اغلب با بررسی افزونه ها و هسته وردپرس یا سطوح دسترسی و چک کردن فایل .htaccess قابل حل است.

این مطلب را می پسندید

5/5 - (1 رای)

اشتراک گذاری مطلب
نویسند محتوا:
محتوای تیمی کار شده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.