دليل النشر

استضافة WordPress على خادم VPS الخاص بك

انشر على VPS Cloud ←

دليل عملي

الاستضافة الذاتية

استضافة WordPress على خادم VPS الخاص بك

يشغّل WordPress أكثر من 40% من الويب، لكن الاستضافة المشتركة تقيّد أداءه. على خادم VPS مخصّص مع Docker، تحصل على السرعة والعزل وحرية كاملة في الإعداد. إليك نشرًا متينًا وآمنًا وسريعًا.

7 دقائق للقراءةعدد الخطوات: 14
المحتويات· لماذا تستضيف WordPress ذاتيًا على خادم VPS1/8
  1. 01لماذا تستضيف WordPress ذاتيًا على خادم VPS
  2. 02مكاسب WordPress على خادم VPS
  3. 03متطلبات واقعية
  4. 04النشر خطوة بخطوة
  5. 05تنبيه PHP بتاريخ 21/10/2026 (PHP2Shell): تحديث WordPress لا يصلح PHP
  6. 06تحقّق ثم أصلح في خمس خطوات
  7. 07تخفيف جزئي وليس إصلاحًا
  8. 08الوثائق الرسمية

لماذا تستضيف WordPress ذاتيًا على خادم VPS

تتقاسم الاستضافة المشتركة وحدة المعالجة (CPU) والذاكرة (RAM) وحتى قاعدة البيانات مع مئات المواقع الأخرى: تعتمد سرعتك على الجيران، وغالبًا ما يكون الوصول عبر SSH أو الإعداد الدقيق للخادم مقفلًا. يمنحك خادم VPS موارد مخصّصة لجهازك، وتحكمًا كاملًا في PHP-FPM وخادم الويب والتخزين المؤقت للكائنات (Redis) والتخزين المؤقت للصفحات. وبالنسبة إلى وكالة تدير عدة مواقع لعملائها، فهذا يعني أيضًا إمكانية عزل كل شيء في حاويات على جهاز واحد، مع نسخ احتياطية ونشر مُحكَمين، حيث تفرض الاستضافة المشتركة حدودها وتكاليفها الإضافية.

مكاسب WordPress على خادم VPS

  • موارد CPU/RAM مخصّصة لجهازك: تباطؤ أقل بسبب الجيران
  • تحكم كامل في PHP-FPM وخادم الويب والإضافات
  • التخزين المؤقت للكائنات عبر Redis والتخزين المؤقت للصفحات لتقليص أزمنة الاستجابة إلى النصف
  • وصول كامل عبر SSH/WP-CLI لأتمتة الصيانة وعمليات النشر
  • العزل عبر الحاويات: عدة مواقع لعملاء على خادم VPS واحد
  • نسخ احتياطية وقواعد أمان تحدّدها أنت، دون تكلفة إضافية لكل موقع

متطلبات واقعية

يتحمّل خادم VPS بمعالجَين افتراضيَّين (2 vCPU) و2 غيغابايت من الذاكرة (RAM) موقع WordPress بحركة زوار معتدلة بأريحية؛ انتقل إلى 4 غيغابايت مع Redis أو WooCommerce أو عدة مواقع. تحتاج إلى Docker + Compose، وقاعدة بيانات MariaDB أو MySQL، ويُفضَّل Redis للتخزين المؤقت للكائنات، ونطاق yourdomain.com مع شهادة SSL الخاصة به. خصّص بعض الضبط لـPHP (upload_max_filesize وmemory_limit) بحسب وسائطك وإضافاتك.

النشر خطوة بخطوة

  1. تركيب WordPress وMariaDB وRedis

    في ملف docker-compose.yml، صرِّح عن wordpress:php8.3-fpm أو wordpress:apache، وخدمة mariadb:11 وredis:alpine. احفظ wp-content وقاعدة البيانات في وحدات تخزين مُسمّاة، على شبكة Docker داخلية.

  2. إدخال بيانات قاعدة البيانات والأسرار

    مرّر WORDPRESS_DB_* وكلمات مرور قوية عبر متغيرات البيئة. أضِف مفاتيح الأمان (salts) المولَّدة من واجهة WordPress الرسمية في WORDPRESS_CONFIG_EXTRA.

  3. تشغيل WordPress وتثبيته

    ابدأ بـdocker compose up -d ثم افتح نطاقك لمعالج التثبيت. والأفضل: أتمِت العملية عبر WP-CLI (wp core install) للحصول على عمليات نشر قابلة للتكرار من موقع إلى آخر.

  4. وضع reverse proxy وSSL

    أعدّ Nginx/Caddy بـHTTPS أمام WordPress. اضبط client_max_body_size لعمليات الرفع، وفعِّل ضغط gzip/brotli والتخزين المؤقت للأصول الثابتة (الصور وCSS وJS) مع ترويسات Cache-Control طويلة الأمد.

  5. تفعيل التخزين المؤقت للكائنات عبر Redis

    ثبّت إضافة للتخزين المؤقت للكائنات (مثل Redis Object Cache)، ووجّهها إلى خدمة redis، وفعّلها: عندئذٍ تُخدَّم الاستعلامات المتكررة إلى قاعدة البيانات من الذاكرة، ما يخفّف العبء بشدة عن MariaDB.

  6. التحصين والنسخ الاحتياطي

    عطّل تحرير الملفات في لوحة الإدارة (DISALLOW_FILE_EDIT)، وحُدّ من محاولات تسجيل الدخول، وجدوِل نسخة احتياطية ليلية لـwp-content + نسخة SQL إلى تخزين كائنات بعيد.

  7. أول تسجيل دخول

    افتح رابط الموقع: يبدأ WordPress تثبيته الذي يستغرق خمس دقائق — اللغة، ثم عنوان الموقع، ثم إنشاء اسم المستخدم الخاص بك كمسؤول مع كلمة المرور والبريد الإلكتروني اللذين تختارهما. أكمل التثبيت دون تأخير، فالتثبيت غير المكتمل متروك لأول زائر يصل إليه.

للحصول على أداء ينافس أسرع المنصات المُدارة، أضِف تخزينًا مؤقتًا كاملًا للصفحات أمام PHP: إضافة تولّد ملفات HTML ثابتة يخدمها Nginx مباشرةً (عبر try_files)، أو وحدة FastCGI cache. عندئذٍ لا تلمس صفحاتك العامة PHP ولا MariaDB إطلاقًا، ما يتيح لخادم VPS متواضع استيعاب آلاف الزوار المتزامنين، مع إبقاء لوحة الإدارة وسلة الشراء (WooCommerce) خارج التخزين المؤقت.

تنبيه PHP بتاريخ 21/10/2026 (PHP2Shell): تحديث WordPress لا يصلح PHP

في 21 أكتوبر 2026 أصدر مشروع PHP نسخًا أمنية لثغرتين تتيحان تنفيذ شيفرة عن بُعد، هما CVE-2026-109618 وCVE-2026-109619. يكمن الإصلاح في PHP نفسها: النسخ المصحَّحة هي ‎8.5.12 و‎8.4.27 و‎8.3.36 و‎8.2.35. لذلك قد يكون WordPress محدَّثًا بالكامل (النواة والقوالب والإضافات) وهو يعمل مع ذلك على PHP معرَّضة للثغرة، لأن شاشة التحديثات في WordPress لا تلمس المفسِّر أبدًا. في المكدّس الذي يعرضه هذا المقال تقيم PHP داخل صورة Docker الخاصة بـWordPress: ما لم تسحب صورة أُعيد بناؤها على نسخة مصحَّحة وتُعِد إنشاء الحاوية، تبقى الثغرة مفتوحة. لتفاصيل الثغرتين اقرأ مقال php2shell-cve-2026-109618-109619-mettre-a-jour-php، ولإعادة بناء الصور مقال php2shell-docker-wordpress-reconstruire-images-php.

تحقّق ثم أصلح في خمس خطوات

  1. اقرأ نسخة PHP التي تُخدَّم فعلًا

    الأوثق هو WordPress نفسه: الأدوات > صحة الموقع > معلومات > الخادم تعرض نسخة PHP التي تنفّذ صفحاتك. وعلى خادم VPS بلا Docker احذر من الأمر php -v: فهو يسأل الملف التنفيذي لسطر الأوامر، وقد يختلف عن PHP-FPM الذي يخدم زوارك. اسأل الخدمة نفسها بالأمر php-fpm -v (أو ‎php-fpm8.3 -v على Debian وUbuntu).

  2. افحص النسخة داخل الحاوية

    مع Docker نفّذ docker compose exec wordpress php -v: تحمل الصورة نسخة PHP واحدة، فتصحّ النتيجة على FPM أو mod_php في الحاوية. قارنها بالنسخ المصحَّحة أعلاه مع البقاء في الفرع نفسه (يجب أن تبلغ ‎8.3.x النسخة ‎8.3.36 لا ‎8.4.27).

  3. اسحب الصورة المحدَّثة

    نفّذ docker compose pull && docker compose up -d. ينزّل pull آخر صورة منشورة لوسمك (مثل ‎wordpress:php8.3-fpm)، ويعيد up -d إنشاء الحاوية عليها. تحتفظ وحداتك المسمّاة بالمجلد wp-content وقاعدة البيانات. إن ظلّ php -v يعرض نسخة قديمة فالصورة المصحَّحة لم تُنشر بعد لذلك الوسم: عاود الفحص لاحقًا، أو انتقل إلى فرع PHP آخر إن كان موقعك يدعمه.

  4. أعد تشغيل PHP-FPM

    تحديث حزمة أو ملفات لا يغيّر الشيفرة المحمَّلة أصلًا في العمليات الجارية. على خادم تقليدي أعد تشغيل الخدمة بالأمر systemctl restart ‎php8.3-fpm (عدّل رقم النسخة)؛ ومع Docker يكفي إعادة إنشاء الحاوية، وإلا فنفّذ docker compose restart wordpress. إعادة التحميل (reload) وحدها أقل ضمانًا من إعادة التشغيل حين تريد تجديد كل العمليات العاملة.

  5. ابحث عن آثار استغلال

    التحديث يغلق الباب لكنه لا يخبرك هل دخل أحد من قبل. راجع سجلات الوصول والأخطاء في Nginx أو Apache (الأمر docker compose logs --since 72h wordpress مع Docker) بحثًا عن انهيارات عمليات PHP-FPM ورسائل نفاد الذاكرة المتكررة وطلبات غير معتادة كبيرة الحجم. وداخل wp-content اعرض ملفات .php المعدَّلة حديثًا بالأمر find wp-content -name '*.php' -mtime -7، خصوصًا تحت uploads حيث لا ينبغي أن يوجد أي سكربت. عند أدنى شك، استعد من نسخة احتياطية سليمة وغيّر كلمات المرور والـsalts.

  6. أتمتة الفحص عبر WP-CLI وcron

    لاحظ أن wp --info يعرض نسخة PHP لسطر الأوامر لا نسخة PHP-FPM: احتفظ به للسكربتات لا للحكم على التعرّض عبر الويب. بدلًا من ذلك جدول مهمة cron أسبوعية تنفّذ docker compose pull ثم تقارن ناتج docker compose exec wordpress php -v بالنسخة المتوقعة وتراسلك بالبريد عند أي اختلاف. وهكذا لا يعود التنبيه الأمني القادم لـPHP معتمدًا على ذاكرتك.

  7. تحقّق مرة أخرى

    افتح صحة الموقع مجددًا وأعد php -v داخل الحاوية: يجب أن يعرض الاثنان نسخة مصحَّحة. دوّن التاريخ في سجل الصيانة، وكرّر الإجراء مع كل إصدار أمني جديد لـPHP.

تخفيف جزئي وليس إصلاحًا

بالنسبة إلى CVE-2026-109619 يوصي إشعار PHP بتعطيل ‎session.upload_progress.enabled في ملف ‎php.ini أو في مجمّع FPM ثم إعادة تشغيل كل العمليات العاملة؛ ولا يكفي استخدام ini_set() أو ‎.user.ini. يخفّض ذلك التعرّض ريثما تجدول التحديث، لكن تحديث PHP وحده يصلح الثغرتين فعلًا.

الوثائق الرسمية

للإعداد المتقدّم والخيارات الخاصة بالأداة، ارجع إلى الوثائق الرسمية لـWordPress. يغطّي هذا الدليل النشر على خادم VPS؛ وتبقى وثائق الناشر المرجعَ للضبط الدقيق والترقيات الكبرى وحالات الاستخدام الخاصة.

WordPress سريع، على خادم VPS الخاص بك

يمنحك VPS Cloud من ServOrbit موارد محدّدة لكل عرض وأقراص SSD وDocker من أجل WordPress أسرع بكثير من الاستضافة المشتركة. قالب مُحسَّن مع Redis + cache مضمَّن.