به صورت عمومی ارور 500 مربوط به سرور و هاست می باشد که در ادامه علل مختلف بروز این ارور و نحوه رفع آن را بررسی می کنیم.
شناخت ارور 500
- 500 Error
- HTTP Error 500
- 500. That’s an error
- Internal Server Error
- HTTP 500 Internal Error
- 500 Internal Server Error
- HTTP 500 – Internal Server Error
این پیغام که عموما با فرم های بالا نمایش داده می شود یکی از رایج ترین خطاهای موجود است.
شاید بخواهید بدانید علت اینکه ارور 500 با عدد نمایش داده می شود چیست؟
دلیل: خطا برای سرور قابل تشخیص نیست، بنابراین با این نام نمایش داده می شود و نشان دهنده بروز خطا در سرور یا هاست است. خطای 500 باعث از دسترس خارج شدن سایت می شود و موتورهای جستجو نیز این خطا را تشخیص خواهند داد، بنابراین برای حفظ سئو سایت و جلوگیری از تاثیر منفی این خطا بر روی امتیازی که از موتورهای جستجو دارید، سریعا باید نسبت به برطرف کردن این خطا اقدام کنید.
نکته: زمانی که با خطاهای 500 در وردپرس مواجه میشوید به عنوان صفحه مرورگر دقت کنید. گاها این خطا در بعضی از مرورگرها پیغام زیر نمایش داده میشود :
The website cannot display the page
توجه داشته باشید که زمان بروز خطای 405 نیز همین خطا نمایش داده میشود.
علل بروز خطای 500 و نحوه رفع آن
۱) کش مرورگر
علت:
اولین و ابتدایی ترین بررسی لازم مربوط به کش مرورگر می باشد، ممکن است در گذشته سایت شما با ارور 500 مواجه شده و این مورد در حافظه مرورگر به صورت کش موجود باشد. در این صورت شما زمانی که سایت بدون مشکل در دسترس باشد هم با ارور 500 مواجه می شوید.
نحوه رفع:
✅ کش مرورگر و کوکی ها را پاک کنید.
✅ صفحه مرورگر را رفرش کنید.
۲) افزایش یا کاهش سطح دسترسی به پوشه ها برای برخی کاربران
علت:
به این معناست که دسترسی به فایلها و پوشهها برای گروهی از کاربران خاص در دسترس است و هر یک از این گروهها نیز قابلیت خواندن و نوشتن (مشاهده و ویرایش) روی دایرکتوری یا فایل مورد نظر را دارند. و اگر حالتی رخ دهد که برای گروهی از این کاربران دسترسی به فایل یا پوشه مورد نظر فراهم نباشد خطای 500 رخ خواهد داد.
نحوه رفع:
- وارد سی پنل هاست خود شوید از منوی موجود بخش File ابزار File Manager را انتخاب کنید. در مرحله بعد به مسیر Public_html رفته و در جایی که وردپرس را نصب کردهاید کلیه پوشهها و فایلهای اسکریپت وردپرس که معمولا با wp آغاز می شوند را بررسی کنید. در این بررسی شما باید ستون Permission را بررسی کرده و اعدادی که برای هر فایل و پوشه قرار دارد را در صورت مغایرت داشتن اصلاح کنید.
مقادیر مجاز: - سطح دسترسی برای پوشهها روی 755 و برای فایلها روی 644
- اسکریپت های اجرایی شامل پوشه cgi-bin نیز دارای سطح دسترسی 755 باشند.
- تصاویر، فایل های چندرسانه ای و فایل های متنی مثل HTML دارای سطح دسترسی 644 باشند.
- فایل های داخل هر یک از این پوشه ها را نیز بررسی کنید که روی حالت 644 قرار داشته باشند.
- دسترسی فایل ”wp-Config.php” نیز بهتر است روی 440 باشد تا سایر کاربران نتوانند آن را مشاهده کنند.
” برای تغییر سطح دسترسی روی فایل یا پوشه مورد نظر کلیلک راست کنید و گزینه Change Permissions را انتخاب سپس در پنجره باز شده مقادیر ذکر شده را تنظیم کرده و روی دکمه Save کلیک کنید. “
۳) وجود خطا در فایل htaccess
علت:
بروز خطای 500 بر اثر این فایل ممکن است به دلایل مختلفی از جمله وجود کلمات یا کاراکتر هایی که برای سرور قابل شناسایی نیست اتفاق بیفتد که در ادامه آن ها را بررسی می کنیم..
علت و روش اول:
وارد سی پنل هاست خود شوید، از منوی File روی ابزار Filemanager کلیک کنید.
وارد Public_html شوید و به دنبال فایلی با نام htaccess بگردید، در صورتی که این فایل را مشاهده نکردید احتمالا به حالت مخفی وجود دارد علت این امر این است که فایل هایی که نامشان با (.) آغاز می شود اکثر مواقع به صورت مخفی در هاست ظاهر می شوند، برای مشاهده فایل در این حالت روی گزینه Settings که در بالای صفحه سمت راست قرار دارد کلیک کنید سپس تیک گزینه Show Hidden Files (dotfiles) ✅ را فعال کنید و روی دکمه Save کلیک کنید.
پس از آنکه فایل htaccess نمایان شد، روی آن کلیک راست کرده و گزینه Rename را انتخاب کنید نام این فایل را به htaccess1. تغییر دهید. بعد از تغییر نام، صفحهای که با خطای 500 در آن مواجه شدید را باز کرده و رفرش کنید. اگر مشکل برطرف شده بود وارد تنظیمات پیوندهای یکتا در پیشخوان وردپرس شده و روی دکمه ذخیره تغییرات کلیک کنید تا فایل htaccess. جدید ساخته شود.
علت و روش دوم:
در صورتی که بر اثر عدم دانش کافی و یا بروز اشتباه، کدهای غلط در htaccess قرار داده شده باشند راه حل تبدیل خطوط مشکل دار در فایل 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
علت و روش سوم:
درصورت وجود مشکل 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» استفاده کنید یا خط مربوطه را حذف نمایید.
علت و روش چهارم:
در صورت وجود مشکل 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>
۴) بررسی میزان حافظه PHP هاست
علت:
در صورتی که در صفحه اول وردپرس با خطای HTTP 500 Internal Server مواجه شدید احتمالا این مشکل مربوط به میزان حافظهای است که برای php در نظر گرفته شده است.
نحوه رفع:
وارد سی پنل شوید، از منوی File ابزار File manager را باز کنید سپس روی Public_html کلیک کنید سپس وارد wp-Admin شوید حالا یک فایل جدید با نام PHP.ini در این پوشه بسازید و کد زیر را داخل فایل قرار دهید.
memory=64MB
در صورتی که به روش بالا موفق به افزایش حافظه PHP هاست نشدید از روش های زیر استفاده نمایید:
- کد زیر را داخل فایل wp-Config.php که در مسیر نصب وردپرس است قرار دهید.
define(‘WP_MEMORY_LIMIT’, ’64M’);
- کد زیر را در انتهای فایل htaccess. قرار دهید.
php_value memory_limit 128M
- در صورتی که با استفاده از روش های بالا هم موفق به افزایش حافظه PHP وردپرس نشدید با میزبانی هاست خود تماس گرفته و درخواست کنید که این کار از سمت میزبانی هاست برای شما انجام گیرد.
۵) بررسی افزونه های وردپرس
علت:
ممکن است افزونه هایی که در وردپرس نصب و فعال کرده اید و یا آپدیت نموده اید منجر به بروز این خطا شده باشد.
نحوه رفع:
در صورتی که اخیرا افزونه خاصی را فعال یا آپدیت نموده اید ابتدا این افزونه را غیرفعال کنید.درغیر اینصورت کلیه افزونه های وردپرس را غیرفعال کنید و تک تک شروع به فعالسازی آنها کنید پس از فعال کردن هر افزونه سایت را چک کنید تا بتوانید به این ترتیب افزونه مخرب را بیابید و متوجه شوید ارور 500 با فعال کردن کدام افزونه رخ خواهد داد. پس از شناسایی افزونه مورد نظر را لغو نمایید و افزونه مطمئنی بیابید و جایگزین آن کنید.
در صورتی که به پیشخوان وردپرس دسترسی ندارید وارد پوشه wp-Content هاست خود شده و نام پوشه Plugins را به نام دیگری مانند Plugins1 تغییر دهید. بعد از تغییر نام کلیه افزونهها غیرفعال میشوند.
در این مرحله سایت را بررسی کنید، اگر مشکل برطرف شده باشد خطای 500 وردپرس از سمت افزونهها است.
حال مجدد نام پوشه Plugins را به همان حالت اصلی برگردانید و برای شناسایی افزونه مخرب، یک بار صفحهای که با خطای 500 وردپرس مواجه شدید را بررسی کنید.
بعد از اینکه با فعال کردن یک افزونه خطا رخ داد، افزونه مخرب شناسایی میشود که میتوانید آن را غیرفعال کرده و مشکل افزونه را برطرف کنید یا اینکه از افزونه جایگزین استفاده کنید.
۶) بررسی فایل PHP.ini
خطاهایی که در فایل php.ini می تواند رخ دهد به صورت زیر می باشند:
-
مشکل ForceType
زمانیکه از فایل هایی با پسوند یا بدون پسوند متفاوت از پسوندهای معمول استفاده می کنید می توانید از ForceType در فایل .htaccess استفاده کنید و نحوه استفاده از آن در سرور را تعیین کنید.
برای مثال، زمانیکه شما فایلی با نام 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 را تغییر دهید.
برای مثال اگر شما می خواهید short_open_tag را برابر با off قرار دهید، شما باید از short_open_tag? = off در فایل .htaccess استفاده کنید. با استفاده از فایل php.ini نتیجه به این صورت می شود:
[PHP]
short_open_tag = Off
۷) بررسی تنظیمات پایگاه داده (DataBase)
مشخصات دیتابیس ایجاد شده در هاست حتما باید با مشخصات درج شده در فایل wp-Config.php یکسان باشند.
به عنوان مثال اگر سایت با CMS وردپرس طراحی شده است نام دیتابیس، نام یوزر دیتابیس و پسورد باید با نام دیتابیس، نام یوزر دیتابیس و پسورد یوزر ایجاد شده در هاست یکسان باشد.
توجه! این آموزش مربوط به سرویس هاستینگ لینوکس است.
ارور یا خطای کد 500 معمولا به دلیل دستورات غلط یا ناقص در فایل htaccess. است. دیگر مواردی که معمولا اتفاق میافتد، یا دستورات اشتباه تایپی داشته، یا به درستی به ابتدای خط بعدی اضافه نشده اند (استفاده از ویرایشگرهای ویندوزی مثل نت پد که با لینوکس سازگار نیستند) و یا نسخه وب سرور پیکربندی شده از یک یا چند دستور موجود در فایل پشتیبانی نمیکند.
روش حل ارور یا خطای 500
ابتدا فایل htaccess را تغییر نام دهید؛ اگر خطا برطرف شد، فایل htaccess را با ویرایشگر مناسب مثل ++NotePad ویرایش کنید و در جای خود مجددا ذخیره کنید.
برای ویرایش و یافتن خط دستور مشکل ساز، خط به خط دستورات را کامنت کنید (با افزودن # به اول خط دستور) و فایل را ذخیره کنید تا به خط دستور مشکل ساز برسید.
امیدواریم این مطلب مورد توجه شما قرار گرفته باشد.
تلاش نت
02154109000