إذا كانت شركتك تشغّل موقعًا أو متجرًا أو أداة داخلية مبنية على PHP، فتحديثات الأمان ليست حدثًا عارضًا. ففي 2026 نشر PHP إصدارات أمنية في مايو ويونيو ويوليو (مرتين) وسبتمبر وأكتوبر، وتبعته ديبيان بحزم php8.4 محدّثة لديبيان 13 في 8 مايو و4 يوليو و31 يوليو و25 سبتمبر و21 أكتوبر. ولا يستطيع فريق صغير أن يتعامل مع كل تحديث منها كأنه يبدأ من الصفر. ما ينجح فعلًا هو روتين شهري ثابت يعرفه الجميع، مع مسار سريع للإصدارات الحرجة النادرة. يعرض هذا الدليل الأمرين للخوادم العاملة بديبيان أو أوبونتو.
1. اعرف ما تشغّله
يبدأ الترقيع بالجرد. دوّن لكل خادم إصدار نظام التشغيل، وكل إصدارات PHP المثبتة، والمواقع التي يستخدمها كل مجمّع PHP-FPM، والتطبيقات المبنية فوقها مثل ووردبريس وLaravel ودروبال. هذه الأوامر تجمع أغلب ذلك:
cat /etc/os-release
dpkg -l 'php*' | grep '^ii'
ls /run/php/
systemctl list-units 'php*-fpm.service'ودوّن حالة الدعم أيضًا. تأتي ديبيان 13 (trixie) مع PHP 8.4 وتتلقى إشعارات أمان ديبيان (DSA). وتأتي ديبيان 12 (bookworm) مع PHP 8.2، وقد انتهى دعمها الاعتيادي في يوليو 2026، وصارت إصلاحاتها تأتي من فريق Debian LTS في صورة إشعارات DLA حتى 30 يونيو 2028. أما ديبيان 11 (bullseye) فخرجت من الدعم الممتد في 31 أغسطس 2026، والخوادم التي ما زالت عليها يجب ترقيتها لا ترقيعها. وعلى مستوى المصدر يتلقى PHP 8.2 إصلاحات أمنية حتى 31 ديسمبر 2026، بينما PHP 8.1 منتهي الدعم أصلًا.
2. اشترك في المصادر الصحيحة
- إصدارات PHP: القائمة البريدية منخفضة الحجم
php-announce(يكون الاشتراك بإرسال بريد إلىphp-announce+subscribe@lists.php.net)، أو موجز الأخبارhttps://www.php.net/feed.atom. - ديبيان 13: قائمة debian-security-announce (DSA).
- ديبيان 12: قائمة debian-lts-announce (DLA).
- أوبونتو: إشعارات أمان أوبونتو. تنقل أوبونتو الإصلاحات إلى نسخها الخاصة من PHP، فقارن بإشعاراتها لا بأرقام إصدارات php.net.
- التطبيقات: إعلانات الإصدارات الخاصة بنظام إدارة المحتوى أو إطار العمل، والأمر
composer auditللمشاريع المبنية على Composer.
وجّه هذه المصادر إلى صندوق بريد أو قناة مشتركة يقرؤها أحد فعلًا، لا إلى بريد شخص واحد.
3. الروتين الشهري
اختر يومًا ثابتًا، مثل أول ثلاثاء من كل شهر، ونافذة زمنية هادئة. ثم:
- راجع ما أُعلن منذ الشهر الماضي، ودوّن إصدارات الحزم المصحَّحة من كل إشعار.
- خذ نسخة احتياطية من الملفات وقواعد البيانات، وتأكد أن نسخة الشهر الماضي تُستعاد فعلًا، فالنسخة التي لم تجرّب استعادتها أمنية لا خطة.
- رقّع البيئة التجريبية أولًا إن وجدت، ونفّذ عليها فحوص الخطوة 5.
- حدّث الإنتاج:
sudo apt update
apt list --upgradeable 'php*'
sudo apt upgradeوإذا أردت في هذه النافذة تحديث حزم إصدار واحد من PHP فقط، فرقِّ الحزم المثبتة منه وحدها:
sudo apt install --only-upgrade $(dpkg-query -W -f='${Package}\n' 'php8.4*')مع الخيار --only-upgrade يرقّي apt الحزم المثبتة مسبقًا فقط ويتجاهل غيرها.
- أعد التشغيل وتحقق:
sudo systemctl restart php8.4-fpm
systemctl is-active php8.4-fpm
apt policy php8.4-fpm # Installed should equal the advisory's fixed version
sudo needrestart -r l # list services still using old librariesوأعد تشغيل Apache أيضًا إذا كان أحد المواقع يستخدم وحدة Apache الخاصة بـ PHP (sudo systemctl restart apache2). أما needrestart من الحزمة التي تحمل الاسم نفسه فيفحص الخدمات التي تحتاج إلى إعادة تشغيل بعد ترقية المكتبات، والخيار -r l يكتفي بسردها. بعد ذلك افتح كل موقع، وسجّل الدخول، وأرسل نموذجًا، وأكمل عملية شراء تجريبية إن كنت تبيع عبر الإنترنت، وراجع سجلات أخطاء PHP وخادم الويب بحثًا عن أخطاء جديدة.
- افحص طبقة التطبيق: تحديثات النواة والإضافات والقوالب في نظام إدارة المحتوى، والأمر
composer audit --lockedلمشاريع Composer. - سجّل التاريخ وإصدارات الحزم قبل التحديث وبعده وأي أمر غير معتاد. ثلاثة أسطر في مستند مشترك تكفي، وتجعل مراجعة الشهر القادم مقارنة سريعة.
4. المسار السريع للإصدارات الحرجة
بعض الإصدارات لا تحتمل انتظار النافذة الشهرية. ففي 21 أكتوبر 2026 نشرت ديبيان الإشعار DSA-6574-1 لـ PHP 8.4 في ديبيان 13، ونشر فريق LTS الإشعار DLA-4848-1 لـ PHP 8.2 في ديبيان 12، ويصفان ثغرات قد تؤدي إلى تنفيذ شيفرة عشوائية، ويشرحها بالتفصيل مقالنا عن تلك الثغرات في PHP. اتفقوا مسبقًا على ما يستدعي المسار السريع، مثل تصنيف المورّد للثغرة بأنها حرجة، أو إمكانية تنفيذ شيفرة عن بُعد، أو تأكيد استغلالها، وعلى من يحق له ترقيع الإنتاج خارج النافذة. وفي هذه الحالات نفّذ الخطوات 2 و4 و5 في اليوم نفسه، واستكمل الباقي لاحقًا.
5. خطط للتراجع قبل أن تحتاجه
- فضّل الإصلاح إلى الأمام. التراجع عن تحديث أمني يعيد الثغرة، وأغلب المشكلات بعد ترقيع PHP تتعلق بالإعدادات أو الإضافات ويمكن إصلاحها في مكانها.
- اعرف هل خفض إصدار الحزمة ممكن أصلًا. يعرض الأمر
apt list --all-versions php8.4-fpmالإصدارات التي ما زالت مستودعاتك تقدمها، وكثيرًا ما لا يتوفر إلا الأحدث. وتثبيت إصدار محدد بالصيغةapt install package=versionقد يخفض إصدارات الحزم، فاستخدمه بحذر. - لا تجمّد الحزم إلا لفترة قصيرة. يمنع الأمر
sudo apt-mark hold php8.4-fpmترقية الحزمة، فاستخدمه فقط ريثما تُحل مشكلة محددة، وتابعه، وألغه بالأمرapt-mark unhold. - اجعل الاستعادة جاهزة. التراجع الموثوق لموقع معطل هو استعادة الملفات وقاعدة البيانات من النسخة المأخوذة في الخطوة 2.
أتمتة جزء من العمل
تستطيع أداة unattended-upgrades في ديبيان تثبيت تحديثات الأمان يوميًا، وهذا يقلّص مدة التعرض لكنه لا يغني عن الروتين: فما زال على أحد أن يتأكد من أن PHP-FPM أُعيد تشغيله على الإصدار الجديد، وأن المواقع تعمل، وأن تحديثات طبقة التطبيق قد أُنجزت.
ما الذي ينبغي فعله
- اكتب جردًا للخوادم وإصدارات PHP والمجمّعات والتطبيقات، وأبقه محدّثًا.
- اشترك بصندوق بريد مشترك في قائمة php-announce وفي قائمة إشعارات توزيعتك.
- حدّد يومًا شهريًا للترقيع واتبع الخطوات نفسها كل مرة: مراجعة، ونسخة احتياطية، وبيئة تجريبية، وتحديث، وإعادة تشغيل، وتحقق، وتسجيل.
- حدّد ما يستدعي الترقيع في اليوم نفسه ومن يحق له تنفيذه.
- انقل الخوادم عن ديبيان 11 وعن PHP 8.1 وما قبله، وخطط لبدائل PHP 8.2 قبل 31 ديسمبر 2026.
على خادم سكايلاين كلاود الافتراضي في الرياض تقع مسؤولية ترقيع برمجيات الخادم عليك، ولا تتوفر لقطات أو نسخ احتياطية تديرها المنصة، فالنسخة الاحتياطية في الخطوة 2 يجب أن تكون نسختك أنت، بينما تتضمن خطط استضافة المواقع من سكايلاين نسخًا احتياطية ليلية للمواقع وقواعد البيانات تُحفظ 30 يومًا.
المصادر
- php.net/releases
- php.net/ChangeLog-8.php
- php.net/supported-versions.php
- php.net/eol.php
- php.net/mailing-lists.php
- debian.org/releases
- wiki.debian.org/LTS
- debian.org/security
- lists.debian.org/debian-security-announce
- lists.debian.org/debian-lts-announce
- security-tracker.debian.org/tracker/DSA-6256-1
- security-tracker.debian.org/tracker/DSA-6377-1
- security-tracker.debian.org/tracker/DSA-6406-1
- security-tracker.debian.org/tracker/DSA-6514-1
- security-tracker.debian.org/tracker/DSA-6574-1
- lists.debian.org/debian-security-announce/2026/msg00489.html
- security-tracker.debian.org/tracker/DLA-4848-1
- lists.debian.org/debian-lts-announce/2026/10/msg00042.html
- ubuntu.com/security/notices
- manpages.debian.org/trixie/apt/apt.8.en.html
- manpages.debian.org/trixie/apt/apt-get.8.en.html
- manpages.debian.org/trixie/apt/apt-mark.8.en.html
- manpages.debian.org/trixie/dpkg/dpkg-query.1.en.html
- manpages.debian.org/trixie/needrestart/needrestart.1.en.html
- alskyline.com/blogs/php-critical-vulnerabilities-cve-2026-109618-cve-2026-109619
- cloud.alskyline.com/vps-saudi-arabia
- cloud.alskyline.com/hosting
Comments
0 total · 0 threads