لماذا تختار VPS لاستضافة PrestaShop؟
الاستضافة المشتركة تُقاسم المعالج والذاكرة واتصالات MySQL بين عشرات العملاء. PrestaShop يُنفّذ استعلامات SQL معقدة ويُحمّل hooks متعددة في كل صفحة. على استضافة مشتركة تُكبَّل هذه الذروات بحصص محددة، فيتباطأ المتجر أو يُعطي أخطاء 503 تحديداً في أوقات الذروة. على VPS تحصل على موارد مخصصة وصلاحية root كاملة وحرية تثبيت Redis لتخزين الجلسات مؤقتاً أو ElasticSearch للبحث في المنتجات.
ما الذي يُتيحه VPS لمتجر PrestaShop؟
- PHP 8.2 بلا قيود — اختر الإصدار الذي تحتاجه وحدّثه متى شئت دون انتظار مزود الاستضافة.
- Redis للتخزين المؤقت للجلسات والكائنات — يُقلّص وقت الاستجابة بمقدار 3 إلى 5 أضعاف على صفحات الكتالوج كثيفة الزيارات.
- ElasticSearch / Meilisearch — بحث فوري في كتالوجات تضم أكثر من 10,000 منتج، مستحيل على الاستضافة المشتركة.
- صلاحية root كاملة ومهام cron بلا قيود — المهام المجدوَلة لـPrestaShop (الطلبات، المخزون، التصدير) واستيراد CSV بالجملة.
- نطاقات فرعية ومتاجر متعددة — تنصيب واحد يُدير متاجر عديدة على نطاقات مختلفة من لوحة إدارة واحدة.
- تراخيص الإضافات المستقلة — بعض الإضافات تتحقق من IP الخادم؛ IP مخصص يتجنب تعارض التراخيص.
- لقطات وملفات احتياطية تلقائية — خوادم ServOrbit VPS تشمل لقطات مجدوَلة: نقطة استعادة قبل كل تحديث رئيسي.
المتطلبات التقنية لـ PrestaShop 8.x
قبل تشغيل أي أمر، تحقق من توافق خادمك مع المتطلبات الرسمية لـPrestaShop 8.x (المرجع: devdocs.prestashop-project.org). نظام التشغيل: Ubuntu 24.04 LTS (موصى به) أو Debian 12. PHP: 8.1 حداً أدنى، 8.2 موصى به؛ الامتدادات المطلوبة: curl gd intl mbstring zip xml mysql pdo_mysql bcmath fileinfo. قاعدة البيانات: MySQL 8.0+ أو MariaDB 10.6+. الذاكرة العشوائية: 2 GB حداً أدنى لمتاجر أقل من 5,000 منتج؛ 4 GB مع ElasticSearch أو أكثر من 10,000 منتج. المساحة: 5 GB للتثبيت والوسائط (خطط لـ20 GB لمتجر نشط). خادم الويب: Apache 2.4+ مع mod_rewrite وتفعيل .htaccess. SSL: HTTPS إلزامي منذ PrestaShop 1.7.x.
الخطوة 1 — تثبيت Apache وPHP 8.2 وMySQL 8 على Ubuntu 24.04
اتصل بالخادم كـroot وحدّث الحزم
apt update && apt upgrade -yثبّت Apache وفعّل الوحدات اللازمة
apt install -y apache2 && a2enmod rewrite headers expires && systemctl enable --now apache2أضف مستودع Ondrej لـPHP (لأن PHP 8.2 غير متوفر في مستودعات Ubuntu 24.04 الافتراضية)
apt install -y software-properties-common && add-apt-repository ppa:ondrej/php -y && apt updateثبّت PHP 8.2 وجميع الامتدادات
apt install -y php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-bcmath php8.2-fileinfo libapache2-mod-php8.2ثبّت MySQL 8 وأمّن التثبيت
apt install -y mysql-server && mysql_secure_installationأنشئ قاعدة البيانات والمستخدم
mysql -u root -p -e "CREATE DATABASE prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'psuser'@'localhost' IDENTIFIED BY 'KلمةMرورQوية!'; GRANT ALL PRIVILEGES ON prestashop.* TO 'psuser'@'localhost'; FLUSH PRIVILEGES;"تحقق من الإصدارات المثبتة
php8.2 -v && mysql --version && apache2 -v
الخطوة 2 — تنزيل PrestaShop وتثبيته
انتقل إلى مجلد الويب ونزّل PrestaShop 8.x (تحقق من أحدث إصدار على github.com/PrestaShop/PrestaShop/releases)
cd /var/www && wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.7/prestashop_8.1.7.zipفكّ ضغط الأرشيف
apt install -y unzip && unzip prestashop_8.1.7.zip -d prestashop && cd prestashopفكّ ضغط الأرشيف الداخلي إن وُجد
ls *.zip && unzip prestashop.zip -d . 2>/dev/null || trueعيّن الصلاحيات الصحيحة
chown -R www-data:www-data /var/www/prestashop && find /var/www/prestashop -type d -exec chmod 755 {} \; && find /var/www/prestashop -type f -exec chmod 644 {} \;أنشئ ملف VirtualHost لـApache (استبدل متجر.example.com بنطاقك)
nano /etc/apache2/sites-available/prestashop.confفعّل الموقع وأعد تحميل Apache
a2ensite prestashop.conf && a2dissite 000-default.conf && systemctl reload apache2افتح المتصفح على http://متجر.example.com واتبع معالج التثبيت: اللغة، الترخيص،
افتح المتصفح على http://متجر.example.com واتبع معالج التثبيت: اللغة، الترخيص، قاعدة البيانات، معلومات المتجر، حساب المدير.
بعد اكتمال التثبيت، احذف مجلد /install فوراً
rm -rf /var/www/prestashop/install
إعداد SSL مع Let's Encrypt وCertbot
HTTPS إلزامي لـPrestaShop: لوحة الإدارة تحجب الاتصالات غير الآمنة. ثبّت Certbot واحصل على الشهادة ودعها تتجدد تلقائياً. الأوامر: apt install -y certbot python3-certbot-apache ثم certbot --apache -d متجر.example.com --email admin@example.com --agree-tos --non-interactive وأخيراً تحقق من التجديد: certbot renew --dry-run.
الحصول على شهادة SSL وتفعيلها
تثبيت Certbot مع إضافة Apache
apt install -y certbot python3-certbot-apacheالحصول على الشهادة (استبدل النطاق والبريد)
certbot --apache -d boutique.example.com --email admin@example.com --agree-tosالتحقق من التجديد التلقائي
certbot renew --dry-run— يُضيف Certbot مؤقتاً نظام systemd تلقائياً؛ لا يلزم إضافة مهمة cron.
ضبط php.ini لـ PrestaShop
القيم الافتراضية لـPHP متحفظة جداً للإنتاج. عدّل /etc/php/8.2/apache2/php.ini وعدّل هذه التوجيهات:
- memory_limit = 256M
- upload_max_filesize = 32M
- post_max_size = 32M
- max_execution_time = 300
- max_input_vars = 5000
- date.timezone = Africa/Casablanca
أعد تحميل Apache بعد التعديل: systemctl reload apache2.
ضبط PrestaShop بعد التثبيت
بعد تسجيل الدخول إلى لوحة الإدارة (/admin<hash>)، نفّذ هذه الإعدادات الأساسية: أوقف وضع التصحيح (الإعدادات المتقدمة › الأداء)؛ فعّل ذاكرة Smarty المؤقتة؛ فعّل عناوين URL الودية ثم أعد توليد .htaccess؛ اضبط وحدة Redis على 127.0.0.1:6379 إن كان مثبتاً. الوحدات الأساسية: رؤوس الأمان، reCAPTCHA، Google Analytics GA4.
احمِ لوحة الإدارة /admin<hash> بإضافة قيد IP في Apache أو مصادقة HTTP Basic كطبقة ثانية. أنشئ ملف كلمات المرور بـ: htpasswd -c /etc/apache2/.htpasswd adminuser.
الأخطاء الشائعة وحلولها
مواقف متكررة وحلولها:
مشكلات متكررة وحلولها
- شاشة بيضاء في الواجهة الأمامية أو الخلفية — فعّل وضع التصحيح مؤقتاً في /var/www/prestashop/config/defines.inc.php بتعيين _PS_MODE_DEV_ إلى true، اقرأ الخطأ، أصلحه، ثم أعده إلى false.
- خطأ 403 على الوسائط أو الصور — الصلاحيات غير صحيحة. صحّحها بـ: chown -R www-data:www-data /var/www/prestashop.
- بطء في صفحات الكتالوج — ثبّت Redis (
apt install -y redis-server) واضبطه في الإعدادات المتقدمة › الأداء › التخزين المؤقت. - ذاكرة override تالفة بعد وحدة معطوبة — احذف ملفات التحميل التلقائي: rm -f /var/www/prestashop/cache/class_index.php /var/www/prestashop/cache/autoload/*.php.
- mod_rewrite غير نشط — عناوين URL الودية تُعطي 404 — تحقق من AllowOverride All في VirtualHost وفعّل الوحدة: a2enmod rewrite && systemctl reload apache2.
تحديث PrestaShop بأمان
لا تُحدّث PrestaShop أبداً دون نسخة احتياطية مسبقة. الخطوات: (1) التقط لقطة VPS من لوحة تحكم ServOrbit. (2) احتفظ بنسخة من قاعدة البيانات: mysqldump -u psuser -p prestashop > /root/backup_$(date +%F).sql. (3) ثبّت وحدة Autoupgrade الرسمية من سوق PrestaShop. (4) اتبع معالج الوحدة. (5) اختبر الواجهة الأمامية ومسار الشراء. عند الفشل، استعد اللقطة أو التفريغ.
نشر PrestaShop من سوق ServOrbit
إن كنت تفضل تجنب الإعداد اليدوي، يُتيح سوق ServOrbit قالب PrestaShop بنقرة واحدة: الخادم يُهيَّأ مع Apache وPHP 8.2 وMySQL 8 وRedis وPrestaShop مثبتاً مسبقاً وشهادة SSL جاهزة، في أقل من خمس دقائق. تحتفظ بصلاحية root كاملة.