项目需要,想在windows的xampp环境中增加多版本php的支持。
已有php版本是5.6,要增加7.2版本的php。
做如下配置:
找到xampp/apache/conf/extra文件夹中的httpd-xampp.conf文件,所有xampp的php相关环境配置都在此处。
(1)注释掉如下配置:
#<FilesMatch "\.php$">
# SetHandler application/x-httpd-php
#</FilesMatch>
#<FilesMatch "\.phps$">
# SetHandler application/x-httpd-php-source
#</FilesMatch>
这段配置是将php以apacheHandeller的形式启动,会影响多版本php的支持。
(2)添加如下配置:
<IfModule mod_php5.c>
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
</IfModule>
(3)将下载好的php7放在适当位置,我放在了xampp/php7这个位置
(4)下载符合环境中apahce版本的mod_fgcid模块,下载地址:http://httpd.apache.org/mod_fcgid/(这个是官方地址,版本较新,要使用较早版本的,需要在网上找一下)
(此处下载匹配文件较复杂,有32位和64位系统之分,但我下载了符合我windows版本的64位的mod_fgcid.so却不支持,后来发现我安装的xampp是32位版本的,所以下载了32位版本的发现可以)
(5)之后将mod_fcgid.so放在apache的modules文件夹中,之后在http-xampp.conf中文件内容:
LoadFile "G:/xampp/php/php5ts.dll"
LoadFile "G:/xampp/php/libpq.dll"
LoadModule php5_module "G:/xampp/php/php5apache2_4.dll"
<IfModule mod_php5.c> #mod方式加载
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php .php3
AddHandler application/x-httpd-php-source .phps
</IfModule>
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c> #fcgi方式加载
FcgidInitialEnv PHPRC "G:/xampp/php7"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 10000
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 15
FcgidIOTimeout 500
FcgidIdleTimeout 900
</IfModule>
<Directory "G:/xampp/htdocs/php7">
AddHandler fcgid-script .php
FcgidWrapper "G:/xampp/php7/php-cgi.exe" .php
Options +ExecCGI
AllowOverride all
Require all granted
</Directory>
(6)重启apache,OK