Last active
January 1, 2024 13:12
-
-
Save tranchausky/affd9a0d87f882b7b8c7522c727617f3 to your computer and use it in GitHub Desktop.
Running multiple PHP versions on XAMPP - Chạy nhiều phiên bản php trong XAMPP (Mặc đinh OS win)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Các bước để chạy XAMPP nhiều phiên bản | |
| ví dụ | |
| localhost:80 php 8 | |
| localhost.com8 php 8 | |
| localhost.com7 php 7 | |
| localhost.com5 php 5 | |
| -step 0---------------------- | |
| đã cài xampp trước nha | |
| -1------------------------------ | |
| Tải phiên bản php muốn sử dụng | |
| https://windows.php.net/downloads/releases/archives/ | |
| https://www.php.net/releases/ | |
| Ví dụ và yêu cầu file | |
| php-5.5.9-Win32-VC11-x86.zip | |
| đây là phiên bản 5.5.9 win 86 cần cài vc11 (tìm google vc11 download là ra) | |
| php-7.4.9-Win32-vc15-x86.zip | |
| đây là bản php 7.4 win 86 cần cài vc15 về trước khi chạy | |
| php-7.4.9-Win32-vc15-x64.zip | |
| đây là bản php 7.4 win 64 cần cài vc15 về trước khi chạy | |
| để tích hợp được chạy nhiều phiên bản cần giản nén ra rồi chạy thử coi ok không, bằng cách | |
| cmd chạy ở folder giải nén -> /php-7.4.9-Win32-vc15-x64/php.exe -v | |
| (tới folder đó rồi chạy cmd php.exe -v) | |
| nếu trả ra version thì ok còn không lỗi sẽ tìm cách mà fix trước khi tích hợp chạy nhiêu phiên bản | |
| sau khi tải và test thành công thì cho folder đó vào thử mục của xampp | |
| ví dụ | |
| C:\xampp\php74 | |
| C:\xampp\php56 | |
| -2------------------------------ | |
| tải Download Fast CGI | |
| Kiểm tra fast CGI đã cài chưa thường là chưa bằng cách view ra đọc thông số | |
| Server API: (Apache 2.0 Handler) | |
| Architecture: x64/x32 | |
| <?php | |
| phpinfo(); | |
| Nếu là | |
| Server API: (Apache 2.0 Handler) thì cần cài | |
| Vào link | |
| https://www.apachelounge.com/download/ | |
| tải đúng phiên bản win 64/32 về rồi | |
| mod_fcgid-2.3.10-win64-VS16.zip | |
| mod_fcgid-2.3.10-win32-VS16.zip | |
| Trong file zip có file mod_fcgid.so | |
| cho vào folder | |
| C:\xampp\apache\modules | |
| Rồi config nào | |
| Mở file httpd-xampp.conf | |
| C:\xampp\apache\conf\extra\httpd-xampp.conf | |
| tìm đến đoạn (LoadModule php_module) | |
| Mục đích là để chạy LoadModule fcgid_module modules/mod_fcgid.so thôi còn php vẫn đang giữ | |
| ví dụ đang có | |
| # | |
| # PHP-Module setup | |
| # | |
| LoadFile "C:/xampp/php/php8ts.dll" | |
| LoadFile "C:/xampp/php/libpq.dll" | |
| LoadModule php_module "C:/xampp/php/php8apache2_4.dll" | |
| <FilesMatch "\.php$"> | |
| SetHandler application/x-httpd-php | |
| </FilesMatch> | |
| <FilesMatch "\.phps$"> | |
| SetHandler application/x-httpd-php-source | |
| </FilesMatch> | |
| Sẽ đổi thành | |
| # | |
| # PHP-Module setup | |
| # | |
| LoadFile "C:/xampp/php/php8ts.dll" | |
| LoadFile "C:/xampp/php/libpq.dll" | |
| LoadModule fcgid_module modules/mod_fcgid.so | |
| <IfModule fcgid_module> | |
| FcgidInitialEnv PATH "C:/xampp/php" | |
| FcgidInitialEnv SystemRoot "C:/Windows" | |
| FcgidInitialEnv SystemDrive "C:" | |
| FcgidInitialEnv TEMP "C:/xampp/tmp" | |
| FcgidInitialEnv TMP "C:/xampp/tmp" | |
| FcgidInitialEnv windir "C:/windows" | |
| FcgidIOTimeout 64 | |
| FcgidConnectTimeout 16 | |
| FcgidMaxRequestsPerProcess 1000 | |
| FcgidMaxProcesses 3 | |
| FcgidMaxRequestLen 8131072 | |
| # Location php.ini: | |
| FcgidInitialEnv PHPRC "C:/xampp/php" | |
| FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 | |
| <Files ~ "\.php$"> | |
| Options Indexes FollowSymLinks ExecCGI | |
| AddHandler fcgid-script .php | |
| FcgidWrapper "C:/xampp/php/php-cgi.exe" .php | |
| </Files> | |
| </IfModule> | |
| Rồi sau đó lưu lại và chạy phponfo sẽ ra như dưới thì thành công bước này. | |
| <?php | |
| phpinfo(); | |
| ?> | |
| Server API:CGI/FastCGI | |
| -3------------- | |
| Tiếp đến khai báo để chạy thui cần config ở httpd-vhosts.conf | |
| C:\xampp\apache\conf\extra\httpd-vhosts.conf | |
| ví dụ chạy php php74, php5 tương tự | |
| cổng khác, hay domain khác tương tự | |
| <VirtualHost *:80> | |
| DocumentRoot "C:/xampp/htdocs" | |
| ServerName localhost.com7 | |
| ServerAlias localhost.com7 | |
| <Directory "C:/xampp/htdocs/com7"> | |
| Options +Indexes +Includes +FollowSymLinks +MultiViews | |
| AllowOverride All | |
| Require local | |
| <Files ~ "\.php$"> | |
| AddHandler fcgid-script .php | |
| FcgidWrapper "C:/xampp/php74/php-cgi.exe" .php | |
| Options +ExecCGI | |
| </Files> | |
| </Directory> | |
| </VirtualHost> | |
| Và tất nhiên file | |
| C:\Windows\System32\drivers\etc\hosts | |
| cũng cần thêm record cho domain local | |
| 127.0.0.1 localhost.com7 | |
| ----THE END | |
| Muốn thêm các port khác nhau thì | |
| cần thêm Listen như 8080 rồi add port vào httpd-vhosts.conf là ok, không thì chạy chung cổng 80 với các domain, mà khác phiên bản php cũng được. | |
| D:\XAMPP8\apache\conf\httpd.conf | |
| ... | |
| Listen 80 | |
| Listen 8080 | |
| .... | |
| Nếu lỗi như | |
| vcruntime140.dll was not found | |
| Thì có nghĩa php bạn đang chạy cần vc11, vc15... visual cần tải về dúng với x64/x32 nữa là ok với php muốn | |
| Nếu chạy 1 file a.php mà lỗi | |
| No input file specified. | |
| Thì có thể enable log ở cònig domain đó đi thì sẽ vào để mà xem log /dummy-host2.example.com-error.log | |
| Rồi fix thui | |
| hoặc vào php.ini rồi thêm cho nó ví dụ để fix lỗi php74 khi | |
| open_basedir =C:/XAMPP/htdocs | |
| ví dụ | |
| <VirtualHost *:8080> | |
| DocumentRoot "C:\XAMPP8\htdocs" | |
| ServerName localhostzz.com | |
| ServerAlias localhostzz.com | |
| ErrorLog "logs/dummy-host2.example.com-error.log" | |
| <Directory "C:\XAMPP\htdocs"> | |
| #Options +Indexes +Includes +FollowSymLinks +MultiViews | |
| AllowOverride All | |
| Require local | |
| <Files ~ "\.php$"> | |
| AddHandler fcgid-script .php | |
| FcgidWrapper "C:/xampp8/php74/php-cgi.exe" .php | |
| Options +ExecCGI | |
| </Files> | |
| </Directory> | |
| </VirtualHost> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment