در زمان بارگزاری یک سایت و ارسال دستور فراخوانی آدرس سایت توسط مرورگر حالات مختلفی ممکن است بوجود بیاید که آن سایت برای بازدیدکننده به درستی نمایش داده شود یا خیر. یکی از خطاهای شایع در سایت ها خطای The 500 Internal Server Error یا همان خطای ۵۰۰ داخلی سرور می باشد. این خطا جزو خطاهای اساسی ای است که در تمامی زبانهای برنامه نویسی (PHP , ASP و…) و همچنین انواع سیستم های مدیریت محتوای وردپرس ، جوملا، اوپن کارت و… برای همه نوع سایتی ممکن است که بوجود بیاید و علت وقوع آن در هرکدام از سیستم ها و زبان های برنامه نویسی و البته راه حل های پیشنهادی برای رفع این خطا متفاوت و مختص به همان سیستم خواهد بود. در این آموزش قصد داریم به بررسی و نحوه رفع کامل این خطا در سایت های جوملایی بپردازیم.
نمونه ای متن این خطا:
1 2 3 4 5 6 7 8 9 |
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@Afzoneha.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 |
انوع دیگر از خطای داخلی سرور در زیر لیست کرده ایم که اگر این پیام ها را ملاحضه فرمودید؛ بدانید که این خطا همان خطای ۵۰۰ معروف و مشهور است!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
HTTP 500 - Internal Server Error یا Temporary Error (500) یا Internal Server Error یا HTTP 500 Internal Error یا ۵۰۰ Error یا HTTP Error 500 یا ۵۰۰٫ That's an error |
نکته ی قابل توجه ای که میبایست مورد توجه قرار گیرد این است که هنگامیکه کاربران با این خطا مواجه می شوند تصور میکنند این ارور صرفاً به دلیل قطعی سرور یا مشکلات هاست خود بوجود امده است، درصورتی که عمدتاً و اساسا این خطا در حین عدم برقراری و اجرای سیستم یا اسکریپت در بیشتر اوقات به وجود می آید. که دلایل جزئی آن هم میتواند به دلیل اشتباه بودن و یا دارای مشکل بودن فایل htaccess. یا سطح دسترسی یا Permission پوشه ها و فایلهای هسته جوملا و یا مشکل از انجام تنظیمات سئویی باشد که بطور ناصحیح و ناقص در ساییتان پیکربندی شده است!
حال به تشریح رفع هر کدام از موارد احتمالی بالا می پردازیم.
فرضیه اول – فایل htaccess. دارای مشکل است:
برای تست اینکه آیا مشکل از فایل htaccess. است یا خیر ؟ دو راه در پیش روی ما وجود دارد. در هر دو روش ما میخواهیم که فایل htaccess. را از دسترس سیستم وردپرس خود خارج کنیم تا اگر مشکل از آن بود ؛ بتوانیم ردیابی کنیم و متوجه آن شویم!
راه اول: اینکه به از طریق Host Control Panel > File Manager > Public_html فایل htaccess. را یافته و آنرا با یک ادیتور باز میکنیم. سپس کلیه محتویات آنرا حذف و به اصلاح این فایل را خالی و سپس ذخیره میکنیم. حالا از طریق پیشخوان وردپرس > تنظیمات > پیوندهای یکتا را کلیک میکنیم تا هسته وردپرسی ما بطور خودکار اقدام به تولید و اصلاحاً Generate این فایل اقدام نماید. حالا سایت را چک میکنیم اگر مشکلی وجود داشت. پس خطای صادره از محل دیگری است.
روش دوم : با رفتن به مسیر Host Control Panel > File Manager > Public_html و یافتن فایل htaccess. آنرا به یک نام دلخواه (نامی به غیز نام فعلی) بطور مثال htaccess_myname تغییر میدهیم. پس از انجام این کار حالا سایت را تست میکنیم اگر مشکل برطرف شده باشد پس مشکل سایت در کدهای موجود در این فایل بوده ، پس از کسب اطمینان از مشکل دار بودن این فایل از طریق پیشخوان وردپرس به تنظیمات و پیوندهای یکتا میرویم و از آنجا یکبار بروی دکمه ذخیره کلیک میکنیم تا هسته وردپرس این فایل را مجدد ایجاد کند.
فرضیه دوم – محدودیت حافظه برای وردپرس وجود دارد:
این مسئله در زمانی بوجود می آید که به دلیل وجود محدودیت های موجود بروی سرور شما نیاز دارید که مصرف رم وردپرس را به میزان کمی تنظیم کنید برای این کار فایل wp-config.php در مسیر ریشه وردپرس با باز کنید و کد زیر را در آن کپی و ذخیره کنید.
1 |
define('WP_MEMORY_LIMIT', '512M'); |
اگر با مقدار ۵۱۲ بالا خطا همچنان باقی بود .میتوانید حداقل ترین میزان رم یعنی ۶۴ مگ را تنظیم کنید. برای اینکار از کد زیر استفاده کنید.
1 |
define('WP_MEMORY_LIMIT', '64M'); |
راه دیگری که میتوانید این محدودیت را اعمال کنید استفاده از فایل php.ini هست که میتوانید بطور دستی و لوکال صرفاً برای هاست خودتان تنظیم کنید تا از کانفیگ کلی php سرور تبعیت نکند. برای اینکار به پوشه wp-admin میرویم و در اینجا یک فایل بنام php.ini ایجاد میکنیم و در آن کد زیر را کپی و ذخیره میکنیم.(البته این نکته را یادآور شویم برخی از هاست های اشتراکی برای اینکه کاربران هیچگونه تغییری بصورت دلخواه در کانفیگ انجام شده بروی سرور و در هاست خود انجام ندهند این قابلیت را اساسا غیرفعال کرده اند و اگر با این روش پاسخی دریافت نکردید الزاماً میبایست مسئله را با هاستینگ خود در میان بگذارید)
1 |
memory=64MB |
فرضیه سوم – عامل خطا یکی از افزونه ها و الحاقات وردپرس است:
در این حالت محبور هستیم که بطور کلی افزونه ها غیرفعال کنیم .تا بتوانیم صحت این مسئله را تست کنیم.برای این مسئله از طریق هاست و یا FTP به مسیر public_html > wp-content پوشه plugins را به نام دلخواه تغییر نام میدهیم .تا اساسا در زمان بارگزاری سایت و تست محدد هیچ ردی از افزونه های نصب شده نباشد. این نام میتوانید یک نام فرضی مشابه pluginsMyname باشد . این کار برای این است که هسته وردپرس قابلیت شناسایی پوشه پیشفرض افزونه های خود و به دنبال آن قابلیت لود پلاگین ها را نداشته باشد تا بدین ترتیب بتوانیم فرضیه مشکل دار بودن افزونه ها را تست نماییم.
فرضیه چهارم: فایل های هسته وردپرس دچار مشکل شده باشد:
در این حالت ما تنها کاری که میتوانیم انجام دهیم. و در صورت کسب نتیجه درست از تست های بالا میبایست فایل نصبی وردپرس خام که هیچگونه دستکاری ای را نداشته است. دانلود و بروی سرور آپلود کنیم. برای آپدیت هسته نیاز داریم تا پوشه های wp-admin و wp-includes از جوملا خام و بدون دستکاری را بروی سرور خود آپلود و بروی سایت فعلی خود اکسترکت کنیم. حال مجدد سایت را تست میکنیم که آیا مشکل برطرف شده است یا خیر.عموماً مشکلات وردپرسی با این تست ها و تغییرات میبایست برطرف شوند. اگر با این تست ها مشکل شما برطرف نشد میتوانید مسئله را با شرکت هاستینگ خود در میان بگذارید تا متخصصان آنها مسئله را بررسی کنند.
امیدواریم که این آموزش برای شما مفید بوده باشد. سوالات خود را بعنوان کامنت در همین پست ارسال نمایید.