[{"data":1,"prerenderedAt":252},["ShallowReactive",2],{"seo-verification":3,"blog-php2shell-docker-إعادة-بناء-صور-php-ووردبريس-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-php2shell-docker-إعادة-بناء-صور-php-ووردبريس-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":190,"ctaBody":191,"ctaButton":192,"ctaUrl":193,"relatedPosts":194},501,"php2shell-docker-إعادة-بناء-صور-php-ووردبريس",{"fr":12,"en":13,"ar":10,"es":14},"php2shell-docker-wordpress-reconstruire-images-php","php2shell-docker-rebuild-php-wordpress-images","php2shell-docker-reconstruir-imagenes-php-wordpress","PHP2Shell وDocker: أعيدوا بناء صور PHP وWordPress","تحديث WordPress أو Laravel لا يغيّر PHP داخل صورة Docker. أثبتوا الإصدار المخدَّم، واعرفوا أي الوسوم تحرّكت، وأعيدوا البناء دون فخاخ.",12,0,false,"2026-10-23T00:00:00+00:00","2026-10-23T23:43:01+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fphp2shell-docker-wordpress-reconstruire-images-php-poster.svg",{"categorySlug":34,"appSlug":35},"أنظمة-إدارة-المحتوى-والمواقع","wordpress","حدّثتم WordPress الأسبوع الماضي وأعدتم تشغيل الحاوية، وتظنون أنكم محميون من PHP2Shell. هذا غير مؤكد: داخل الحاوية يعيش PHP في الصورة لا في التطبيق، وإعادة التشغيل تستخدم الصورة الموجودة أصلاً على القرص. صدرت إصلاحات PHP 8.5.12 و8.4.27 و8.3.36 و8.2.35 في 21 أكتوبر 2026. يشرح هذا الدليل كيف تثبتون، حاوية بحاوية، أي إصدار من PHP يجيب فعلاً، ثم كيف تسحبون الصورة غير المصحَّحة أو تعيدون بناءها في WordPress وNextcloud وLaravel Octane وصورة خاصة بكم.",[38,42,52,68,71,86,89,127,130,145,148,151,160,187],{"type":39,"title":40,"body":41},"h2","لماذا لا يغيّر تحديث التطبيق إصدار PHP","تحديث WordPress أو الأمر `composer update` أو إصدار جديد من Nextcloud يستبدل ملفات التطبيق. أما مفسّر PHP فهو برنامج مثبَّت داخل صورة Docker، مثل نظام Debian أو Alpine المحيط به. ما دامت الصورة لم تتغير، لم يتغير PHP، مهما بلغ عدد تحديثات التطبيق.\n\nالفخ الثاني هو إعادة التشغيل. الأمر `docker restart` يعيد تشغيل الحاوية القائمة، أي الصورة نفسها. والأمر `docker compose up -d` لا يبحث عن إصدار أحدث إذا كانت صورة بهذا الاسم موجودة أصلاً على الخادم: فهو يعيد استخدام النسخة المحلية. وحده `pull` أو `build --pull`، متبوعاً بإعادة إنشاء الحاوية، يغيّر المفسّر.\n\nتجدون الثغرتين وأوامر `apt` و`dnf` في \u003Ca href=\"\u002Fblog\u002Fphp2shell-cve-2026-109618-109619-mettre-a-jour-php\">دليلنا لتحديث PHP\u003C\u002Fa>. موضوعنا هنا صورة Docker والدليل على أنها الصورة الصحيحة.",{"type":43,"title":44,"items":45},"ul","ستة عناصر يجب ألا تُخلط",[46,47,48,49,50,51],"**صورة السجل** — ما يقدّمه Docker Hub أو سجلكم الخاص اليوم تحت وسم مثل `php:8.3-fpm`. الوسم متحرك: يشير إلى محتوى مختلف بعد كل إعادة بناء.","**الصورة المحلية** — النسخة الموجودة على خادمكم، وتظهر بالأمر `docker image ls`. لا تتغير إلا إذا سحبتم صورة أو بنيتموها.","**الحاوية العاملة** — تحتفظ بمعرّف الصورة التي أُنشئت منها، حتى لو صارت صورة أحدث تحمل الاسم نفسه.","**العملية التي تجيب** — PHP-FPM أو Apache مع `mod_php` أو FrankenPHP. هي المكشوفة للعالم، والأمر `php -v` لا يستجوبها.","**الخدمات الأخرى** — عامل الطوابير والمجدول وحاوية `cli` للصيانة: لكل منها صورته، وبالتالي إصدار PHP الخاص به.","**ذاكرة البناء المؤقتة** — طبقة `FROM` محفوظة قد تعيد القاعدة القديمة دون أن يظهر أي خطأ.",{"type":53,"title":54,"steps":55},"steps","قارنوا السجل والصورة المحلية والحاوية",[56,59,62,65],{"title":57,"body":58},"اعرضوا الصور المحلية وتواريخها","`docker image ls php` (أو `wordpress` أو `nextcloud`). يبيّن العمود `CREATED` متى بُنيت الصورة. صورة `php:8.3-fpm` أُنشئت قبل 21 أكتوبر 2026 لا تحتوي الإصلاح.",{"title":60,"body":61},"اقرأوا صورة كل حاوية","يعرض `docker ps` في العمود `IMAGE` الوسم المطلوب عند الإنشاء. وللحصول على المعرّف الحقيقي للصورة المستعملة، استجوبوا الحاوية: `docker inspect --format '{{.Image}}' \u003Cالحاوية>`.",{"title":63,"body":64},"قارنوا مع الصورة الموجودة على القرص","`docker image inspect --format '{{.Id}}' php:8.3-fpm` يعيد معرّف الصورة التي تحمل هذا الاسم اليوم. إن اختلف عن معرّف الحاوية، فالحاوية تعمل على صورة أقدم من التي على القرص: لم يُعد إنشاؤها بعد آخر سحب.",{"title":66,"body":67},"قارنوا مع السجل","ينتهي `docker pull php:8.3-fpm` بسطر `Status: Downloaded newer image for …` عند وصول صورة أحدث، أو `Status: Image is up to date for …` في غير ذلك. في الحالة الثانية، إما أن نسختكم هي الأحدث فعلاً، وإما أن الوسم لم يُعَد نشره بعد: قارنوه بتاريخ الوسم في Docker Hub.",{"type":39,"title":69,"body":70},"اقرأوا الإصدار الذي يخدمه الويب فعلاً","يستجوب `php -v` برنامج سطر الأوامر، لا العملية التي تجيب عن الطلبات. والثابت `PHP_SAPI` يبيّن أيّهما يتكلم: `cli` في سطر الأوامر، و`fpm-fcgi` مع PHP-FPM، و`apache2handler` مع Apache وmod_php. في صورة واحدة يتطابق الإصداران غالباً. ويظهر الفرق في ثلاث حالات شائعة مع Docker: الأمر `docker compose run` يشغّل حاوية جديدة، أي من أحدث صورة محلية، بينما خدمة الويب ما زالت على القديمة؛ أو حاوية `cli` للصيانة مبنية على وسم غير وسم خدمة الويب؛ أو وكيل عكسي يحوّل الطلبات إلى حاوية غير التي تفحصونها.\n\nيبقى الطلب عبر HTTP أوثق دليل: يسلك طريق الزائر ويقرأ `PHP_VERSION` من العملية التي تجيب. ويُفحص ملف FPM التنفيذي بالأمر `docker exec \u003Cالحاوية> php-fpm -v` استكمالاً.",{"type":53,"title":72,"steps":73},"أثبتوا الإصدار المخدَّم، خدمة بخدمة",[74,77,80,83],{"title":75,"body":76},"ضعوا ملف اختبار في المجلد المخدَّم","مثال مع خدمة `wordpress` من الصورة الرسمية، ومجلد الويب فيها `\u002Fvar\u002Fwww\u002Fhtml` (كيّفوا الخدمة والمسار مع منظومتكم): `docker compose exec wordpress sh -c 'echo \"\u003C?php echo PHP_VERSION, \\\" \\\", PHP_SAPI;\" > \u002Fvar\u002Fwww\u002Fhtml\u002Fv-check.php'`",{"title":78,"body":79},"استعلموا عنه عبر HTTP ثم احذفوه فوراً","`curl -s https:\u002F\u002Fyour-domain.com\u002Fv-check.php` ثم `docker compose exec wordpress rm \u002Fvar\u002Fwww\u002Fhtml\u002Fv-check.php`. يعطي الجواب الإصدار متبوعاً بـ SAPI. قارنوه بالإصدارات المصحَّحة: 8.5.12 أو 8.4.27 أو 8.3.36 أو 8.2.35 بحسب الفرع. رقم أدنى لفرعكم يعني أن الإصلاح غير موجود.",{"title":81,"body":82},"افحصوا ملف FPM التنفيذي في الحاوية","`docker exec \u003Cالحاوية> php-fpm -v` يعرض إصدار وSAPI للملف التنفيذي لـ FPM في تلك الحاوية بعينها. مع صورة Apache يكفي طلب HTTP في الخطوة السابقة: فـ Apache هو الذي يحمّل `mod_php`.",{"title":84,"body":85},"لا تثقوا في docker compose run","ينشئ `docker compose run` حاوية جديدة من الصورة المحلية. وقد يعلن الإصدار المصحَّح بينما حاوية الموقع لم تتحرك. افحصوا دائماً الحاوية التي تستقبل الزيارات.",{"type":39,"title":87,"body":88},"الوسوم المتحركة والوسوم المثبَّتة: ما الذي يتقدم وحده","وسم الفرع مثل `php:8.3-fpm` يتقدم عند السحب التالي: فيشير حينها إلى الإصدار المصحَّح. والوسم الدقيق مثل `php:8.3.36-fpm` يبقى على إصداره، والإشارة بالبصمة (`@sha256:…`) لا تتحرك أبداً. توثيق `docker image pull` صريح: مع البصمة لا يجلب Docker أي إعادة بناء، بما فيها إصلاحات الأمان، حتى تغيّروا البصمة بأنفسكم.\n\nوصلت الوسوم المصحَّحة للصورة الرسمية `php` إلى Docker Hub خلال نهار 21 أكتوبر 2026 ومسائه (بالتوقيت العالمي)، لنسخ FPM من الفروع 8.5 و8.4 و8.3 و8.2. أما صور WordPress الرسمية `php8.3-fpm` و`php8.4-fpm` و`php8.3-apache` فأُعيد نشرها في 22 أكتوبر 2026 فجراً (بالتوقيت العالمي)، وصور Nextcloud في اليوم نفسه. فالصورة المسحوبة قبل هذه اللحظات هي القديمة، ولو تطابق الاسم. تحققوا من هذه التواريخ في صفحة كل وسم. ويتلقى الفرع 8.2 إصلاحه لكنه ينتهي عمره في 31 ديسمبر 2026: خططوا لاستبداله.",{"type":90,"title":91,"headers":92,"rows":96},"comparison","أي كتابة تتقدم وأيها يبقى مجمَّداً",[93,94,95],"في ملف compose أو Dockerfile","هل يتقدم عند السحب التالي؟","للحصول على PHP المصحَّح",[97,101,105,108,112,115,119,123],[98,99,100],"`php:8.3-fpm`","نعم، يُعاد نشر الوسم","`pull` أو `build --pull` ثم إعادة إنشاء الحاوية",[102,103,104],"`php:8.3.36-fpm`","لا، إصدار دقيق","مصحَّح أصلاً؛ غيّروه يدوياً عند الإصلاح التالي",[106,103,107],"`php:8.3.\u003Cn>-fpm` مع n أقل من 36","انتقلوا إلى وسم مصحَّح ثم أعيدوا البناء وإنشاء الحاوية",[109,110,111],"`wordpress:php8.3-fpm`","نعم، تعيد الجهة المشرفة نشره","`pull` ثم إعادة إنشاء الخدمة",[113,114,111],"`wordpress:\u003Cx.y>-php8.3-fpm`","نعم بالنسبة إلى PHP: تعيد الجهة المشرفة نشره",[116,117,118],"`php:8.3-fpm@sha256:…`","أبداً","استبدلوا البصمة ببصمة صورة مصحَّحة",[120,121,122],"`FROM php:8.3-fpm` في Dockerfile الخاص بكم","فقط إذا بنيتم مع `--pull`","`build --pull` ثم إعادة إنشاء الحاوية",[124,125,126],"`image: myregistry\u002Fapp:latest` (صورتكم)","لا، هو آخر بناء لكم","أعيدوا البناء والنشر ثم السحب وإعادة الإنشاء",{"type":39,"title":128,"body":129},"الصورة الخاصة: التسلسل وما يغيّره كل خيار","لصورة تبنونها بأنفسكم انطلاقاً من `FROM php:8.3-fpm`، يتألف التسلسل من ثلاثة أوامر: `docker compose build --pull --no-cache`، ثم `docker compose up -d --force-recreate`، ثم فحص الإصدار المخدَّم. وكل منها يعالج فخاً محدداً.\n\nالخيار `--pull` هو الذي يغيّر إصدار PHP: يطلب من Docker البحث عن إصدار أحدث من الصورة الأساسية بدل إعادة استعمال نسخة الخادم. من دونه يُحَلّ `FROM` بالنسخة المحلية فينجح البناء بالمفسّر القديم دون أي رسالة.\n\nيعيد `--no-cache` تنفيذ كل الطبقات، ومنها `apt-get` و`composer install`، فيجدد مكتبات النظام والاعتماديات أيضاً. وهو غير لازم لتغيير PHP، لأن الطبقات التي تلي الصورة الأساسية تُعاد بناءً من تلقاء نفسها عندما تتغير. ويفيد حين تثبّت طبقة محفوظة حزمة تريدون تجديدها.\n\nيعيد `--force-recreate` إنشاء الحاويات حتى لو رأى Compose أن إعدادها وصورتها لم يتغيرا. وبذلك يزول الشك في ما يعمل فعلاً.\n\nإعادة بناء صوركم مع كل إصلاح جدول يجب الالتزام به لا إجراء لمرة واحدة. وعلى VPS بصلاحية root يكون هذا الجدول لكم، ويضع \u003Ca href=\"\u002Fblog\u002Fdemarrer-avec-docker-vps\">دليلنا لتثبيت Docker على VPS\u003C\u002Fa> أساس العمل.",{"type":53,"title":131,"steps":132},"أعيدوا بناء صورة خاصة وإنشاءها",[133,136,139,142],{"title":134,"body":135},"تأكدوا أن الوسم الأساسي مصحَّح","افتحوا صفحة وسمكم الأساسي في Docker Hub وتأكدوا أنه نُشر ابتداءً من 21 أكتوبر 2026. وإن كان `FROM` يشير إلى إصدار دقيق أقدم، فغيّروه أولاً.",{"title":137,"body":138},"أعيدوا البناء مع سحب القاعدة","`docker compose build --pull --no-cache`. دوّنوا الإصدار قبل العملية بواسطة ملف الاختبار، لتحصلوا على ما قبل وما بعد.",{"title":140,"body":141},"أعيدوا إنشاء الحاويات","`docker compose up -d --force-recreate`. ويمكن لأمر واحد أن يجمع الخطوات الثلاث: `docker compose up -d --build --pull always`. أعيدوا إنشاء كل خدمة تستعمل الصورة: الويب وعامل الطوابير والمجدول.",{"title":143,"body":144},"أثبتوا النتيجة","أعيدوا تشغيل ملف الاختبار، ثم قارنوا المعرّف الذي يعطيه `docker inspect --format '{{.Image}}' \u003Cالحاوية>` بمعرّف `docker image ls`. قد تحمل الصورة القديمة والجديدة الاسم نفسه: المعرّف وجواب HTTP وحدهما حجّة.",{"type":39,"title":146,"body":147},"WordPress وNextcloud الرسميان: PHP يأتي من الوسم","يجمع وسم WordPress بين إصدار WordPress وإصدار PHP ونسخة، مثل `php8.3-apache` أو `php8.3-fpm`. فاسم الوسم هو الذي يحدد فرع PHP. وتغيير إصدار WordPress، أو ترك التحديثات التلقائية تعمل داخل وحدة البيانات، لا يمسّ هذا الفرع. وللحصول على PHP المصحَّح يجب سحب الوسم من جديد بالأمر `docker compose pull` ثم إعادة إنشاء الخدمة. ونسخة Apache هي الافتراضية وتحمّل PHP بصيغة `mod_php`: وهي التي يعدّها مشروع PHP الأكثر تعرضاً، مع استغلال مُثبَت قبل تنفيذ أي شيفرة تطبيق. عالجوها بأولوية.\n\nيتبع Nextcloud المبدأ نفسه بنسختين: `apache` تضم Apache كاملاً، و`fpm` تحتاج خادم ويب أمامها. ويصف توثيق الصورة التحديث بأنه استبدال: اسحبوا الصورة، وارموا الحاوية القديمة، وشغّلوا الجديدة. شيفرة Nextcloud وبياناتكم تعيش في الوحدة `\u002Fvar\u002Fwww\u002Fhtml` التي لا يمسحها إعادة إنشاء الحاوية. راجعوا أيضاً \u003Ca href=\"\u002Fblog\u002Fheberger-wordpress\">دليلنا لاستضافة WordPress على VPS\u003C\u002Fa> و\u003Ca href=\"\u002Fblog\u002Fheberger-nextcloud\">دليل Nextcloud\u003C\u002Fa>.",{"type":39,"title":149,"body":150},"Laravel Octane وFrankenPHP: المحرك داخل الصورة","مع Octane وFrankenPHP لا يوجد PHP-FPM: خادم التطبيق يضمّ المفسّر في داخله. وصور FrankenPHP الرسمية مبنية على صور PHP الرسمية، ووسمها يجمع إصدار FrankenPHP وإصدار PHP والنظام، بالشكل `dunglas\u002Ffrankenphp:\u003Cversion>-php8.4-trixie`. يعيد المشروع بناءها مع كل إصدار، ويومياً عند الساعة 4 بالتوقيت العالمي إذا وُجدت صور PHP رسمية جديدة. ولا يصلكم الإصلاح في `FROM dunglas\u002Ffrankenphp` إلا إذا أعدتم بناء صورتكم مع `--pull`.\n\nفخ Octane الخاص هو العامل. يشغّل Octane التطبيق مرة واحدة ويبقيه في الذاكرة: والأمر `php artisan octane:reload` يعيد تشغيل العمال برفق لتحميل الشيفرة المنشورة. هذا هو الإجراء الصحيح بعد نشر الشيفرة، لكنه لا يستبدل المفسّر الذي يبقى مفسّر الصورة العاملة. والأمر ذاته مع `kill -USR2` أو إعادة تحميل PHP-FPM في الحاوية القديمة: فهما يعيدان تشغيل الملفات نفسها، ملفات الصورة القديمة. ولتغيير PHP أعيدوا إنشاء الحاوية، بما فيها حاويات عمال الطوابير والمجدول. راجعوا \u003Ca href=\"\u002Fblog\u002Fdeployer-laravel-vps-octane\">دليلنا لـ Laravel Octane على VPS\u003C\u002Fa>.",{"type":43,"title":152,"items":153},"فخاخ البنية التحتية التي تعيد الصورة القديمة",[154,155,156,157,158,159],"**ذاكرة البناء في CI** — قد تعيد ذاكرة الطبقات المستعادة طبقة `FROM`. أضيفوا `--pull` إلى أمر البناء في CI، أو أبطلوا الذاكرة لهذه الخطوة.","**سجل خاص أو مرآة** — إذا كانت خوادمكم تسحب من سجل داخلي ينسخ الصور يدوياً أو بمهمة مجدولة، فتأكدوا أنه نسخ الوسم. وإلا أجاب `pull` بـ `Image is up to date` بينما أعادت الجهة المشرفة النشر.","**منظومة Portainer أو أداة تنسيق** — تحديث المنظومة لا يعيد دائماً سحب الصورة. فعّلوا خيار إعادة السحب قبل إعادة النشر إن وفّرته أداتكم.","**`pull_policy: missing`** — هي القيمة الافتراضية في Compose دون قسم `build`: لا يسحب إلا إذا غابت الصورة عن الخادم. والوسم `latest` وحده يُسحب في كل الحالات. استعملوا `always` أو `daily` و`weekly` لفحص السجل على فترات ثابتة.","**خدمة منسية** — الويب والعامل والمجدول وحاوية `cli` المبنية من ملفات Dockerfile منفصلة لكل منها قاعدته: صحّحوها جميعاً.","**حاوية يتيمة** — أمر `docker run` منسي أو مشروع Compose آخر قد يظل يجيب على منفذ. اعرضوا كل ما يعمل بالأمر `docker ps`.",{"type":90,"title":161,"headers":162,"rows":166},"استكشاف الأخطاء: ما تلاحظونه وما يعنيه",[163,164,165],"ما تلاحظونه","السبب المحتمل","العلاج",[167,171,175,179,183],[168,169,170],"يعرض `pull` الرسالة `Status: Image is up to date` لكن الإصدار يبقى قديماً","لم يُعَد نشر الوسم بعد، أو تسحبون إصداراً دقيقاً أو بصمة","قارنوا بتاريخ الوسم في Docker Hub ثم انتقلوا إلى وسم مصحَّح",[172,173,174],"`up -d` لا يغيّر شيئاً بعد السحب","لم يُعَد إنشاء الحاوية القائمة","`docker compose up -d --force-recreate` ثم قارنوا معرّفات الصور",[176,177,178],"ينتهي البناء في ثوانٍ مع القاعدة المحفوظة أصلاً","غياب `--pull`: أُعيد استعمال قاعدة الخادم","`docker compose build --pull` مع `--no-cache` إذا لزم تجديد حزم النظام أيضاً",[180,181,182],"يعلن `docker compose run` الإصدار المصحَّح والموقع يجيب بالقديم","ينشئ `run` حاوية جديدة ولم تُعَد إنشاء خدمة الويب","افحصوا عبر HTTP الحاوية التي تستقبل الزيارات ثم أعيدوا إنشاءها",[184,185,186],"الإصدار صحيح لكن عاملاً يتصرف كما كان","عامل طوابير أو Octane ما زال يعمل في حاوية قديمة","أعيدوا إنشاء كل الحاويات التي تستعمل الصورة، لا خدمة الويب فقط",{"type":39,"title":188,"body":189},"التوثيق الرسمي","المصادر: \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Farchive\u002F2026.php\">إعلانات PHP للأمان والإصدارات\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fdocs.docker.com\u002Freference\u002Fcli\u002Fdocker\u002Fcompose\u002Fup\u002F\">docker compose up\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fdocs.docker.com\u002Freference\u002Fcli\u002Fdocker\u002Fcompose\u002Fbuild\u002F\">docker compose build\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fdocs.docker.com\u002Freference\u002Fcompose-file\u002Fservices\u002F#pull_policy\">السمة pull_policy\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fdocs.docker.com\u002Freference\u002Fcli\u002Fdocker\u002Fimage\u002Fpull\u002F\">docker image pull\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002F_\u002Fphp\">صورة php\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002F_\u002Fwordpress\">صورة wordpress\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnextcloud\u002Fdocker\">صورة Nextcloud\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Ffrankenphp.dev\u002Fdocs\u002Fdocker\u002F\">FrankenPHP مع Docker\u003C\u002Fa>، و\u003Ca href=\"https:\u002F\u002Flaravel.com\u002Fdocs\u002F12.x\u002Foctane\">Laravel Octane\u003C\u002Fa>.","VPS تتحكمون فيه بصوركم وجدولها","على VPS من ServOrbit.com تملكون صلاحية root وعنوان IPv4 مخصصاً: صور Docker ووسومها وموعد كل إعادة بناء بيدكم. ويوجد كذلك خيار لإدارة VPS، وتُوصَف شروطه في صفحة العرض.","اكتشفوا خوادم VPS","\u002Fvps-cloud",[195,212,232],{"id":196,"slug":197,"slugs":198,"title":202,"excerpt":203,"readTime":204,"views":205,"isPinned":19,"publishedAt":206,"updatedAt":207,"category":208,"categories":209,"featuredImage":30,"bgImage":31,"posterImage":211,"relatedSolution":30},489,"php2shell-cve-2026-109618-109619-تحديث-php",{"fr":199,"en":200,"ar":197,"es":201},"php2shell-cve-2026-109618-109619-mettre-a-jour-php","php2shell-cve-2026-109618-109619-patch-php","php2shell-cve-2026-109618-109619-actualizar-php","PHP2Shell: إصلاح CVE-2026-109618 وCVE-2026-109619","PHP2Shell: ثغرتان حرجتان في PHP قابلتان للاستغلال دون حساب. الإصدارات المصحَّحة، وأوامر التحديث لكل نظام، والحلول المؤقتة.",9,1,"2026-10-22T00:00:00+00:00","2026-10-22T01:57:44+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[210],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fphp2shell-cve-2026-109618-109619-mettre-a-jour-php-poster.svg",{"id":213,"slug":214,"slugs":215,"title":219,"excerpt":220,"readTime":221,"views":18,"isPinned":19,"publishedAt":222,"updatedAt":21,"category":223,"categories":228,"featuredImage":30,"bgImage":31,"posterImage":230,"relatedSolution":231},73,"استضافة-wordpress-على-خادم-vps-الخاص-بك",{"fr":216,"en":217,"ar":214,"es":218},"heberger-wordpress","host-wordpress-on-your-own-vps","alojar-wordpress-en-un-vps","استضافة WordPress على خادم VPS الخاص بك","استضِف WordPress على خادم VPS الخاص بك لأقصى أداء وتحكّم: Docker وMariaDB والتخزين المؤقت (cache) وreverse proxy وSSL.",7,"2026-04-08T00:00:00+00:00",{"id":221,"name":224,"slug":225,"color":226,"icon":227},"الاستضافة الذاتية","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[229],{"id":221,"name":224,"slug":225,"color":226,"icon":227},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":225,"appSlug":35},{"id":233,"slug":234,"slugs":235,"title":238,"excerpt":239,"readTime":240,"views":18,"isPinned":19,"publishedAt":241,"updatedAt":242,"category":243,"categories":249,"featuredImage":30,"bgImage":31,"posterImage":251,"relatedSolution":30},436,"laravel-octane-على-vps-frankenphp-docker-traefik",{"fr":236,"en":237,"ar":234,"es":237},"deployer-laravel-vps-octane","laravel-octane-vps-frankenphp-docker-traefik","‎Laravel Octane على ‎VPS: ‎FrankenPHP و‎Docker و‎Traefik","الانتقال من ‎PHP-FPM إلى ‎Laravel Octane مع ‎FrankenPHP في ‎Docker Compose خلف ‎Traefik، وفهم تغييرات دورة حياة الطلبات لتجنب تسريبات الذاكرة في الإنتاج.",11,"2026-10-12T00:00:00+00:00","2026-10-13T14:10:28+00:00",{"id":244,"name":245,"slug":246,"color":247,"icon":248},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[250],{"id":244,"name":245,"slug":246,"color":247,"icon":248},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-octane-poster.svg",1792799277214]