无法使用Apache 2.4从PHP5切换到PHP7

时间:2016-02-09 11:30:36

标签: php apache

我最近为Windows下载了最新版本的AppServ(Appserv8)。 它会安装Apache 2.4MySQL 5.7以及PHP5PHP7两个版本。安装后,使用的PHP版本为5。

我尝试使用脚本" PHP Version Switch "来切换版本。提供安装,但它似乎无法正常工作。

我尝试手动编辑http.conf文件夹中的Apache24文件,但没有结果。

使用这些行Apache通常使用PHP5启动:

LoadModule php5_module C:/AppServ/php5/php5apache2_4.dll
PHPIniDir "C:/AppServ/php5/"

如果我编辑:

LoadModule php7_module C:/AppServ/php7/php7apache2_4.dll
PHPIniDir "C:/AppServ/php7/"

当我尝试启动Apache时,我收到以下错误:

httpd.exe: Syntax error on line 180 of C:/Appserv/Apache24/conf/httpd.conf: Cannot load C:/Appserv/php7/php7apache2_4.dll into server: Impossibile trovare il modulo specificato.

(部分错误是意大利语:无法找到指定的模块)

请注意,dll位于路径中指定的文件夹中。我遇到了这个错误,我不知道在哪里修改配置文件(如果这是问题)。

EDIT1: 在某处,我发现this discussion作者在其中解释说,由于Visual C ++的依赖性,DLL无法读取。我检查了我的系统,我从多个Microsoft Visual C ++可再发行组件的安装中清除了它,我尝试安装x64或x86版本。

使用x86版本,我遇到了上一个问题。 使用x64版本,由于缺少dll,我无法启动Apache:应该是因为apache是​​x86版本(我不确定这个)。

EDIT2: 正如@chugadie所建议的那样,我尝试使用dependencywalker来跟踪依赖关系。 我找到了几个前缀为API-MS-WIN-CRT的丢失文件。 现在我试图修复,但我有几个问题,dll是x86和x64。我认为最好的方法是在x64架构中重新安装所有组件。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

在“开始”菜单上的AppServ文件夹(或Win键+ S)上,您必须为PHP版本开关搜索并且它将请求管理员权限(如果您拒绝它,它将无法工作),那么它将显示cmd控制台rquesting你要在Apache上设置PHP版本,按7切换PHP 7或按5切换PHP5。

如果您这样做并且无效,则应撤消在AppServ文件上执行的更改。

答案 1 :(得分:2)

我和幸福的结局有同样的问题。我的解决方案:

  1. 安装https://www.microsoft.com/en-hk/download/details.aspx?id=40784
  2. 安装appserv时,您将看到“Visual C ++ Redistributable”窗口,然后按“卸载”按钮。
  3. 您安装appserv并完成。
  4. Arrivederci e buona fortuna。