我最近下载了适用于Windows的最新版AppServ(Appserv8).
它安装Apache 2.4,MySQL 5.7以及PHP5和PHP7两个版本.安装后,使用的PHP版本为5.
我尝试使用随安装提供的脚本“PHP Version Switch”来切换版本,但它似乎无法正常工作.
我试图在Apache24文件夹中手动编辑http.conf文件但没有结果.
使用这些行,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架构中重新安装所有组件.
非常感谢任何帮助.
解决方法:
在开始菜单(或Win键S)上的AppServ文件夹上,您必须搜索PHP版本切换,它将请求管理员权限(如果您拒绝它,它将无法工作),然后它将显示一个cmd控制台,请求您使用PHP版本要设置Apache,按7切换PHP 7或按5切换PHP5.
如果您这样做并且它将无法工作,您应该撤消在AppServ文件上执行的更改.
标签:php,apache
来源: https://codeday.me/bug/20190727/1556049.html