محتوای آموزشی وبلاگ نتآرام
فرض کنید تصویر محصول در PrestaShop بارگذاری نمیشود. یک JPEG کوچک و سالم انتخاب کنید و برای یک محصول آزمایشی بارگذاری کنید. اگر این تصویر موفق شد ولی تصویر اصلی نه، اندازه، نوع یا خود فایل اصلی را بررسی میکنیم. اگر هر دو شکست خوردند، پیام برنامه و گزارش PHP اهمیت بیشتری دارند.
اول یک تصویر کوچک و سالم را امتحان کنیم
اگر پیام مربوط به اندازهٔ بیش از حد است، سقف آپلود PHP و محدودیت برنامه را مقایسه کنید. اگر پیام مربوط به پردازش تصویر است، مدیر باید کتابخانهٔ مورد استفاده مانند GD یا Imagick و حافظهٔ در دسترس را بررسی کند. اگر فایل ایجاد میشود ولی برنامه نمیتواند آن را بنویسد، دسترسی پوشهٔ تصاویر مطرح است.
فعال کردن عمومی تابع exec یا دادن دسترسی ۷۷۷ به همهٔ پوشهها پاسخ این سه خطا نیست. نسخهٔ PrestaShop، متن خطا و نتیجهٔ تصویر کوچک را به میزبان بدهید. اگر مشکل از افزونهٔ خاصی شروع شده، همان افزونه را در محیط آزمایشی بررسی کنید. تغییر فایل هسته فقط بر اساس چند خط ناقص قدیمی، هم عیبیابی را سخت میکند و هم با بهروزرسانی از بین میرود.
یک تصویر نمونه امتحان کنید
یک JPEG یا PNG کوچک و سالم را روی یک محصول آزمایشی بارگذاری کنید. اگر این نمونه موفق است ولی فایل اصلی نه، اندازه، ابعاد یا نوع فایل را بررسی کنید. فایل دارای پسوند تصویر ممکن است محتوای سالم تصویر نداشته باشد؛ فرمت و قابلیت خواندن باید تأیید شود.
زمان تلاش و متن خطای پنل را ثبت کنید. در ابزار شبکهٔ مرورگر، وضعیت درخواست آپلود میتواند سرنخ بدهد، اما لاگ برنامه و PHP همان زمان برای علت پردازش مهم است. خطای timeout، محدودیت اندازه و permission باید جدا تشخیص داده شوند.
محدودیتها و پیشنیازها
نسخهٔ PrestaShop و PHP را با نیاز رسمی همان انتشار تطبیق دهید. قابلیت پردازش تصویر و افزونههای موردنیاز باید در PHP وب فعال باشند؛ نسخهٔ خط فرمان لزوماً نمایندهٔ آن نیست. سقف حجم درخواست، فضای موقت و حافظهٔ پردازش تصویر نیز اثر دارند.
فضای خالی و سهمیهٔ حساب را بررسی کنید. تصویر با حجم فشردهٔ کم ممکن است هنگام پردازش به حافظهٔ بیشتری نیاز داشته باشد. دادن مجوز 777 به پوشهها علت مالکیت نادرست را اصلاح نمیکند؛ مسیر و کاربر اجرای PHP باید با ساختار میزبان سازگار باشند.
از ویرایش حدسی هسته پرهیز کنید
کد مربوط به images.inc.php یک نسخهٔ قدیمی را در نسخهٔ جدید جایگزین نکنید. ساختار هسته ممکن است تغییر کرده باشد و چنین ویرایشی با بهروزرسانی از بین برود. اگر یک خطای معتبر به تابع یا قابلیت خاص اشاره میکند، نیاز آن را از مستندات نسخه و ماژول مربوط بررسی کنید.
فعال کردن exec برای همهٔ حسابها بدون شاهد، تصمیم دقیقی نیست. ممکن است مسیر فعلی اصلاً به آن نیاز نداشته باشد. اصلاح باید به همان خطای تأییدشده، محدودهٔ حساب و روش پشتیبانیشده مربوط باشد.
تأیید نتیجه
پس از تغییر محدود، تصویر نمونه و تصویر اصلی را دوباره امتحان کنید. نمایش تصویر در صفحهٔ محصول، بندانگشتی و نسخهٔ موبایل را بررسی کنید. موفق بودن ذخیرهٔ محصول بهتنهایی ایجاد همهٔ اندازههای تصویر را ثابت نمیکند.
اگر مشکل پس از نصب ماژول یا تغییر PHP آغاز شده، همان تغییر را در محیط آزمایشی مقایسه کنید. گزارش نهایی باید نسخهها، نوع فایل، خطای دقیق و نتیجهٔ آزمون را مشخص کند تا اصلاح بعدی بر اساس شواهد انجام شود.
منابع و ادامهٔ مطالعه