در این مقاله میخواهیم چگونگی برطرف کردن ارور 500 در مجنتو 2 را آموزش دهیم. مجنتو یک سیستم مدیریت محتوا است که اتفاقاً محبوبیتش رو به افزایش است. چقدر با آن آشنایی دارید؟
مجنتو (Magento) چیست؟
Magento یک پلتفرم همهفنحریف برای ساخت فروشگاههای آنلاین (E-Commerce) است که با کد PHP نوشته شده است.
این سیستم مدیریت محتوا توسط شرکت Adobe توسعه یافت. وقتی با مجنتو یک فروشگاه آنلاین ایجاد کنید، پرداخت آنلاین، مدیریت محصولات و برخی امکانات کارآمد دیگر، بهراحتی در اختیارتان قرار میگیرند.
بسیاری از برندهای سرشناس دنیا مثل نایک، فورد و کوکاکولا از این CMS برای سایتهای خود استفاده میکنند.
اگر میخواهید بدانید مجنتو بیشتر مناسب چه سایتهایی است، مقاله انواع CMS را بخوانید.
خب برویم سراغ اصل موضوع.
رفع ارور 500 در CMS مجنتو 2
اگر به مقاله ارور 500 چیست؟ سری بزنید، با ماهیت این نوع از خطاهای HTTP کاملاً آشنا خواهید شد.
در رابطه با سیستم مدیریت محتوای مجنتو، این ارور یکی از رایجترین مشکلاتی است که پیش میآید.
این کد خطا معمولاً هنگام نصب، بهروزرسانی یا حذف اجزای مختلف این CMS مثل تمها و افزونهها بروز پیدا میکند.
خب این خطا باعث ایجاد اختلال در فروشگاه اینترنتی خواهد شد. احتمالاً بسیاری از کاربران تجربه بسیار بدی خواهند داشت و این چیزی نیست که شما بهعنوان صاحب سایت میخواهید. پس بیایید برویم سراغ چگونگی رفع آن.
نکته: قبل از عیبیابی و رفع مشکل، باید حالت Developer Mode را فعال کنید. به این ترتیب میتوانید اطلاعات بیشتری را در رابطه با خطا به دست آورید. برای انجام این کار، کافی است دستور زیر را اجرا کنید:
php bin/magento deploy:mode:set developer
8 دلیل اصلی برای بروز این مشکل وجود دارند که در ادامه آنها را همراه با راهحل بررسی خواهیم کرد:
1- محدودیت در دسترسیها را تغییر دهید
در بسیاری از مواقع، این مشکل زمانی بروز پیدا میکند که وارد پنل ادمین میشوید!
برای رفع آن، میتوانید اجازه دسترسی در فایل Index.php را از روت 664 به 644 تغییر دهید.
از مجموع دستورات زیر استفاده کنید. احتمال دارد که بعد از اجرا مشکل بهکل برطرف شود.
find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; find ./var -type d -exec chmod 777 {} \; find ./pub/media -type d -exec chmod 777 {} \; find ./pub/static -type d -exec chmod 777 {} \; chmod 777 ./app/etc chmod 644 ./app/etc/*.xml chmod u+x bin/magento
2- محدودیت در Memory افزایش دهید
در بعضی مواقع، فقط صفحات مشخصی از مجنتو، مثل صفحات محصولات با این خطا مواجه میشوند. در این حالت میتوان با افزایش محدودیت تعیینشده برای مموری، مشکل را برطرف کرد.
این افزایش محدودیت در فایل htaccess. یا php.ini انجام میشود.
برای فایل htaccess. از دستور زیر استفاده کنید:
php_value memory_limit 1024M
برای فایل php.ini از دستور زیر کمک بگیرید:
memory_limit = 1024M
نکته: برای اعمال این تغییرات، به اجازه ارائهدهنده هاست نیاز دارید.
3- فایل htaccess. را یا حذف کنید یا نامش را تغییر دهید!
برخی اوقات ممکن است بروز خطا بهخاطر تنظیمات اشتباه در فایل htaccess. باشد. اگر نام این فایل را تغییر دادید، یا بهکل آن را حذف کردید و مشکل برطرف شد، میتوانید مطمئن شوید که دلیل همین بوده است.
اگر مشکل با انجام یکی از این دو کار برطرف نشد، احتمالاً دلیل آن مربوط به ورژن PHP است. شاید هم برخی از تنظیمات سرور ایراد دارند.
4- حالت نگهداری (Maintenance) را غیرفعال کنید
اگر فایل maintenance.flag را در فولدر روت مجنتو قرار دهید، در واقع آن را فعال کردهاید. این حالت، با ایجاد تغییر در دسترسی در فایل index.php، اجرای آن برای مرورگرها را غیرممکن میکند.
برای غیرفعال کردن این حالت، هم میتوانید این فایل را حذف کنید و هم میتوانید از دستور زیر کمک بگیرید:
php bin/magento maintenance:disable
سپس دسترسی index.php را به 755 تغییر دهید و کش را پاک کنید. بعد بررسی کنید که آیا مشکل برطرف شده است یا نه!
5- افزونه CURL را نصب کنید
خیلی اوقات، بروز خطای 500 در مجنتو 2 به دلیل نبود افزونه CURL است. این افزونه را با استفاده از دستور زیر نصب کنید:
yum install curl libcurl3 libcurl3-dev php5-curl
برای اعمال تغییرات، نیاز است تا httpd را Restart کنید:
service httpd restart
6- مشکلات مربوط به افزونههای Third-Party
گاهی ممکن است ایراد بهخاطر نصب یا بهروزرسانی یک افزونه جدید باشد. در این حالت، میتوانید با اجرای دستور زیر پلاگین را غیرفعال کنید و با تیم پشتیبانی آن ارتباط بگیرید:
php bin/magento mod:disable
7- ارور لاگ وب سرور را بررسی کنید
یکی دیگر از راههایی که میتواند خطای 500 را در مجنتو 2 برطرف کند، بررسی Error-log وبسرور است. همچنین توصیه میشود log file مجنتو که در فایل var/log قرار دارد را هم بررسی کنید.
8- تمام دستورات مجنتو 2 را از ابتدا اجرا کنید.
تمام دستورات زیر را از اول اجرا کنید:
rm -rf generated/* rm -rf var/* cd pub/static rm -r adminhtml rm -r frontend cd .. cd .. php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deploy -f php bin/magento indexer:reindex php bin/magento cache:clean php bin/magento cache:flush
حرف آخر
بروز خطای 500 در CMS مجنتو 2 کاملاً عادی است و اصلاً جای نگرانی ندارد. اگر احیاناً به این مشکل برخوردید، از راهحلهای بالا استفاده کنید. در نهایت یکی از آنها مشکلتان را برطرف خواهد کرد.
برای تهیه این آموزش، از سایت MageComp کمک گرفتهایم.
اگر سوالی در این زمینه دارید، حتماً در قسمت کامنتها بنویسید تا پاسختان را بدهیم.
تشکر از وقت ارزشمندتان.