我们使用PHP7.0运行XAMPP是因为我们的新产品需要PHP7。
但是有些老项目使用mysql_connect
等函数,这些函数在PHP7.0中被删除。
那么,有没有办法在XAMPP中轻松更改PHP版本呢?
注意:请不要建议将旧项目升级到与新版本兼容,因为我不能这样做,因为作为一个开发人员(只是一个员工),我不能得到这些决定。
当您可以通过一个xampp安装同时使用多个PHP版本时,为什么要在PHP版本之间切换呢?对于单个xampp安装,您有两个选项:
>
仅为旧项目的目录运行较旧的PHP版本:这在大多数情况下会起到作用,您可能有一两个旧项目打算用较旧的PHP版本运行。只需将xampp配置为仅为那些项目目录运行较旧的PHP版本。
在XAMPP的单独端口上运行较旧的PHP版本:有时,当您需要在新的和较旧的PHP版本上来回运行相同的项目时,您可能会将旧的项目升级到最新的PHP版本。然后,您可以在不同的端口(例如8056)上设置较旧的PHP版本,因此当您转到http://localhost/any_project/
xampp运行PHP 7,而当您转到http://localhost:8056/any_project/
xampp运行PHP 5.6。
在virtualhost上运行较旧的PHP版本:您可以创建一个像localhost56这样的virtualhost来运行PHP5.6,同时可以在LocalHost上使用PHP7。
让我们设置一下。
步骤1:下载PHP
因此,您在xampp下运行PHP7,您希望在其中添加一个较旧的PHP版本,例如PHP5.6。从PHP.NET下载nts(非线程安全)版本的PHP zip归档文件(有关旧版本,请参阅归档文件),并解压缩C:\xampp\php56
下的文件。线程安全版本不包括php-cgi.exe。
步骤2:配置php.ini
在记事本中打开C:\xampp\php56\php.ini
文件。如果文件不存在,请将php.ini-development
复制到php.ini
并在记事本中打开它。然后取消对以下行的注释:
extension_dir = "ext"
步骤3:配置apache
打开xampp控制面板,单击apache的config按钮,然后单击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>
注意:如果需要,您可以在步骤1到3之后向xampp安装中添加更多的PHP版本。
步骤4(选项1):[添加目录以运行特定PHP版本]
现在您可以设置将在PHP5.6中运行的目录。只需在配置文件(步骤3中的httpd-xampp.conf
)底部添加以下内容即可设置目录。
<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版本]
现在,要将PHPV5.6设置为端口8056,请将以下代码添加到配置文件的底部(步骤3中的httpd-xampp.conf
)。
Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>
步骤4(选项3):[在虚拟主机上运行较旧的PHP版本]
要在目录(htdocs56)上创建一个虚拟主机(localhost56),以便在http://localhost56上使用PHPV5.6,请在您所需的位置创建目录htdocs56,并将localhost56添加到您的主机文件中(请参阅如何操作),然后将以下代码添加到配置文件的底部(步骤3中的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
保存并关闭配置文件,从xampp控制面板重新启动apache。如果您选择了选项2,您可以看到xampp控制面板中列出的附加端口(8056)。
错误的更新:
脚本“php-cgi.exe”中格式错误的头:错误的头
如果遇到上述错误,请再次打开httpd-xampp.conf
,并用前导的#(哈希字符)注释掉下面的行。
SetEnv PHPRC "\\path\\to\\xampp\\php"