当您可以通过单个 xampp 安装同时使用多个 PHP 版本时,为什么要在 PHP 版本之间切换?
使用单个 xampp 安装,您有 2 个选项:
-
仅为旧项目的目录运行较旧的 PHP 版本:这将在大多数情况下达到目的。您可能有一个或两个旧项目打算使用较旧的 PHP 版本运行。只需将 xampp 配置为仅针对这些项目目录运行较旧的 PHP 版本。
-
在单独的 xampp 端口上运行较旧的 PHP 版本: 有时您可能正在将旧项目升级到最新的 PHP 版本,同时您需要来回运行相同的项目新 PHP 版本和旧 PHP 版本之间。为此,您可以在不同的端口(例如 8056)上设置较旧的 PHP 版本,因此当您转到 http://localhost/any_project/ 时,xampp 运行 PHP 7,而当您转到 http://localhost:8056/any_project/ 时,xampp 运行 PHP 5.6。
-
在虚拟主机上运行较旧的 PHP 版本:您可以创建一个像 localhost56 这样的虚拟主机来运行 PHP 5.6,同时您可以在 localhost 上使用 PHP 7。
让我们设置一下
第 1 步:下载 PHP
所以你有 PHP 7 在 xampp 下运行,你想向它添加一个旧的 PHP 版本(比如 PHP 5.6)。从php.net 下载 nts(非线程安全)版本的 PHP zip 压缩包(旧版本请参阅archive)并解压缩c:\xampp\php56 下的文件。线程安全版本不包含php-cgi.exe。
第二步:配置php.ini
在记事本中打开文件c:\xampp\php56\php.ini。如果该文件不存在,请将php.ini-development 复制到php.ini 并在记事本中打开。然后取消注释以下行:
extension_dir = "ext"
如果 Apache 配置中存在以下行 httpd-xampp.conf
SetEnv PHPRC "\\path\\to\\xampp\\php"
使用前导 #(哈希字符)将其注释掉。
第 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 将更多版本的 PHP 添加到您的 xampp 安装中。
第 4 步(选项 1): [添加目录以运行特定的 PHP 版本]
现在您可以设置将在 PHP 5.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 版本]
现在要在端口 8056 上设置 PHP v5.6,请将以下代码添加到配置文件的底部(步骤 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 上使用 PHP v5.6,请在所需位置创建目录 htdocs56 并
将 localhost56 添加到您的主机文件 (see how),
然后将以下代码添加到配置文件的底部(步骤 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)。