اختيار خادم لـ WooCommerce
تطلب وثائق WooCommerce الرسمية إصدار PHP 8.3 أو أحدث، وMySQL 8.0 أو MariaDB 10.6 أو أحدث، وHTTPS، وحدًا لذاكرة WordPress لا يقل عن 256 MB. ولا تذكر رقمًا لـ RAM الخادم. وللمتجر الصغير، من المعقول البدء بـ 2-4 GB من RAM (قاعدة تقريبية تتفاوت بحسب المتجر). ومع نمو المنتجات والطلبات يزداد الحمل على قاعدة البيانات والمعالج.
لا يتصرف المتجر مثل المدونة. صفحتا السلة والدفع مختلفتان لكل زائر، فلا يمكن تخزينهما مؤقتًا، وتُكتب الطلبات في قاعدة البيانات طوال اليوم. ولذلك يحتاج المتجر غالبًا إلى موارد أكثر من المدونة عند الزيارات نفسها.
المتطلبات الرسمية
تسرد وثيقة متطلبات خادم WooCommerce (وهي توصية رسمية):
- PHP 8.3 أو أحدث.
- MySQL 8.0 أو أحدث، أو MariaDB 10.6 أو أحدث.
- دعم HTTPS.
- حد لذاكرة WordPress بمقدار 256 MB أو أكثر.
- Apache أو Nginx كخادم ويب.
- دعم السلاسل متعددة البايتات (mbstring) إذا لم يكن متجرك بالإنجليزية. تعدّ الوثيقة هذا متطلبًا يتوقف على المتجر، والمتجر التركي يقع ضمن هذه الفئة.
الرقم 256 MB سقف لطلب PHP واحد، لا RAM الخادم. وعند الحاجة، أضف هذا السطر إلى wp-config.php:
define( 'WP_MEMORY_LIMIT', '256M' );
ترد الإصدارات الأقدم مثل PHP 7.4 في الوثيقة كخيار احتياطي قديم فقط، ولا يُنصح بها.
لماذا يختلف المتجر عن المدونة
- صفحات لا يمكن تخزينها مؤقتًا. يطلب دليل التخزين المؤقت في WooCommerce إبقاء صفحات السلة والدفع والحساب خارج الذاكرة المؤقتة، لأنها تعرض بيانات خاصة بذلك الزائر. وينبغي أيضًا استثناء بعض ملفات تعريف الارتباط، مثل ملفات السلة. تأكد من أن إضافة التخزين المؤقت لديك تفعل ذلك.
- حمل الكتابة. إنشاء الطلبات وتحديث المخزون وحفظ الجلسات كلها تكتب في قاعدة البيانات باستمرار. المدونة تكتب نادرًا، أما المتجر فيكتب طوال اليوم.
- المهام الخلفية. يشغّل WooCommerce الأعمال المؤجلة (البريد وwebhooks ومدفوعات الاشتراكات) عبر طابور مهام مدمج يسمى Action Scheduler. ويُطلَق الطابور بواسطة WP-Cron، لذا قد تتأخر المهام في متجر قليل الزيارات. وإعداد مهمة cron على الخادم لتشغيل WP-Cron في مواعيد محددة (مع الإعداد
DISABLE_WP_CRON) يزيل هذا الاعتماد. وترى الطابور ضمن WooCommerce > Status > Scheduled Actions.
بيانات الطلبات وHPOS
يحفظ High-Performance Order Storage (HPOS) الطلبات في جداول مصمَّمة لهذا الغرض بدلًا من جداول المنشورات العامة في WordPress. وهو الخيار الافتراضي في التثبيتات الجديدة منذ WooCommerce 8.2. أما المتاجر الأقدم فلا تنتقل إليه من تلقاء نفسها. تفعّله ضمن WooCommerce > Settings > Advanced > Features، ويُبقي وضع التوافق البنيتين متزامنتين. والمهم للخادم هو أن البنية مُحسَّنة للطلبات، لكن قاعدة البيانات تظل بحاجة إلى ذاكرة وقرص.
حجم البداية
هذه القيم قواعد تقريبية وتتفاوت بحسب المتجر. وهي ليست وعدًا ثابتًا.
| المتجر | RAM للبداية | vCore |
|---|---|---|
| متجر جديد: منتجات قليلة وطلبات قليلة | 2-4 GB | 1-2 |
| متجر في نمو: آلاف المنتجات وحملات منتظمة | 4-8 GB | 2-4 |
| متجر مزدحم: حملات متكررة وإضافات وتكاملات كثيرة | 8 GB فأكثر | 4 فأكثر |
عدد الإضافات وأحجام الصور والحمل المفاجئ أثناء الحملات لا يقل أهمية عن عدد المنتجات. يخفف التخزين المؤقت للكائنات (مثل Redis) الحمل على قاعدة البيانات، لكنه يحتاج إلى ذاكرة. ابدأ صغيرًا، ثم انمُ بمراجعة مخرجات free -h وtop في ساعات الذروة.
أسباب شائعة لبطء المتجر
- صور منتجات كبيرة غير مضغوطة.
- إضافات غير مستخدمة وسكربتات زائدة تعمل في كل صفحة.
- غياب التخزين المؤقت للكائنات، فيُنفَّذ استعلام قاعدة البيانات نفسه مرارًا.
- إصدار PHP قديم لم تعد له صيانة.
إصلاح هذه الأمور يسبق رفع الحجم في كثير من الأحيان. وحيث لا يفيد رفع الحجم، تكون المشكلة غالبًا في الإعدادات.
النسخ الاحتياطي: قد لا تكفي نسخة يومية وحدها
في Seturack يُنسخ الخادم احتياطيًا كل ليلة ويُحتفظ بآخر 7 أيام. وفي المتجر تصل الطلبات طوال اليوم، لذا قد لا يكفي ذلك وحده. فإذا استعدت نسخة، ضاعت الطلبات التي وردت منذ آخر نسخة احتياطية. خذ تفريغًا لقاعدة البيانات بوتيرة أعلى وانسخه إلى مكان آخر:
mysqldump --single-transaction -u USER -p DATABASE | gzip > orders-$(date +%F-%H%M).sql.gz
في المهمة المجدولة لا تضع كلمة المرور في سطر الأوامر. استخدم ملف ~/.my.cnf بصلاحيات 600. وفي خادم WooCommerce الجاهز يعمل التطبيق في Docker، لذا نفّذ أوامر قاعدة البيانات من داخل الحاوية. وقاعدة البيانات هناك هي MariaDB. وقد لا تتضمن الحاوية mysqldump، فاستخدم mariadb-dump. وتوجد صور المنتجات في المجلد wp-content/uploads، فانسخه هو الآخر.
ما يجب تجهيزه إلى جانب الحجم
- HTTPS. هو إلزامي لـ WooCommerce. ويُفتح خادم WooCommerce الجاهز عبر HTTPS على عنوان مشتق من IP الخاص بك بواسطة sslip.io. ولربط نطاقك الخاص، راجع هذا المقال.
- البريد الإلكتروني. ثبّت إضافة SMTP ليخرج بريد الطلبات. لا يُعدّ التثبيت إرسال البريد الإلكتروني.
- التحديثات. بعد التثبيت، تحديثات WordPress وWooCommerce وإضافاتك عليك أنت. التقط لقطة من اللوحة قبل أي تحديث كبير. واللقطة ليست بديلًا عن النسخة الاحتياطية، فهي تتيح لك فقط العودة إلى ما قبل التحديث.
يكون الخادم المثبّت عليه WooCommerce جاهزًا في نحو 3.5 إلى 4 دقائق، ويمكنك رفع حجمه من اللوحة مع نمو المتجر. ألقِ نظرة على صفحة خادم WooCommerce.
التعليقات0
لا توجد تعليقات بعد
كن أول من يشارك رأيه.
يرجى تسجيل الدخول أو إنشاء حساب لترك تعليق.