احتمالا شما نیز حین کار با افزونه اسماش، بخصوص کار با بخش بهینه سازی گروهی با خطاهایی روبرو شده اید. تقریبا هرخطایی دریافت کرده باشید ما در این مقاله راجع به آن توصیه ها و راه حل هایی را ارائه کرده ایم. پس در ادامه به بررسی تک تک خطاهای افزونه اسماش و راه حل ان می پردازیم
مشکل عدم موفقیت در فشردهسازی دستهای یا اسکن
در این حالت شما چنین خطایی از افزونه دریافت می کنید: Stuck/Failed Bulk Smush or Scan
برای رفع این مشکل اقدامات زیر توصیه می گردد:
- مشکلات Loopback را بررسی کنید.(در ادامه همین مقاله بررسی کرده ایم)
- به صفحه «سلامت سایت» در پیشخوان وردپرس خود بروید و ببینید آیا مشکلات مهمی مربوط به رسانه یا درخواستهای HTTP وجود دارد یا خیر.
- حالت اشکالزدایی را فعال کنید و فایل
debug.log
را در پوشهwp-content
برای هرگونه خطا هنگام اجرای اسکن یا فشردهسازی دستهای بررسی کنید. - یک تست تداخل افزونه انجام دهید.
- بررسی کنید که آیا WP Cron غیرفعال است یا خیر. برای عملکرد صحیح فشردهسازی یا اسکن دستهای باید فعال باشد. فایل
wp-config.php
را در پوشه اصلی سایت خود بررسی کنید و اگر این خط در آن وجود دارد، آن را حذف کنید:define( 'DISABLE_WP_CRON', true );
- بررسی کنید که آیا فایل
wp-cron.php
واقعاً وجود دارد و قابل دسترسی است یا خیر. این فایل باید در پوشه اصلی وبسایت شما روی سرور باشد. مطمئن شوید که مجوزهای فایل صحیح را دارد. برای دسترسی Smush باید ۶۴۴ باشد. - اگر مشکل cron همچنان ادامه داشت، سعی کنید یک cron سرور را تنظیم کنید یا از یک سرویس cron شخص ثالث استفاده کنید.
منابع کم سرور
- محدودیت حافظه(Memory Limit): اگر زیر ۱۲۸ مگابایت است، محدودیت حافظه PHP را افزایش دهید. میتوانید این کار را با اضافه کردن این خطوط در فایل
wp-config.php
خود انجام دهید:
define( 'WP_MAX_MEMORY_LIMIT', '512M');
define( 'WP_MEMORY_LIMIT', '512M');
- در برخی از سرورها، دستورات بالا ممکن است آنطور که انتظار میرود کار نکنند. در چنین مواردی، میتوانید با اضافه کردن این خط به فایل
php.ini
یا.user.ini
خود، آن را افزایش دهید:
memory_limit = 512M
- اگر هر دوی موارد بالا جواب نداد، میتوانید این کار را از طریق پنل میزبانی خود انجام دهید یا از ارائه دهنده میزبانی خود پشتیبانی دریافت کنید.
- مهلت زمانی پردازش(Process Timeout): اگر زیر ۱۲۰ است، حداکثر زمان اجرای PHP را افزایش دهید. میتوانید این کار را با اضافه کردن این خط به فایل
php.ini
یا.user.ini
خود انجام دهید:max_execution_time = 300
- اگر مورد بالا جواب نداد، میتوانید این کار را از طریق پنل میزبانی خود انجام دهید یا از ارائه دهنده میزبانی خود پشتیبانی دریافت کنید.
- کتابخانههای گمشده(Missing Libraries): اگر افزونههای GD یا Imagick PHP روی سرور شما وجود نداشته باشد، ممکن است تصاویر فشرده نشوند. برای تأیید، لطفاً بررسی کنید که آیا میتوانید یک تصویر را در سایت خود ویرایش کنید یا خیر. اگر نه، لطفاً از ارائه دهنده میزبانی خود بخواهید که افزونه GD یا Imagick PHP را برای رفع این مشکل فعال کند.
مشکلات اسکن
- کاهش اندازه برش اسکن(Reduce Scan Slice Size): برای اسکنهای گیر کرده، میتوانید این خط را به فایل
wp-config.php
خود اضافه کنید تا ببینید آیا کاهش اندازه برش کمک میکند یا خیر:define('WP_SMUSH_SCAN_SLICE_SIZE', 250 );
- افزایش محدودیت تلاش مجدد اسکن: برای اسکنهای ناموفق، ما تلاشهای مجدد خودکار cron را به ۵ بار محدود میکنیم. میتوانید با اضافه کردن این تعریف به فایل
wp-config.php
خود، این محدودیت را تنظیم کنید تا ببینید آیا کمک میکند یا خیر:define('WP_SMUSH_BACKGROUND_MAX_RETRIES', 20 );
مشکلات فشردهسازی دستهای(Bulk Smush Issues)
- غیرفعال کردن پردازش موازی(Disable Parallel Processing): فشردهسازی دستهای همه اندازههای تصویر پیشفرض وردپرس را برای یک مورد رسانهای به صورت موازی بهینه میکند که باعث میشود فرآیند بهینهسازی تصویر بسیار سریعتر شود. اما، برای انجام این کار به منابع بیشتری نیز نیاز دارد. اگر در فشردهسازی دستهای گیر کردید، سعی کنید با اضافه کردن این تعریف در فایل
wp-config.php
خود، پردازش موازی را غیرفعال کنید تا ببینید آیا کمک میکند یا خیر:
define( 'WP_SMUSH_PARALLEL', false );
- افزایش محدودیت تلاش مجدد فشردهسازی دستهای(Increase Bulk Smush Retry Limit): ما تلاشهای مجدد خودکار cron را برای فشردهسازی دستهای به ۵ بار در هر ۱۰۰۰ تصویر محدود میکنیم. میتوانید با اضافه کردن این تعریف به فایل
wp-config.php
خود، این محدودیت را تنظیم کنید تا ببینید آیا کمک میکند یا خیر:
define('WP_SMUSH_BULK_REVIVAL_LIMIT', 20 );
تصاویر شکسته(Broken Images)
- از گزینه «بازیابی گروهی» برای بازسازی تصاویر بندانگشتی استفاده کنید. برای اطمینان از عملکرد مؤثر این کار، مطمئن شوید که گزینه «پشتیبانگیری از تصاویر اصلی» فعال باشد.
- از هر افزونه معتبر شخص ثالث وردپرس برای بازسازی تصاویر بندانگشتی خود استفاده کنید.
- «بارگذاری تنبل» را غیرفعال کنید یا به ویژگی «بارگذاری تنبل بومی» بروید. لطفاً اگر این مشکل هرگونه تداخل زمینهای را برطرف کرد، به ما اطلاع دهید، زیرا ما میخواهیم هرگونه مشکلی را که پیش میآید برطرف کنیم.
- اگر CDN در حال حاضر فعال است، سعی کنید آن را خاموش کنید و به ما اطلاع دهید که آیا این مشکل را برطرف میکند یا خیر، تا بتوانیم اقداماتی را برای جلوگیری از مشکلات مشابه در آینده انجام دهیم.
توجه: به خاطر داشته باشید که بازسازی تصاویر بندانگشتی ممکن است هرگونه بهینهسازی قبلی را لغو کند.
مشکل درخواست Loopback
ویژگی پردازش پسزمینه فشردهسازی گروهی برای عملکرد به درخواستهای Loopback نیاز دارد. عوامل مختلفی میتوانند باعث ایجاد مشکل در درخواستهای loopback شوند. اگر سایت شما چنین مشکلی داشته باشد، پیام خطای زیر را در صفحه «سلامت سایت» مشاهده خواهید کرد.
در اینجا لیستی از راهحلهای پیشنهادی برای رفع این مشکل وجود دارد:
- ویرایش فایل هاست سرور: اگر دامنه شما توسط WPMU DEV میزبانی نمیشود، خط زیر را “127.0.0.1 [invalid URL removed]” به فایل هاست سرور خود “/etc/hosts” اضافه کنید. اگر کار نکرد، با ارائه دهنده میزبانی خود تماس بگیرید یا گزارشهای دسترسی را بررسی کنید تا آدرس IP خصوصی سرور را پیدا کنید و از آن IP به جای 127.0.0.1 استفاده کنید. توجه داشته باشید که “[invalid URL removed]” باید با نام دامنه شما با TLD جایگزین شود.
- انجام تست تداخل افزونه: برخی از افزونهها/قالبها میتوانند با درخواستهای loopback تداخل داشته و باعث این مشکل شوند. قالبها/افزونههای سایت خود را یکی یکی غیرفعال کنید و سعی کنید مشخص کنید که آیا غیرفعال کردن هر افزونه/قالب مشکل را برطرف میکند یا خیر.
- غیرفعال کردن موقت فایروال: اگر فایروال روی سایت خود فعال کردهاید، آن را به طور موقت غیرفعال کنید تا ببینید آیا مشکل را حل میکند یا خیر. اگر چنین است، از ارائه دهنده میزبانی خود بخواهید که آدرسهای IP WPMU DEV را به لیست سفید فایروال اضافه کند.
- احراز هویت HTTP: اگر سایت شما با احراز هویت HTTP اولیه محافظت میشود، احراز هویت را حذف کنید تا ببینید آیا مشکل را برطرف میکند یا خیر.
- مشکلات پیکربندی SSL: گواهیهای SSL پیکربندی ضعیف نیز میتوانند باعث ایجاد مشکل در درخواستهای loopback شوند. سعی کنید گواهی SSL را دوباره نصب و پیکربندی کنید.
- بهروزرسانی DNS: اگر اخیراً nameserverها یا رکوردهای DNS خود را بهروزرسانی کردهاید، حداقل ۴۸ ساعت صبر کنید تا مشکل برطرف شود.
- نرمافزار قدیمی: بررسی کنید که آیا همه نرمافزارهای سیستم شما بهروز هستند یا خیر. نرمافزارها و کتابخانههای قدیمی از جمله PHP، cURL یا OpenSSL نیز میتوانند باعث این مشکل شوند. برای تأیید اینکه سیستم شما آخرین نسخههای نرمافزار را دارد، روی تب «اطلاعات» در زیر صفحه «سلامت سایت» منوی «ابزارها» کلیک کنید تا اطلاعات مربوط به نرمافزار نصب شده روی سیستم شما نمایش داده شود.
- DNS پیکربندی نادرست: DNS پیکربندی ضعیف یا پیکربندی نادرست میتواند مشکلات cURL را ایجاد کند.