Hôm nay PA xin hướng dẫn các bạn cách nâng – hạ cấp phiên bản PHP trên XAMPP
Cài đặt XAMPP trên Window
Các bạn có thể tham khảo hướng dẫn cài đặt XAMPP nhanh chóng tại đây.
Bước 1: Kiểm tra phiên bản PHP hiện tại bằng file info.phpKiểm tra phiên bản PHP hiện tại bằng file info.php
Bạn tạo file info.php trong thư mục C:\xampp\htdocs với nội dung sau: info.php trong thư mục C:\xampp\htdocs với nội dung sau:
Tiếp theo bạn truy cập //localhost/info.php trên trình duyệt web.
Phiên bản PHP hiện tại của mình là 7.4. Giờ mình sẽ giảm xuống 5.6.
Bước 2: Download XAMPP Download XAMPP
Bạn truy cập: //www.apachefriends.org/download.htmlChọn More downloads//www.apachefriends.org/download.html
Chọn More downloads
Chọn XAMPP WindowsXAMPP Windows
Ở đây bạn lựa chọn phiên bản phù hợp với nhu cầu sử dụng.
Chọn file .zip.zip
Bước 3: Bạn vào thư mục cài đặt XAMPP và đổi tên 2 thư mục php, apache để backup phòng trường hợp cần sử dụng lại. Mặc định thư mục cài đặt XAMPP sẽ là C:\xampp vd: php -> php-old apache -> apache-old Bạn vào thư mục cài đặt XAMPP và đổi tên 2 thư mục php, apache để backup phòng trường hợp cần sử dụng lại. Mặc định thư mục cài đặt XAMPP sẽ là C:\xampp
vd: php -> php-old
apache -> apache-old
Bước 4: bạn tiến hành giải nén file .zip ở bước 2 và copy/paste 2 thư mục php, apache vào C:\xampp bạn tiến hành giải nén file .zip ở bước 2 và copy/paste 2 thư mục php, apache vào C:\xampp
Bước 5: Vào folder php , tìm đến file php.ini [C:\xamp\php\php.ini] Bạn thay thế các đường dẫn \xampp bằng C:\xampp Vào folder php , tìm đến file php.ini [C:\xamp\php\php.ini]
Bạn thay thế các đường dẫn \xampp bằng C:\xampp
Bước 6: Khởi động lại 2 modules Apache và MySQL trong bảng điều khiển. Khởi động lại 2 modules Apache và MySQL trong bảng điều khiển.
Cuối cùng bạn truy cập lại website localhost/info.php để kiểm tra kết quả.localhost/info.php để kiểm tra kết quả.
Chúc các bạn thành công !
____________________________________________________________________________________
P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ RiêngCloud ServerCloud Server Pro Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng
Tham khảo các ưu đãi: //www.pavietnam.vn/vn/tin-khuyen-mai/
Nếu bạn là một lập trình viên php thì chắc hẳn không còn xa lạ với XAMPP, WAMPP ... rồi nhỉ. Thế nhưng các bạn đã rơi vào trường hợp phải cấu hình nhiều version php cho mỗi dự án tương ứng chưa nhỉ. Và topic hôm nay mình sẽ trình bày các cấu hình nhiều version PHP trên XAMPP. Có khá nhiều bài hướng dẫn trên stack overflow về cách làm tuy nhiên nếu các bạn lười đọc Tiếng Anh hoặc đã thử qua nhưng vẫn chưa được thì hi vọng topic này có thể giúp các bạn giải quyết vấn đề.stack overflow về cách làm tuy nhiên nếu các bạn lười đọc Tiếng Anh hoặc đã thử qua nhưng vẫn chưa được thì hi vọng topic này có thể giúp các bạn giải quyết vấn đề.
1. Vấn đề
Vừa qua. mình có gặp trường hợp đó là 2 project đang làm cần sử dụng 2 version PHP khác nhau [ một cái cần dùng php 7.2 , một cái lại dùng php >=7.3]. Tuy nhiên lúc cài XAMPP thì version php hiện tại trên máy đang mặc định là 7.2. Thế là khi chạy source yêu cầu php >=7.3 thì mình đã gặp lỗi bên dưới
2. Hướng giải quyết
Sau khi lùng sục cả chân trời góc bể, dạo chơi khắp stack overflow thì cuối cùng cũng tìm được câu trả lời khá chi tiết và dễ hiểu, mình xin trích dẫn câu trả lời đang đứng top sang tiếng Việt cho các bạn tiện tham khảo:
Để sử dụng nhiều phiên bản php chỉ với một phiên bản xampp duy nhất, chúng ta có hai lựa chọn:
- Cấu hình cho mỗi project một phiên bản php nhất định.
- Cấu hình từng phiên bản php trên một port riêng biệt.
Sau khi đã áp dụng cách đầu tiên thành công, mình sẽ hướng dẫn chi tiết các bước ở dưới!
3.Các bước thực hiện
Bước 1: Tải phiên bản php mà bạn muốn thêm tại php.net
Giải nén thư mục php vừa tải vào trong xampp, cùng cấp với thư mục php hiện có.Bởi vì dự án của mình cần version
php >= 7.3
nên mình sẽ downloadphp 8.1.8
Lưu ý: Chỉ download phiên bản NTS [Non Thread Safe] bởi phiên bản Thread safe sẽ không có file php-cgi.exe Chỉ download phiên bản NTS [Non Thread Safe] bởi phiên bản Thread safe sẽ không có file php-cgi.exe
Bước 2: Cấu hình file php.ini trong thư mục php vừa tải:
Vào trong thư mục php vừa tải, coppy file
php.ini-development
và đổi tên thànhphp.ini
Mở file
php.ini
vừa đổi tên bằng một editor bất kỳ [ notepad, notepad++ ... ]Tiếp theo, hãy ấn tổ hợp phím
Ctrl+F
và tìm kiếm đoạn text sau:
0 và uncomment dòng này bằng cách xóa dấuScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
1 ở đầu dòngScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
- Làm tương tự để uncomment cho các dòng dưới đây:
2ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
3ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
4ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
5ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
6ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
7ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
Bước 3: Cấu hình apache
Mở file
8bằng một trong hai cách:ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
Cách 1: Vào thư mục xampp đã cài, mở file
8 bằng đường dẫnScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
0: Vào thư mục xampp đã cài, mở fileUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
8 bằng đường dẫnScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
0UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
Ví dụ: Mình lưu folder xampp tại ổ D thì đường dẫn sẽ là
1: Mình lưu folder xampp tại ổ D thì đường dẫn sẽ làUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
1UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
Cách 2: Khởi động xampp, tại màn hình quản lí hãy click vào nút config sẽ hiện ra danh sách các file, hãy ấn chọn vào file
8. Xem chi tiết trong hình bên dưới: Khởi động xampp, tại màn hình quản lí hãy click vào nút config sẽ hiện ra danh sách các file, hãy ấn chọn vào fileScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
8. Xem chi tiết trong hình bên dướiScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
Tiếp theo, thêm đoạn code sau vào cuối file
8, sau đó thayScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
4 vàUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
5 thành tên folder và đường dẫn đến folderUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
6 của bạnUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
4 vàUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
5 thành tên folder và đường dẫn đến folderUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
6 của bạnUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
ScriptAlias /php8_1 "D:/xampp/php8_1/" Action application/x-httpd-php8_1-cgi "/php8_1/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "D:/xampp/php8_1"
Ví dụ: Nếu tên thư mục
6 của bạn làUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
8 và đường dẫn thư mục làUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
9 thì đoạn code sẽ là: Nếu tên thư mụcUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
6 của bạn làUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
8 và đường dẫn thư mục làUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
9 thì đoạn code sẽ là:UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
ScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
- Bạn có thể cấu hình nhiều version khác không giới hạn bằng cách lặp lại bước 1 đến bước 3bước 1 đến bước 3
Bước 4: Cấu hình project để chạy với
0 tương ứng Cấu hình project để chạy với
UnsetEnv PHPRC
php_flag engine off
SetHandler application/x-httpd-php6_5-cgi
UnsetEnv PHPRC
php_flag engine off
SetHandler application/x-httpd-php6_5-cgi
0 tương ứngThêm đoạn code sau vào cuối file
8, sau đó thayScriptAlias /php6_5 "C:/xampp/php6_5/" Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe" AllowOverride None Options None Require all denied Require all granted SetEnv PHPRC "C:/xampp/php6_5/"
2 vàUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
3 thành đường dẫn đến project của bạn. Xem hình bên dưới để nắm rõ hơnUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
2 vàUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
3 thành đường dẫn đến project của bạn. Xem hình bên dưới để nắm rõ hơnUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php8_1-cgi
Ví dụ: Nếu project của bạn nằm trong thư mục
4 thì đoạn code sẽ như sau: Nếu project của bạn nằm trong thư mụcUnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
4 thì đoạn code sẽ như sau:UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
Cuối cùng, khởi động lại xampp và tận hưởng thành quả.
4. Một số lưu ý
- Mình sẽ liệt kê một số lỗi đã gặp trong quá trình cấu hình để các bạn tham khảo và tránh:
- Lỗi
5 : Lỗi này là do đường dẫn thư mục bị sai. Lúc trước, khi sử dụng wampserver mình có lầm tưởng rằng, khi cấu hình virtualhost thì đường dẫn trỏ đến project nằm ở đâu cũng được. Tuy nhiên, với xampp thì bắt buộc project phải nằm trong thư mục xampp/htdocs.UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
5 : Lỗi này là do đường dẫn thư mục bị sai. Lúc trước, khi sử dụng wampserver mình có lầm tưởng rằng, khi cấu hình virtualhost thì đường dẫn trỏ đến project nằm ở đâu cũng được. Tuy nhiên, với xampp thì bắt buộc project phải nằm trong thư mục xampp/htdocs.UnsetEnv PHPRC php_flag engine off SetHandler application/x-httpd-php6_5-cgi
- Lỗi
Nên nhớ, tất cả các project khi chạy xampp cần được bỏ vào trong thư mục xampp/htdocs
Nếu không chỉ định project chạy với version php nào thì mặc định version php trong biến môi trường [Enviroment Variable] sẽ được chọn
5. Nguồn tham khảo
- //stackoverflow.com/questions/45790160/is-there-way-to-use-two-php-versions-in-xampp
- //www.youtube.com/watch?v=o-NeHuaaELI