我们使用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"
问题内容: 我想在Python中使用PhantomJS。我用谷歌搜索了这个问题,但是找不到合适的解决方案。 我发现 可能是一个不错的选择。但是我无法通过一些争论。 使用可能是目前合适的解决方案。我想知道是否有更好的解决方案。 有没有办法在Python中使用PhantomJS? 问题答案: 在python中使用PhantomJS的最简单方法是通过Selenium。最简单的安装方法是 安装NodeJS
我想在Python中使用PhantomJS。我谷歌了这个问题,但找不到合适的解决方案。 我发现可能是一个不错的选择。但我无法向它传递一些论据。 使用目前可能是一个合适的解决方案。我想知道是否有更好的解决办法。 有没有办法在Python中使用PhantomJS?
我搜索了如何在同一台机器上安装php5和php7,但没有找到答案。 我正在做两个不同的项目,一个依赖于php5,另一个依赖于php7 我在linux上使用xampp 如何运行两个版本的php 5
问题内容: 我快速浏览了Guava的源代码和文档,但似乎都没有提到版本。我想知道是否有一种方法可以在运行时获取Guava的版本信息。 如果实际上不存在此版本信息,则不必通过任何获取器进行访问。如果将其保存在某个字段中,而该字段在加载番石榴时没有得到GC,那么就足够了。 在运行时的任何地方都可以使用此版本信息吗? 我对此有非常具体的用途。我的工作很大一部分是分析Java堆转储,以识别并修复代码中导致
我正在将应用程序设置为在play store上上载,但play console显示错误,您需要为APK或Android应用程序包使用不同的版本代码,因为您已经有一个版本代码为1的应用程序包。我试着在Android系统中更改版本代码
问题内容: 我有两个长度相同的列表对象,并且要渲染互补数据,有没有一种方法可以同时渲染两个列表对象。 或类似的东西? 问题答案: 如果两个列表的长度相同,则可以在视图中作为模板上下文返回,从而生成一个二值元组列表。 例: 然后,您可以在模板中编写: 另外,在此处查看有关模板标记的Django文档。它提到了使用它的所有可能性,包括漂亮的示例。