Tại sao phải chuyển đổi giữa các phiên bản PHP khi bạn có thể sử dụng nhiều phiên bản PHP cùng một lúc với một cài đặt xampp ? Với một cài đặt xampp, bạn có 2 tùy chọn:
Chạy phiên bản PHP cũ hơn chỉ cho thư mục của dự án cũ của bạn:
Điều này sẽ phục vụ mục đích hầu hết thời gian, bạn có thể có một hoặc hai dự án cũ mà bạn dự định chạy với phiên bản PHP cũ hơn. Chỉ cần cấu hình xampp để chạy phiên bản PHP cũ hơn cho các thư mục dự án.
Chạy phiên bản PHP cũ hơn trên một cổng xampp riêng biệt: Đôi khi bạn có thể nâng cấp và dự án cũ lên phiên bản PHP mới nhất khi bạn cần chạy cùng một dự án trên phiên bản PHP mới và cũ hơn. Sau đó, bạn có thể đặt phiên bản PHP cũ hơn trên một cổng khác (giả sử là 8056) để khi bạn vào http://localhost/any_project/
xampp chạy PHP 7 và khi bạn đi đến http://localhost:8056/any_project/
xampp chạy PHP 5.6.
Chạy phiên bản PHP cũ hơn trên virtualhost: Bạn có thể tạo một máy chủ ảo như localhost56 để chạy PHP 5.6 trong khi bạn có thể sử dụng PHP 7 trên localhost.
Hãy thiết lập nó.
Bước 1: Tải xuống PHP
Vì vậy, bạn có PHP 7 chạy dưới xampp, bạn muốn thêm phiên bản PHP cũ hơn vào nó, giả sử PHP 5.6. Tải xuống phiên bản nts (Non Thread Safe) của kho lưu trữ zip PHP từ php.net (xem lưu trữ cho các phiên bản cũ hơn) và giải nén các tệp bên dưới c:\xampp\php56
. Phiên bản an toàn của chủ đề không bao gồm php-cgi.exe.
Bước 2: Cấu hìnhphp.ini
Mở c:\xampp\php56\php.ini
tập tin trong notepad. Nếu tập tin không tồn tại bản sao php.ini-development
để php.ini
và mở nó bằng notepad. Sau đó bỏ dòng sau:
extension_dir = "ext"
Bước 3: Cấu hình apache
Mở bảng điều khiển xampp, nhấp vào nút cấu hình cho apache và nhấp Apache (httpd-xampp.conf)
. Một tệp văn bản sẽ mở ra, đặt các cài đặt sau ở dưới cùng của tệp:
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>
Lưu ý: Bạn có thể thêm nhiều phiên bản PHP vào cài đặt xampp của mình theo bước 1 đến 3 nếu muốn.
Bước 4 (tùy chọn 1): [Thêm thư mục để chạy phiên bản PHP cụ thể]
Bây giờ bạn có thể thiết lập các thư mục sẽ chạy trong PHP 5.6. Chỉ cần thêm phần dưới đây vào dưới cùng của tệp cấu hình để đặt thư mục.
<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>
Bước 4 (tùy chọn 2): [Chạy phiên bản PHP cũ hơn trên một cổng riêng]
Bây giờ để đặt PHP v5.6 thành cổng 8056, hãy thêm đoạn mã sau vào dưới cùng của tệp cấu hình.
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
Bước 4 (tùy chọn 3): [Chạy phiên bản PHP cũ hơn trên virtualhost]
Để tạo một Virtualhost (localhost56) trên một thư mục (htdocs56) để sử dụng PHP v5.6 trên http: // localhost56 , hãy tạo thư mục htdocs56 tại vị trí mong muốn của bạn và thêm localhost56 vào tệp máy chủ của bạn ( xem cách ) ở dưới cùng của tệp 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>
Kết thúc: Lưu và khởi động lại Apache
Lưu và đóng tệp cấu hình, Khởi động lại apache từ bảng điều khiển xampp. Nếu bạn đã chọn tùy chọn 2, bạn có thể thấy cổng bổ sung (8056) được liệt kê trong bảng điều khiển xampp của bạn.
Cập nhật cho Lỗi:
tiêu đề không đúng từ tập lệnh 'php-cgi.exe': Tiêu đề xấu
Nếu bạn gặp phải lỗi trên, hãy mở httpd-xampp.conf
lại và nhận xét dòng sau với dấu # (ký tự băm) hàng đầu.
SetEnv PHPRC "\\path\\to\\xampp\\php"