สลับไปมาระหว่างรุ่น PHP ทำไมเมื่อคุณสามารถใช้PHP รุ่นหลายในเวลาเดียวกันกับการติดตั้ง XAMPP เดียว ? ด้วยการติดตั้ง xampp เพียงครั้งเดียวคุณมี 2 ตัวเลือก:
ใช้งาน PHP เวอร์ชันเก่าสำหรับไดเรกทอรีของโครงการเก่าของคุณเท่านั้น:
สิ่งนี้จะให้บริการตามวัตถุประสงค์ส่วนใหญ่คุณอาจมีโครงการเก่าหนึ่งหรือสองโครงการที่คุณตั้งใจจะใช้กับ PHP รุ่นเก่า เพียงกำหนดค่า xampp ให้เรียกใช้ PHP เวอร์ชันเก่ากว่าสำหรับไดเรกทอรีโครงการเหล่านั้นเท่านั้น
ใช้งาน PHP เวอร์ชั่นเก่าบนพอร์ตที่แยกต่างหากของ xampp:บางครั้งคุณอาจกำลังอัพเกรดและโปรเจ็กต์เก่าเป็นเวอร์ชัน PHP ล่าสุดเมื่อคุณต้องการรันโปรเจ็กต์เดียวกันกับ PHP เวอร์ชันใหม่และเก่า จากนั้นคุณสามารถตั้งค่า PHP เวอร์ชันเก่าบนพอร์ตอื่น (เช่น 8056) ดังนั้นเมื่อคุณไปที่http://localhost/any_project/
xampp จะรัน PHP 7 และเมื่อคุณไปที่http://localhost:8056/any_project/
xampp จะรัน PHP 5.6
ใช้งาน PHP เวอร์ชั่นเก่าบน virtualhost:คุณสามารถสร้าง virtualhost เช่น localhost56 เพื่อรัน PHP 5.6 ในขณะที่คุณสามารถใช้ PHP 7 บน localhost
ให้ตั้งค่า
ขั้นตอนที่ 1:ดาวน์โหลด PHP
ดังนั้นคุณจึงมี PHP 7 ที่ทำงานภายใต้ xampp คุณต้องการที่จะเพิ่ม PHP เวอร์ชันเก่าลงไปด้วย PHP 5.6 ดาวน์โหลดเวอร์ชัน zip ของ PHP zip zip จาก nts (Non Thread Safe) จากphp.net (ดูที่เก็บถาวรสำหรับเวอร์ชั่นเก่ากว่า) และแตกไฟล์c:\xampp\php56
ออกมา รุ่นที่ปลอดภัยของเธรดไม่รวม php-cgi.exe
ขั้นตอนที่ 2:กำหนดค่าphp.ini
เปิดc:\xampp\php56\php.ini
ไฟล์ใน Notepad หากไฟล์ไม่มีอยู่php.ini-development
ให้คัดลอกphp.ini
และเปิดใน notepad จากนั้นยกเลิกข้อคิดเห็นบรรทัดต่อไปนี้:
extension_dir = "ext"
ขั้นตอนที่ 3:กำหนดค่า apache
แผงควบคุม XAMPP เปิดให้คลิกที่ปุ่มการตั้งค่าสำหรับ Apache Apache (httpd-xampp.conf)
และคลิก ไฟล์ข้อความจะเปิดขึ้นตั้งค่าต่อไปนี้ไว้ที่ด้านล่างของไฟล์:
ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>
หมายเหตุ: คุณสามารถเพิ่ม PHP เวอร์ชันอื่น ๆ ลงในการติดตั้ง xampp ของคุณได้ตามขั้นตอนที่ 1 ถึง 3 หากคุณต้องการ
ขั้นตอนที่ 4 (ตัวเลือก 1): [เพิ่มไดเรกทอรีเพื่อเรียกใช้รุ่น PHP เฉพาะ]
ตอนนี้คุณสามารถตั้งค่าไดเรกทอรีที่จะทำงานใน PHP 5.6 เพียงเพิ่มสิ่งต่อไปนี้ที่ด้านล่างของไฟล์กำหนดค่าเพื่อตั้งค่าไดเรกทอรี
<Directory "C:\xampp\htdocs\my_old_project1">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
<Directory "C:\xampp\htdocs\my_old_project2">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>
ขั้นตอนที่ 4 (ตัวเลือก 2): [เรียกใช้เวอร์ชัน PHP รุ่นเก่าบนพอร์ตแยก]
ตอนนี้การตั้งค่า PHP v5.6 พอร์ต 8056 เพิ่มรหัสต่อไปนี้ที่ด้านล่างของไฟล์ config
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
ขั้นตอนที่ 4 (ตัวเลือก 3): [เรียกใช้ PHP เวอร์ชันเก่ากว่าบน virtualhost]
ในการสร้าง virtualhost (localhost56) ในไดเรกทอรี (htdocs56) เพื่อใช้ PHP v5.6 บนhttp: // localhost56ให้สร้างไดเรกทอรี htdocs56 ในตำแหน่งที่คุณต้องการและเพิ่ม localhost56 ลงในไฟล์โฮสต์ของคุณ ( ดูวิธีการ ) จากนั้นเพิ่มรหัสต่อไปนี้ ไปที่ด้านล่างของไฟล์ httpd-xampp.conf
<VirtualHost localhost56:80>
DocumentRoot "C:\xampp\htdocs56"
ServerName localhost56
<Directory "C:\xampp\htdocs56">
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
เสร็จสิ้น:บันทึกและรีสตาร์ท Apache
บันทึกและปิดไฟล์กำหนดค่าเริ่มต้นใหม่ apache จากแผงควบคุม xampp หากคุณไปที่ตัวเลือกที่ 2 คุณสามารถดูพอร์ตเพิ่มเติม (8056) ที่ปรากฏในแผงควบคุม xampp ของคุณ
อัพเดตสำหรับข้อผิดพลาด:
ส่วนหัวที่ผิดรูปแบบจากสคริปต์ 'php-cgi.exe': ส่วนหัวไม่ถูกต้อง
หากคุณพบข้อผิดพลาดด้านบนให้เปิดhttpd-xampp.conf
อีกครั้งและใส่เครื่องหมายบรรทัดต่อไปนี้พร้อมกับเครื่องหมาย # (อักขระแฮช)
SetEnv PHPRC "\\path\\to\\xampp\\php"