تعاریف شبکه, وب سایت

خطای 500 Internal Server Error چیست؟ چگونه رفع می شود؟

خطای 500 Internal Server Error چیست؟ چگونه رفع می شود؟

خطای 500 Internal Server Error زمانی نمایش داده می شود که مشکلات جدی از جمله سطح دسترسی و درخواست های نامعتبر وجود داشته باشد، در این مقاله داتیس نتورک شما را با ارور 500 آشنا می کنیم، همراه ما باشید.

خطای 500 Internal Server Error چیست؟ چگونه رفع می شود؟

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

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

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

نمونه خطای 500 :

Internal Server Error

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

Please contact the server administrator, webmaster@example.com 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

عوامل بروز خطای Internal Server Error 500

Bad Permission, Writable by Group

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

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

تصاویر، فایل های چندرسانه ای و فایل های متنی مثل HTML نیز دارای سطح دسترسی 644 می باشند.

  • Files – 644
  • CGI Scripts – 755
  • Directories – 755

شما می توانید سطح دسترسی ها را از طریق File manager واقع در دسته بندی Files در Cpanel یا سرویس گیرنده ی FTP و یا از طریق دستورات chmod در SSH/Bash ویرایش کنید.

Bad .htaccess, Invalid code, command, or syntax

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

در این حالت خطای 500 رخ خواهد داد.

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

برای مثال اگر محتوای فایل .htaccess شما به صورت زیر باشد:

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

برای اینکه خط دوم را کامنت کنید می بایست به این صورت عمل کنید:

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

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

Other common .htaccess errors

نحوه رفع ارور 500 در سایت

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

مشکل 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 بروز می دهند ولی به صورت کلی پیغام های خطا به اندازه ی کافی در تشخیص خطا شما را راهنمایی می کنند و می توانید با دقت در خطاها به راحتی آن ها را رفع نمایید.

Improperly configured php.ini

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

مشکل FollowSymlinks :

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

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

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

مشکل 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

مشکل 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

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

منبع:

  1. lifewire

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

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