عمومی

آموزش آپدیت PHP در XAMPP ویندوز برای رفع آسیب‌ پذیری بحرانی PHP2Shell

بررسی گام به گام مراحل و روش انجام

آموزش آپدیت PHP در XAMPP ویندوز برای رفع آسیب‌ پذیری بحرانی PHP2Shell

به‌روزرسانی PHP

به‌روزرسانی PHP یکی از اقدامات مهم برای حفظ امنیت و پایداری وب‌ سایت‌ ها و برنامه‌های تحت وب است. درصورتی‌که از XAMPP برای اجرای پروژه‌های PHP در ویندوز استفاده می‌کنید، باید نسخه PHP نصب‌شده را به‌صورت دوره‌ای بررسی کنید و در صورت انتشار نسخه جدید امنیتی، آن را به‌روزرسانی کنید.

در این آموزش، نحوه به‌روزرسانی PHP در XAMPP ویندوز را به‌صورت مرحله‌به‌مرحله بررسی می‌کنیم. این راهنما شامل دانلود نسخه جدید، بررسی صحت فایل، تهیه نسخه پشتیبان، جایگزینی فایل‌های PHP و آزمایش عملکرد Apache و برنامه‌های وابسته است.

 

چرا باید PHP را در XAMPP به‌روزرسانی کنیم؟

هر نسخه از PHP ممکن است در طول زمان باگ‌ها و آسیب‌پذیری‌های امنیتی مختلفی داشته باشد. انتشار نسخه‌های جدید معمولاً علاوه بر رفع مشکلات فنی، شامل اصلاح آسیب‌پذیری‌های شناسایی‌شده نیز می‌شود. استفاده از نسخه قدیمی PHP می‌تواند امنیت برنامه‌های تحت وب را به خطر بیندازد؛ به همین دلیل، به‌روزرسانی نسخه PHP اهمیت زیادی دارد.

در گزارش‌های امنیتی مربوط به آسیب‌پذیری PHP2Shell، شناسه‌های CVE-2026-109618 و CVE-2026-109619 مطرح شده‌اند. برای سیستم‌هایی که تحت تأثیر این آسیب‌پذیری‌ها قرار دارند، استفاده از نسخه اصلاح‌شده PHP و بررسی اطلاعیه‌های رسمی اهمیت دارد.

نسخه‌های اصلاح‌شده ذکرشده برای شاخه‌های مختلف PHP عبارت‌اند از:

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

در این آموزش، فرایند به‌روزرسانی را برای PHP نسخه 8.2.12 به نسخه 8.2.35 در محیط XAMPP ویندوز توضیح می‌دهیم. اگر نسخه PHP شما متفاوت است، باید فایل متناسب با نسخه موردنظر و معماری سیستم خود را دانلود کنید.

 

پیش از شروع به‌روزرسانی PHP …

جایگزینی فایل‌های PHP در XAMPP باید با دقت انجام شود؛ زیرا تنظیمات PHP، افزونه‌ها و ارتباط Apache با PHP ممکن است به فایل‌های موجود در پوشه PHP وابسته باشند. پیش از شروع، از اطلاعات فعلی نسخه پشتیبان تهیه کنید و مطمئن شوید که فایل دانلودشده با محیط نصب شما سازگار است.

 

در این راهنما، مسیر نصب XAMPP برابر با E:\xampp در نظر گرفته شده است. اگر XAMPP را در مسیر دیگری نصب کرده‌اید، دستورات و مسیرهای فایل را مطابق محل نصب خود تغییر دهید.

 

مرحله اول: بررسی نسخه فعلی PHP

ابتدا نسخه PHP نصب‌شده را بررسی کنید. پنجره Command Prompt ویندوز را باز کنید و دستور زیر را اجرا کنید:

E:\xampp\php\php.exe -v

در خروجی دستور، نسخه PHP و اطلاعات مربوط به محیط اجرا نمایش داده می‌شود. پیش از ادامه، نسخه فعلی را یادداشت کنید تا پس از به‌روزرسانی بتوانید نتیجه را با آن مقایسه کنید.

برای بررسی فایل تنظیمات فعال PHP نیز دستور زیر را اجرا کنید:

E:\xampp\php\php.exe --ini

در خروجی این دستور، مسیر فایل تنظیمات اصلی PHP با عنوان Loaded Configuration File نمایش داده می‌شود. در نصب مورد استفاده در این راهنما، مسیر فایل تنظیمات برابر با E:\xampp\php\php.ini است.

کپچا چیست؟ کاربرد و انواع آن
مشاهده

 

مرحله دوم: دانلود نسخه جدید PHP

برای دریافت فایل PHP، از منابع رسمی استفاده کنید. نسخه دانلودشده باید با نسخه موردنظر، سیستم‌عامل ویندوز، معماری 64 بیتی و نوع ساخت موردنیاز XAMPP سازگار باشد.

برای دریافت نسخه‌های منتشرشده PHP می‌توانید به صفحه رسمی دانلود مراجعه کنید:

دانلود رسمی PHP برای ویندوز

همچنین اطلاعات نسخه‌های منتشرشده را می‌توانید از وب‌سایت رسمی PHP بررسی کنید:

صفحه رسمی انتشار نسخه‌های PHP

برای سناریوی این آموزش، فایل ZIP نسخه 8.2.35 با نام php-8.2.35-Win32-vs16-x64.zip در نظر گرفته شده است. هنگام دانلود، نام دقیق فایل و مشخصات آن را با فایل ارائه‌شده در منبع رسمی تطبیق دهید.

 

نکته مهم: فایل PHP باید با نسخه Apache و محیط اجرای XAMPP سازگار باشد. استفاده از بسته‌ای با معماری یا نوع ساخت نامناسب ممکن است باعث اجرا نشدن PHP یا بارگذاری نشدن آن در Apache شود.

 

مرحله سوم: بررسی صحت فایل دانلودشده

پس از دانلود، بهتر است مقدار SHA-256 فایل را با مقدار اعلام‌شده در منبع معتبر مقایسه کنید؛ این کار به بررسی یکپارچگی فایل دانلودشده کمک می‌کند.

برای محاسبه هش فایل در ویندوز، Command Prompt را باز کنید و دستور زیر را اجرا کنید. در این مثال، فایل در پوشه Downloads قرار دارد:

certutil -hashfile "%USERPROFILE%\Downloads\php-8.2.35-Win32-vs16-x64.zip" SHA256

مقدار نمایش‌داده‌شده را با مقدار SHA-256 اعلام‌شده برای همان فایل در منبع رسمی مقایسه کنید. اگر مقادیر مطابقت ندارند، از ادامه فرایند خودداری کنید و فایل را دوباره از منبع رسمی دریافت کنید.

 

مرحله چهارم: توقف Apache در XAMPP

پیش از جایگزینی فایل‌های PHP، باید Apache را متوقف کنید تا هنگام تغییر فایل‌ها، پردازش فعالی از آن‌ها استفاده نکند.

  1. برنامه XAMPP Control Panel را اجرا کنید.
  2. در بخش Apache روی دکمه Stop کلیک کنید.
  3. مطمئن شوید که وضعیت Apache از حالت در حال اجرا خارج شده است.
  4. اگر سرویس یا پردازش دیگری به فایل‌های PHP همین نصب وابسته است، آن را نیز پیش از جایگزینی متوقف کنید.

تا پایان مراحل جایگزینی و بررسی اولیه، Apache را متوقف نگه دارید.

 

مرحله پنجم: تهیه نسخه پشتیبان از پوشه PHP

اکنون باید از پوشه فعلی PHP نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوانید فایل‌های قبلی را بازیابی کنید.

به مسیر زیر بروید:

E:\xampp\

پوشه php را پیدا کنید و نام آن را به شکل زیر تغییر دهید:

php-old-8.2.12

در این مرحله، پوشه قبلی PHP حذف نمی‌شود؛ فقط نام آن تغییر می‌کند تا فایل‌های نسخه قبلی و تنظیمات آن در دسترس باقی بمانند.

اگر نام پوشه PHP شما با نسخه 8.2.12 مطابقت ندارد، می‌توانید نام نسخه پشتیبان را مطابق نسخه فعلی خود انتخاب کنید.

 

مرحله ششم: استخراج و جایگزینی فایل‌های PHP

پس از تهیه نسخه پشتیبان، فایل ZIP نسخه جدید PHP را در یک پوشه موقت استخراج کنید. برای مثال، می‌توانید پوشه‌ای با نام php-new ایجاد کنید و فایل‌ها را در آن استخراج کنید.

پس از استخراج، محتویات پوشه را بررسی کنید. فایل‌هایی مانند php.exe، فایل‌های DLL و پوشه‌های مربوط به افزونه‌ها باید در ساختار صحیح قرار داشته باشند.

سپس در مسیر E:\xampp\ یک پوشه جدید با نام php ایجاد کنید و محتویات نسخه جدید PHP را در آن قرار دهید. ساختار نهایی باید به این صورت باشد:

E:\xampp\php\php.exe
E:\xampp\php\php.ini
E:\xampp\php\ext\
E:\xampp\php\extras\

دقت کنید که فایل‌ها مستقیماً در پوشه E:\xampp\php قرار بگیرند، نه اینکه یک پوشه اضافی در مسیر ایجاد شود. برای مثال، مسیر E:\xampp\php\php-8.2.35\php.exe برای این ساختار صحیح نیست.

Windows Event Viewer: ابزاری برای رفع مشکلات سیستم
مشاهده

 

مرحله هفتم: بازگردانی فایل php.ini و تنظیمات قبلی

فایل php.ini شامل تنظیمات PHP است؛ از جمله مسیر افزونه‌ها، محدودیت‌های حافظه، تنظیمات آپلود و سایر گزینه‌های مربوط به اجرای برنامه‌ها. اگر تنظیمات قبلی خود را تغییر داده‌اید، باید آن‌ها را به نسخه جدید منتقل کنید.

فایل تنظیمات نسخه قبلی را در مسیر زیر پیدا کنید:

E:\xampp\php-old-8.2.12\php.ini

فایل را با دقت بررسی کنید و تنظیمات موردنیاز را به فایل php.ini نسخه جدید منتقل کنید. اگر فایل تنظیمات قبلی را مستقیماً جایگزین می‌کنید، مطمئن شوید که با نسخه جدید سازگار است و مسیرهای افزونه‌ها به محل درست اشاره می‌کنند.

مسیر افزونه‌ها معمولاً با گزینه extension_dir مشخص می‌شود. برای نصب این راهنما، مسیر افزونه‌ها باید به پوشه ext نسخه جدید اشاره کند؛ برای مثال:

extension_dir="E:\xampp\php\ext"

اگر از فایل‌های جانبی مانند browscap.ini یا DLLهای اختصاصی استفاده می‌کنید، وجود آن‌ها و مسیر معرفی‌شده در تنظیمات را بررسی کنید. فایل‌های قدیمی را بدون بررسی سازگاری به پوشه جدید منتقل نکنید.

همچنین بررسی کنید که افزونه‌های موردنیاز برنامه شما در فایل تنظیمات فعال باشند و نسخه جدید PHP از آن‌ها پشتیبانی کند.

 

مرحله هشتم: بررسی نسخه جدید PHP در Command Prompt

پس از جایگزینی فایل‌ها و تنظیم تنظیمات، ابتدا PHP را از طریق خط فرمان آزمایش کنید. دستور زیر را اجرا کنید:

E:\xampp\php\php.exe -v

در صورت موفقیت، نسخه جدید PHP نمایش داده می‌شود. در این مثال، خروجی باید نسخه 8.2.35 را نشان دهد.

برای بررسی افزونه‌های بارگذاری‌شده، دستور زیر را اجرا کنید:

E:\xampp\php\php.exe -m

فهرست افزونه‌ها نمایش داده می‌شود. بررسی کنید که افزونه‌های موردنیاز برنامه شما، مانند افزونه‌های مرتبط با پایگاه داده، در فهرست وجود داشته باشند و خطای بارگذاری DLL یا هشدار مربوط به افزونه‌ها مشاهده نشود.

اگر نسخه PHP نمایش داده نشد یا هنگام اجرای دستور خطا دریافت کردید، پیش از اجرای Apache مسیر فایل‌ها، سازگاری بسته دانلودشده و تنظیمات PHP را بررسی کنید.

 

مرحله نهم: بررسی تنظیمات Apache

پس از اطمینان از اجرای صحیح PHP در خط فرمان، تنظیمات Apache را بررسی کنید. پنجره Command Prompt را باز کنید و دستور زیر را اجرا کنید:

E:\xampp\apache\bin\httpd.exe -t

اگر تنظیمات Apache صحیح باشد، معمولاً پیام Syntax OK نمایش داده می‌شود. در صورت دریافت خطا، متن خطا را بررسی کنید و پیش از راه‌اندازی مجدد Apache مشکل را برطرف کنید.

 

مرحله دهم: اجرای Apache و آزمایش PHP در مرورگر

اکنون XAMPP Control Panel را باز کنید و Apache را با کلیک روی دکمه Start اجرا کنید. اگر Apache بدون خطا شروع به کار کرد، مرحله بعد آزمایش اجرای PHP از طریق مرورگر است.

در پوشه E:\xampp\htdocs یک فایل با نام phptest.php ایجاد کنید و کد زیر را داخل آن قرار دهید:

<?php
echo "PHP Version: " . PHP_VERSION . " | SAPI: " . PHP_SAPI;
?>

فایل را ذخیره کنید و در مرورگر آدرس زیر را باز کنید:

http://localhost/phptest.php

اگر به‌روزرسانی موفقیت‌آمیز باشد، نسخه PHP و نوع محیط اجرای آن در صفحه نمایش داده می‌شود. برای نمونه، ممکن است خروجی مشابه PHP Version: 8.2.35 | SAPI: apache2handler مشاهده کنید.

این آزمایش کمک می‌کند مطمئن شوید که PHP نه‌تنها از طریق خط فرمان اجرا می‌شود، بلکه Apache نیز از نسخه جدید آن استفاده می‌کند.

افزایش قیمت ها از 10 اردیبهشت
مشاهده

 

نکته امنیتی: پس از پایان آزمایش، فایل phptest.php را از پوشه htdocs حذف کنید. فایل‌های آزمایشی و اطلاعات نسخه نرم‌افزار نباید بدون نیاز روی وب‌سرور باقی بمانند.

 

مرحله یازدهم: بررسی phpMyAdmin و برنامه‌های وابسته

پس از اطمینان از اجرای Apache و PHP، برنامه‌های وابسته به XAMPP را آزمایش کنید. برای مثال، آدرس زیر را در مرورگر باز کنید:

http://localhost/phpmyadmin/

بررسی کنید که صفحه phpMyAdmin به‌درستی باز شود و هنگام استفاده از آن خطای مربوط به PHP یا افزونه‌های پایگاه داده نمایش داده نشود.

اگر پروژه‌های PHP دیگری روی سیستم دارید، آن‌ها را نیز اجرا کنید و بخش‌های مهم برنامه، ارتباط با پایگاه داده، بارگذاری فایل‌ها و عملکرد افزونه‌های موردنیاز را بررسی کنید.

 

اگر پس از به‌روزرسانی Apache اجرا نشد چه کنیم؟

اگر Apache پس از جایگزینی PHP اجرا نمی‌شود، ابتدا پیام خطا در XAMPP Control Panel و فایل‌های گزارش Apache را بررسی کنید. مشکلات زیر از مواردی هستند که ممکن است پس از به‌روزرسانی رخ دهند:

  • ناسازگاری نسخه PHP: بررسی کنید بسته دانلودشده با نسخه Apache و محیط اجرای XAMPP سازگار باشد.
  • اشتباه بودن مسیر افزونه‌ها: مقدار extension_dir در فایل php.ini باید به مسیر صحیح پوشه ext اشاره کند.
  • بارگذاری نشدن DLLها: بررسی کنید فایل‌های موردنیاز وجود داشته باشند و پیش‌نیازهای اجرای نسخه دانلودشده نصب باشند.
  • فعال نبودن افزونه‌های موردنیاز: تنظیمات php.ini را بررسی کنید و از فعال بودن افزونه‌های موردنیاز پروژه مطمئن شوید.
  • اشتباه بودن ساختار پوشه‌ها: مطمئن شوید فایل php.exe مستقیماً در مسیر E:\xampp\php قرار دارد.
  • خطا در تنظیمات Apache: دستور E:\xampp\apache\bin\httpd.exe -t را اجرا کنید و خطاهای گزارش‌شده را برطرف کنید.

اگر با بررسی این موارد مشکل حل نشد، می‌توانید Apache را متوقف کنید و با استفاده از نسخه پشتیبان، فایل‌های قبلی را بازیابی کنید تا سیستم به وضعیت پیشین بازگردد.

 

آیا پس از به‌روزرسانی باید نسخه پشتیبان را حذف کنیم؟

خیر؛ بهتر است بلافاصله پس از به‌روزرسانی، نسخه قبلی PHP را حذف نکنید. ابتدا اجرای Apache، افزونه‌ها، phpMyAdmin و پروژه‌های خود را آزمایش کنید. پس از اطمینان از عملکرد صحیح سیستم و تهیه نسخه پشتیبان مناسب، می‌توانید درباره حذف پوشه قدیمی تصمیم بگیرید.

در این راهنما، پوشه نسخه قبلی با نام php-old-8.2.12 نگهداری شده است. این پوشه برای بازگشت به نسخه قبلی در صورت بروز مشکل کاربرد دارد؛ بنابراین تا زمانی که از صحت عملکرد نسخه جدید مطمئن نشده‌اید، آن را حذف نکنید.

 

جمع‌ بندی نهایی

به‌روزرسانی PHP در XAMPP ویندوز شامل بررسی نسخه فعلی، دانلود نسخه سازگار، بررسی صحت فایل، توقف Apache، تهیه نسخه پشتیبان، جایگزینی فایل‌های PHP و آزمایش عملکرد محیط جدید است. انجام مرحله‌به‌مرحله این فرایند کمک می‌کند احتمال بروز خطا کاهش پیدا کند و در صورت نیاز امکان بازگشت به نسخه قبلی وجود داشته باشد.

پس از پایان به‌روزرسانی، نسخه PHP را از طریق خط فرمان بررسی کنید، از اجرای صحیح Apache مطمئن شوید و برنامه‌های وابسته را آزمایش کنید. همچنین فایل‌های آزمایشی را حذف کنید و اطلاعیه‌های امنیتی رسمی PHP را برای دریافت به‌روزرسانی‌های بعدی دنبال کنید.

 

منابع رسمی

مطلب چقدر مفید بود؟
دکمه بازگشت به بالا