【问题标题】:PHP load error: %1 is not a valid Win32 application.PHP 加载错误:%1 不是有效的 Win32 应用程序。
【发布时间】:2015-10-21 06:57:12
【问题描述】:

运行win64架构,第一次尝试用Apache运行php。加载httpd.conf中的php模块后,apache启动失败,显示错误日志

Cannot load c:/php/php5apache2_4.dll into server: %1 is not a valid Win32 application.  

其他消息来源声称这是一个兼容性问题,并且存在带有 win64 apache 的 php 的 win32 版本,反之亦然,我认为情况并非如此。我从http://www.apachelounge.com/download/ 下载了win64 vc14 版本的apache,从http://windows.php.net/download#php-5.6 下载了win64 vc11 版本的php - 当我尝试加载php 模块时出现错误是什么原因?

【问题讨论】:

  • Windows 日志文件告诉您什么?是否有任何 apache 或 php 日志文件要检查?一个错误可能不足以诊断问题。
  • 您是否在应用程序或系统日志的事件日志中看到任何错误?你是如何执行 Apache 的? %1 应该指的是发送到可执行文件的参数。
  • 您是否安装了所有必需的 vc++ 运行时?
  • 您能否提供加载模块的 HTTPd.conf 以及您的 Apache 版本 PHP 版本以及所有相关内容?

标签: php apache


【解决方案1】:

实际上是二进制版本的差异,所以apache和php之间的兼容性问题。

既然你已经安装了apache vc14 windows 64,请下载这个vc14的php

http://windows.php.net/downloads/releases/php-7.0.13-Win32-VC14-x86.zip 用 apache 配置 php。

【讨论】:

  • 旧版本怎么办?我应该以某种方式删除它吗?我想我应该更改 PATH 以指向您发布的较新版本。我看到它是 php 7,它是稳定版本吗?我应该知道任何 apache 配置更改吗?
  • 好吧,它似乎工作。我唯一改变的想法是将新版本添加到PATH,删除旧版本,虽然当我运行php -v时它显示旧版本,不知道为什么。我在 httpd.conf 中添加了LoadModule php7_module "c:/php-7.0.1-Win32-VC14-x64/php7apache2_4.dll"
  • 我也改了PHPIniDir "c:/php-7.0.1-Win32-VC14-x64",但php.ini在哪里?
  • 您可以使用 phpinfo() 找到 php.ini 文件的位置;功能。创建一个新的php文件并编写phpinfo();进去。现在从浏览器运行它,你会在“加载的配置文件”部分看到 php.ini 的位置。
  • 我已经这样做了,Loaded Configuration File 字段为空。这就是为什么我必须将PHPIniDir 指向我的旧版本才能使其正常工作:(
【解决方案2】:

我也遇到了这个错误

 (%1 is not a valid Win32 application.)
 Warning: Module 'pdo_mysql' already loaded in Unknown on line 0

我刚刚评论了

;extension=php_pdo.dll
;extension=php_pdo_mysql.dll

这两行和两个错误都消失了,一切正常。 由于“已加载”错误,我评论了这些行,但它以某种方式修复了这两个...

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多