اضافة أكثر من اصدار php في برنامج xampp

أحيانا تحتاج الى إستخدام أكثر من اصدار للغة php بنفس الوقت، وذلك لأسباب عديده منها.. عمل اختبار للتطبيقات الخاصه بك على إصدارات قديمة من اللغة، أو أن لديك أحدث إصدار وهناك تطبيق يحتاج الى اصدار قديم من php كي يعمل، او أنك تود استخدام بعض الاضافات التي لا تدعم اصدارات حديثة من اللغة مثل ioncube على سبيل المثال أو لديك أسباب أخرى.

إضافة اصدارات متعدده من لغة php لبرنامج xampp

اذا كنت من مستخدمي برنامج xampp في هذه الحاله أمامك خيارين اما استخدام برنامج أخر يعمل بإصدار قديم من لغة php أو تقوم بتثبيت اصدار قديم من برنامج xampp ولكن في هذا الموضوع سأقوم بشرح طريقة أخرى لاستخدام أكثر من إصدار من لغة php في برنامج xampp .

1- تحميل اصدار php الذي تريد استخدامه بجانب الاصدار الحالي

من خلال الموقع الرسمي، هنا اذا كان الاصدار حديثاً او من الأرشيف .. نقوم بتحميل اصدار php الذي نريده والمناسب لنواة الويندز 32 او 64.

عند تحميل الاصدار يجب مراعاة أن يكون الاصدار Thread Safe وليس (nts)Non Thread Safe  وايضا تحميل النسخة المضغوطة zip .. 
VC15 او VC14 المكتوبة بجانب الاصدار تعني Visual C++ 2015 Or 2014 ويتوفر بشكل اساسي في الويندوز ولكن في بعض الاحيان قد تحتاج تحميله من هنا 

في هذا المثال قمت بتحميل php 7.4 وهو الاصدار الذي أود استعماله.

صورة الاصدار الذي تم تحميله من خلال الموقع بشكل مباشر

بعد تحميل حزمة php نقوم بفك الضغط عنها php-7.4.27-Win32-vc15-x64.zip وتغيير اسم المجلد الى php74

فك الضغط عن حزمة php وتغيير اسم المجلد

تسطيع تسميته كما تشاء ولكن يفضل ان يكون هكذا (php56, php73, php74) .. php + اول رقمين من الاصدار بدون اي فواصل لانك ستستخدم هذا الاسم قريبا .. بعد ذلك نقوم بنقل هذا المجلد الى مسار تثبيت Xampp ليكون بهذا الشكل

c:\xampp\php74
مسار تثبيت xampp على ويندوز

2- اعداد ملف php.ini

داخل مجلد php74 ان لم تجد ملف بإسم php.ini قم بأخذ نسخة من الملف php.ini-development في نفس المكان وقم باعادة تسمية الملف الى php.ini

ملف php.ini
  • بعد ذلك افتح الملف في اي محرر نصوص وابحث عن “extension_dir = “ext; قم بإزالة الفاصلة المنقوطه ; لتفعيلها
  • قم بتفعيل هذه المكتبات ايضا بنفس الطريقة بإزالة الفاصله المنقوطه من ;
extension=curl extension=fileinfo extension=gettext extension=mysqli extension=pdo_mysql

3- اعداد apache

httpd-xampp.conf

قم بفتح xampp control panel واضغط على زر config وقم بإختيار Apache (httpd-xampp.conf) سيظهر ملف نصي او يمكنك الوصول له عن طريق المسار التالي وفتح الملف httpd-xampp.conf

C:\xampp\apache\conf\extra

قم بإضافة هذا الرمز في نهاية الملف.. مع مراعاة تغيير php74 باسم الاصدار الذي قمت بتحميله.

ScriptAlias /php74 "C:/xampp/php74" Action application/x-httpd-php74-cgi /php74/php-cgi.exe <Directory "C:/xampp/php74"> AllowOverride None Options None Require all denied <Files "php-cgi.exe"> Require all granted </Files> SetEnv PHPRC "C:/xampp/php74" </Directory>
Code language: PHP (php)

يمكنك اضافة العديد من الاصدارات المختلفه بإتباع الخطوات السابقة

4- استخدام اصدار php الذي تمت اضافته

الان تستطيع استخدام هذا الاصدار عن طريق تحديد دليل معين واستخدامه سواء كان دليل عام او خاص بالمشروع الذي تريد تشغيله على اصدار php هذا.

قم بانشاء مجلد داخل htdocs بالاسم الذي تريده على سبيل المثال project1

C:\xampp\htdocs\project1

انشئ ملف index.php داخل هذا المجلد وأضف هذا الرمز لنستخدمه في اختبار عمل الاصدار الذي سوف نقوم باستخدامه.

<?php phpinfo(); ?>
Code language: PHP (php)

الأن قم بإضافة الرمز التالي الى نهاية ملف httpd-xampp.conf السابق تعديله في الخطوه السابقه مع مراعاة تغيير project1 باسم المجلد الذي اخترته وايضا php74 بالاصدار الذي قمت بإضافته

<Directory "C:\xampp\htdocs\project1"> <FilesMatch "\.php$"> SetHandler application/x-httpd-php74-cgi </FilesMatch> </Directory>
Code language: HTML, XML (xml)

قم بإعادة تشغيل سيرفر Apache من خلال xampp control panel وبعد ذلك نقوم بفتح هذا الرابط

http://localhost/project1
Code language: Access log (accesslog)

ستجد ان الاصدار الذي تمت اضافته يعمل بشكل جيد كما يظهر .

ملاحظة مهمة عند إضافة اصدارات متعدده من لغة php

يمكنك ايضا استخدام هذه الطريقه مع Name Server او دومين، يمكنك معرفة المزيد من خلال: اضافة دومين الى سيرفر xampp
وفي هذه الحاله اما ان تضيف الرمز السابق مع تحديد الدليل الخاص بالدومين او عن طريق تعديل الرمز الخاص بالدومين داخل ملف httpd-vhosts.conf ليكون بهذا الشكل على اعتبار ان الدومين على سبيل المثال projects.local والدليل الخاص به هو projects فيكون الرمز كالتالي وفي الحالتين سيعمل اصدار php الجديد على الدومين

<VirtualHost *:80> ServerAdmin webmaster@projects.local DocumentRoot "C:/xampp/htdocs/projects" ServerName projects.local ServerAlias www.projects.local <Directory "C:/xampp/htdocs/projects"> Require all granted </Directory> <FilesMatch "\.php$"> SetHandler application/x-httpd-php74-cgi </FilesMatch> ErrorLog "logs/projects.local-error.log" CustomLog "logs/projects.local-access.log" common </VirtualHost>
Code language: CSS (css)