
بهطور معمول خطاهایی که شما با آن مواجه میشوید انواع زیادی دارند و میتوانند به هر دلیلی در سیستمهای مختلفی رخ بدهند. از خطاهای رایج وردپرس میتوان به خطای داخلی سرور در وردپرس یا خطای 500 در وردپرس اشاره کرد که این اصطلاح را خطای 500 Internal Server Error هم مینامیم. شما تابهحال حتما با این خطا مواجه شدهاید؛ برای رفع این خطا در وردپرس راههایی وجود دارد که شما باید همه این راهها را برای رفع خطای 500 در وردپرس طی کنید تا درنتیجه بتوانید این مشکل را حل کنید.
خطای 500 در وردپرس زمانی رخ میدهد که وب سرور سایت شما نتواند به پردازش اطلاعات و پروسه بارگذاری در سایت شما بپردازد و در حین کار دچار مشکل شود. لازم است بدانید که این خطا میتواند سایت شما را با کاهش رشد سئو و همچنین کاهش فروش محصولات یا خدمات سایتتان روبهرو کند. در این مقاله میخواهیم این خطا را رفع کنیم؛ پس با همیار وردپرس همراه باشید.
خطای 500 در وردپرس چیست ؟
خطای 500 در وردپرس درواقع زمانی اتفاق میافتد که پروتکل Http یافت نشود؛ یعنی سرور به درخواست Http پاسخ دهد ولی نتواند آن را بازیابی کند. خطایinternal server error 500 فقط مختص وردپرس نیست و همانطور که از نامش پیدا است، به دلیل عدم ناسازگاری در کدهای سایت رخ میدهد.
بنابراین شما باید قبل از هر کاری بررسی کنید و ببینید که دلیل بروز خطا چیست. اگر شما هنگام تغییر در فایلهای وردپرس و ویرایش قالب یا افزونه وردپرس و یا به هر دلیل دیگری با چنین خطایی مواجه شدید، باید دقیقا به شرح و چگونگی رفع آن خطا بپردازید؛ در غیر این صورت اگر بعد از چند روز به سایت مراجعه کردید و این خطا را مشاهده کردید و دلیلش را نمیدانید، باید تمامی راههایی که در این مقاله که درواقع بخشی از آموزش وردپرس است، ذکر میشود را برای رفع مشکل خطای 500 در وردپرس طی کنید.
توجه داشته باشید که در برخی از موارد این خطا فقط در صفحه ورود به پیشخوان وردپرس ظاهر میشود و درواقع شما با خطای HTTP 500 Internal Server در صفحه اصلی سایت مواجه نخواهید شد.
این خطا از خطاهای رایج وردپرس است که رفع آن به عیبیابی زیادی نیاز دارد و میتواند زمان زیادی از شما بگیرد؛ ما در این مقاله سعی خواهیم کرد تا با ارائه چند راه حل برای این مشکل به شما کمک کنیم تا هرچه زودتر این خطا را رفع کنید.
نحوه رفع خطای 500 در وردپرس
در این بخش به بررسی 6 مرحله برای رفع خطای 500 در وردپرس میپردازیم که در اکثر مواقع، شما میتوانید خطای سرور داخلی 500 را با این 6 مرحله حل کنید:
1- اشکال زدایی را روشن کنید.
هر موقعی که وردپرس برای شما صفحه خطای سرور را نشان میدهد، پیشنهاد ما این است که اشکال زدایی خود را روشن کنید. هرچند امکان دارد این روش مشکل را برطرف نکند ولی نگران نباشید؛ زیرا ما در مرحله های بعد هم به رفع این خطا خواهیم پرداخت.
شما میتوانید با ویرایش فایل wp-config.php سایت خود، اشکال زدایی را فعال کنید و اگر به این فایل دسترسی پیدا کردید WP_DEBUG را در آن جستجو کنید، تا این گزینه را پیدا کرده و بتوانید آن را روی “درست” تنظیم کنید. اگر این گزینه را پیدا نکردید، باید خودتان آن را ایجاد کنید. در هر صورتی شما باید حتما خطی به شکل زیر داشته باشید:
define( “WP_DEBUG”, true );
بعد از اینکه این گزینه را روی حالت درست یا صحیح تنظیم کردید، سایت خود را مجددا بارگیری کنید تا ببینید که چیزی تغییر کرده است یا خیر!
خطای سرور امکان دارد در این صورت ناپدید شود و حتی ممکن است با خطای دیگری هم جایگزین شود و بگوید که مشکل کجاست. اگر اینطور بود جایی که خطا در آن قرار دارد را مشاهده کنید. اگر در پوشه پلاگین است هم آن افزونه را غیرفعال کنید، خطا باید برطرف شود.
اگر روشن کردن اشکال زدایی نتیجه خوبی را در پی نداشت هم ناامید نشوید، زیرا ایده خوبی است و بهتر است آن را تا زمانی که مشکل حل نشده است روشن بگذارید؛ البته فراموش نکنید که وقتی همه چیز درست شد و تعمیر تمام شد، اشکال زدایی را خاموش کنید!
2- همه افزونه ها را غیرفعال کرده و تم ها را تغییر دهید.
اگر شما به داشبورد خود دسترسی دارید، باید همه افزونههای خود را غیرفعال کنید و سپس ببینید که مشکل از چیست. باید بدانید که اگر سایت شما بدون خطای سرور بارگیری میشود، مشکل در یکی از افزونههای شما است و شما میتوانید آنها را یکی یکی روشن کنید تا بفهمید که کدام یک از آنها باعث این مشکلات شده است.
همچنین شما میتوانید موضوع خود را به یک قالب پیش فرض وردپرس مانند Twenty Fifteen یا Twenty Sixteen تغییر دهید. اگر سایت شما بدون خطای سرور داخلی بارگیری شد، معلوم میشود که مشکل در موضوع شما بوده است. تعداد زیادی از خطاها توسط افزونهها ایجاد می شوند، پس این گزینه، بهترین گزینه برای رفع خطای شما خواهد بود.
3- فایل htaccess خود را بررسی کنید.
اگر فایل htacces وجود داشته باشد، شامل قوانینی است که به سرور میگوید در شرایط خاصی چه کاری را انجام دهد؛ درواقع بهطور معمول برای بازنویسی URL ها یا جلوگیری از دسترسی به سایت شما برای اهداف مخربی مورد استفاده قرار میگیرد.
از ویرایشگر FTP خود هم استفاده کنید و بررسی کنید که فایل htaccess را در پوشه وردپرس خود دارید یا خیر؟ امکان دارد لازم باشد که قبل از انجام دادن این کار اطمینان پیدا کنید ویرایشگر FTP شما فایلهای مخفی را فهرست میکند.
اگر یک فایل htaccess وجود دارد، شما باید یک نسخه پشتیبان تهیه کرده و سپس کل فایل را با محتویاتش حذف کنید. البته امکان دارد بعضی از قوانین مهم را هم حذف کند. اگر بعد این مراحل خطا برطرف شد سعی کنید فایل را بازیابی کرده و سپس بلوکهای آن را نیز حذف کنید.
حواستان باشد که اگر سایت شروع به کار کرد، شما میدانید که مشکل در کدام بلوک است و این چنین میتوانید آن را به یک خط محدود کنید و میتوانید آن خط را حذف کنید یا از میزبان خود کمک بخواهید.
4- حافظه خود را افزایش دهید.
باید بدانید که افزایش حافظه امکان دارد برای حل این مشکل کمک کند. برای انجام این کار، باید فایل wp-config.php را در فهرست اصلی وردپرس باز کرده و WP_MEMORY_LIMIT را جستجو کنید. اگر این فایل وجود داشت، مقدار آن را به M”64″ تغییر دهید و اگر هم این فایل وجود نداشت، خط زیر را در فایل قرار دهید:
define(‘WP_MEMORY_LIMIT’, ’64M’);
اگر این کد کار کرد، لازم است بدانید که شما فقط مشکل را به صورت موقت حل کردهاید و این احتمال وجود دارد که شما یک کد معیوب را در جایی دارید که مانع برطرف کردن مشکل میشود.
5- از هاست یا میزبان خود بپرسید.
همان طور که گفتیم خطای 500 در وردپرس میتواند چند دلیل داشته باشد ولی در این مرحله بهتر است که از میزبان خود هم بپرسید. این مشکل میتواند یک مشکل جدی باشد؛ پس باید آن را به یک شکلی رفع کنید.
ممکن است شما قصد داشته باشید به هاست بهتری بروید که دارای سرورهایی باشد و برای اجرای سایتهای وردپرس خوب و بهینهتر هم باشند؛ هزینه هاست زیاد بالا نیست و شما میتوانید هاست خود را عوض کنید.
6- وردپرس را دوباره نصب کنید.
وردپرس را دوباره نصب کنید؛ البته نیازی نیست که سایت خود را پاک کنید، فقط کافی است یک وردپرس جدید دانلود کرده و دو پوشه wp-content و wp-config.php را از آن حذف کنید. سپس پوشه را فشرده کرده و بارگذاری کنید. ممکن است این روش برای حل مشکل شما کمک کند؛ برای انجام این کار، لازم است دستورالعملهای بهروزرسانی دستی وردپرس را در Codex WordPress یا راهنمای خود Themeisle برای نصب وردپرس دنبال کنید.
کلام آخر
خطاهای سرور داخلی در وردپرس به طور معمول ناشی از خطاهای واقعی سرور نیستند و در اکثر مواقع میتوانید با استفاده از روشهایی که در بالا ذکر شد، به رفع خطای 500 در وردپرس بپردازید ولی اگر شک و تردید دارید از میزبان خود بپرسید، چراکه آنها حتما را حلهای خوبی را برای پیدا کردن و رفع مشکلات شما دارند. امیدواریم که شما با این 6 روشی که گفته شد توانسته باشید مشکل خود را حل کنید و این مقاله برای شما موثر واقع شده باشد. اگر سوالی هم داشتید میتوانید در بخش نظرات آن را با ما به اشتراک بگذارید.
منبع: https://themeisle.com/blog/wordpress-internal-server-error-fix/
فائزه کاظمی 3 سال عضو همیار وردپرس
سلام من در تنظیمات وردپرس نام دامنه و نام سایت رو یکی گذاشتم اما با ارور 500 مواجه شدم لطفا راهنمایی کنید
امیر قورچیان 4 سال عضو همیار وردپرس
درود و روز بخیر
من یک مشکل عجیب دارو و اونم اینه که همه صفحات به غیر از صفحه اصلی سایت رو میتونم ادیت کنم ولی صفحه اصلی ارور سرور 500 میده (با المنتور) و در حالت عادی ارور :
Fatal error: Allowed memory size of 293601280 bytes exhausted (tried to allocate 794624 bytes) و این ارور روی فایل wp-db.php هستش
ممنون میشم بهم کمک کنید
سید سجاد غلام پور 7 سال عضو همیار وردپرس
سلام
این مورد رو با پشتیبان هاستتون صحبت کنید، احتمالا مشکل از سمت سرور هست.
رامین رونیا 6 سال عضو همیار وردپرس
با سلام
یه مشکلی توی سایت بوجود اومده داخل سایت که میشم هر جایی کلیک میکنم یه صفحه سیاه میاد فقط با ریفرش برطرف میشه و دوباره میاد. این مشکل بعد از نصب افزونه ultimate member بوجود اومد ولی با اینکه حذفش کردم همچنان همین مشکل هست .
سید سجاد غلام پور 7 سال عضو همیار وردپرس
سلام
با یک مرورگر دیگه یا incognito تست کنید. اگر از افزونه های کش استفاده میکنید، کش رو خالی کنید.
رامین رونیا 6 سال عضو همیار وردپرس
با سلام ممنون از پاسختان . کش ها رو حذف کردم و با مرورگرهای دیگه و حتی سیستم های دیگه امتحان کردم و موبایل .
همین مشکل هست . افزونه هایی که شک داشتم رو غیر فعال کردم و تست کردم همچنان مشکل هست. میشه ادرس سایت رو مشاهده کنید تا متوجه منظورم بشید. bronze.ir
سید سجاد غلام پور 7 سال عضو همیار وردپرس
سلام
سایتتون رو دیدم! چنین مشکلی مشاهده نکردم
سید سجاد غلام پور 7 سال عضو همیار وردپرس
صفحات بعد رفتم دیدم. کد زیر رو توبخش سفارشی سازی Css اضافی قرار بدید.
html.swipebox-html #swipebox-overlay {
direction: ltr;
display: none;
}
رامین رونیا 6 سال عضو همیار وردپرس
سلام
ممنونم از راهنمایی و کمکت . الان این کد رو اضافه کردم مشکل سیاه شدن صفحه برطرف شد ولی حالا که کلیک میکنم یه صفحه برم اونجا قفل میشه صفحه . میشه الان مشاهده کنید؟
قبلا از راهنمائیتان ممنونم
سید سجاد غلام پور 7 سال عضو همیار وردپرس
سلام مجدد
این مشکل از قالب شماست. به پشتیبان بگید که رفع کنه براتون.
sajadsourisoftware 7 سال عضو همیار وردپرس
محتویات htaccess زیر بهترین محتواست:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# BEGIN Expire headers
ExpiresActive On
ExpiresDefault “access plus 1 month”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/pdf “access plus 6 seconds”
ExpiresByType application/x-shockwave-flash “access plus 1 month”
ExpiresByType text/css “access plus 1 month”
ExpiresByType text/javascript “access plus 1 year”
ExpiresByType application/javascript “access plus 1 year”
ExpiresByType application/x-javascript “access plus 1 year”
ExpiresByType text/html “access plus 600 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”
ExpiresByType font/ttf “access plus 1 year”
ExpiresByType font/woff “access plus 1 year”
# END Expire headers
# BEGIN Cache-Control Headers
Header set Cache-Control “max-age=2592000, public”
Header set Cache-Control “max-age=2592000, public”
Header set Cache-Control “max-age=2592000, private”
Header set Cache-Control “max-age=600, private, must-revalidate”
# END Cache-Control Headers
# BEGIN Turn ETags Off
Header unset ETag
FileETag None
# END Turn ETags Off
# BEGIN Remove Last-Modified Header
Header unset Last-Modified
# END Remove Last-Modified Header
# END WordPress
امیر نبی 8 سال عضو همیار وردپرس
با عرض سلام و وقت بخیر.
شما در خصوص warning زیر اطلاعی دارید؟
PHP Warning: next() expects parameter 1 to be array, null given in /home/……/public_html/wp-includes/class-wp-hook.php on line 291
PHP Warning: current() expects parameter 1 to be array, null given in /home/……../public_html/wp-includes/class-wp-hook.php on line 275
PHP Warning: Invalid argument supplied for foreach() in /home/………/public_html/wp-includes/class-wp-hook.php on line 277
مشکل به این صورت است که سه کد مذکور به صورت سیکل در فایل error-log تکرار میگیردد و در مدت کوتاهی کل فضای هاست( به عنوان مثال 10 گیگ در 15 دقیقه) پر میشود و مدیریت مسدود میگیردد. این خطا برای بسیاری از سایت های وردپرسی ایجاد شده است و در دو لینک زیر مورد بررسی قرار گرفته است و بیشتر با عنوان لاگ حجیم وردپرس شناخته شده است.
wordpress.org/support/topic/class-wp-hook-php-generating-errors-crashing-server/
core.trac.wordpress.org/ticket/39338
هرچند که می توان این warning را با غیر فعال کردن error log برطرف نمود هدف اصلی بررسی ریشه ای این موضوع و علت یابی آن می باشد. از جمله راهکارهای اعلام شده استفاده از پلاگین health-check می باشد که کارساز نیست. در دو لینک مذکور کلیه بحث ها و تبادل نظرها ناتمام باقی مانده و گویا موضوع مبهم است.
شما در این خصوص اطلاعاتی دارید؟
mohammadhp89 6 سال عضو همیار وردپرس
سلام وقت بخیر
میخواستم در خصوص رفع ارور زیر منو راهنمایی کنین:
error_log از نوع text/x-generic
حمیدرضا محمودزاده اردکانی 7 سال عضو همیار وردپرس
با سلام و احترام، ممنون بابت مقاله عالیتون، لطفاً یک مقاله هم در رابطه با ارور 503 هم بگذارید 503 Service Unavailable
با تشکر
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
چشم حتما
iman saman 7 سال عضو همیار وردپرس
دوست عزیز من خیلی سرچ کردم ولی افزونه ای پیدا نکردم ایا افزونه ای هست که مطالب دلخواه من تو دسته بندی های مختلف رو تو سایدبار نمایش بده؟ مثالا میخام پست های 1 و 5 و 9 من که تو دسته بندی های مختلفی هستن رو به انتخاب من تو سایدبار نمایش بده.
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
هر کدوم از سه افزونه زیر رو میتونید تست کنید و استفاده کنید:
https://wordpress.org/plugins/display-categories-widget/
https://wordpress.org/plugins/custom-sidebars/
https://wordpress.org/plugins/posts-in-sidebar/
biog2019 6 سال عضو همیار وردپرس
سلام، من یه قالب وردپرس خریداری کردم. بعد از اکسترکت کردن فایل full-pack با error log زیر مواجه می شوم. ببخشید خیلی طولانیه، خواستم کاملشو بنویسم
[04-Jul-2018 08:08:03 UTC] PHP Warning: mysqli_query(): (HY000/23): Out of resources when opening file ‘/dev/shm/tmp/#sql_3933e8_0.MAI’ (Errcode: 24 "Too many open files") in /home/demoabzarwp/public_html/publisher/wp-includes/wp-db.php on line 1924
[04-Jul-2018 08:08:03 UTC] خطای Out of resources when opening file ‘/dev/shm/tmp/#sql_3933e8_0.MAI’ (Errcode: 24 “Too many open files”) در پایگاهداده وردپرس برای دستور SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy IN (‘category’) AND t.term_id IN ( 6,4,8,10,17,11 ) AND tt.count > 0 ORDER BY t.name ASC ساخته شده توسط require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), include(‘/themes/publisher/page.php’), get_header, locate_template, load_template, require_once(‘/themes/publisher/header.php’), publisher_get_view, include(‘/themes/publisher/views/general/header/header-style-2.php’), publisher_get_view, include(‘/themes/publisher/views/general/menu/main.php’), wp_nav_menu, wp_get_nav_menu_items, get_terms, WP_Term_Query->query, WP_Term_Query->get_terms
[08-Jul-2018 08:00:18 UTC] WordPress database error Out of resources when opening file ‘/dev/shm/tmp/#sql_172a6c_0.MAD’ (Errcode: 24 “Too many open files”) for query SHOW FULL COLUMNS FROM `wp_options` made by require(‘wp-blog-header.php’), require_once(‘wp-load.php’), require_once(‘wp-config.php’), require_once(‘wp-settings.php’), do_action(‘plugins_loaded’), WP_Hook->do_action, WP_Hook->apply_filters, RevSliderFront::createDBTables, update_option
[01-Nov-2018 00:46:01 UTC] PHP Warning: Error while sending QUERY packet. PID=3980174 in /home/demoabzarwp/public_html/publisher/wp-includes/wp-db.php on line 1924
سمانه
سلام بهاره جان چک کن این کامنت ها رو
ما از بس تو ایران از بلانسبت ناشی ها قالب خریدیم خسته شدیم.
من با تغییر فایل htaccess تونستم دو تا ساب فولدرم را بالا بیارم . اما ریشه ی اصلی بالا نمیادو روشها چاره ساز نبود.
توی ریشه ی اصلی 5 تا فایل htaccess بود با نام های مختلف. مثل htaccess_lscachebak_orig اینا چی هستند؟
با تشکر
بهاره کوهستانی 11 سال عضو همیار وردپرس
سلام
دوست عزیز من تا جایی که واقعا جای پاسخگویی باشه جواب میدم. اینکه میفرمایید چند تا htaccess یعنی مشکل! شما یه دونه از این فایل باید داشته باشید اونوقت چطور چندتا دارید؟
ساب فولدر دقیقا برای چی؟