Apache没有从PHP加载模块

时间:2015-09-24 17:56:43

标签: php apache httpd.conf

我正在阅读这篇葡萄牙文章来配置Apache和PHP:

How Install And Configure The Development Environment in PHP - Part 2

我已经设置了 php.ini httpd.conf 文件。除了 php5apache2_4.dll 在正确的目录中,但是当我重新启动服务器时显示以下错误:

  

httpd.exe:D:/Apache24/conf/httpd.conf的第531行语法错误:   无效的LoadModule路径\ xe2 \ x80 \ xaa" D:/php-5.6.13/php5apache2_4.dll"

在httpd.conf:

LoadModule php5_module ‪"D:/php-5.6.13/php5apache2_4.dll"
AddType application/x-httpd-php .php 
PHPIniDir "D:/php-5.6.13/"

修改

我更改了 Httpd.conf 文件。

LoadModule php5_module ‪"../php-5.6.13/php5apache2_4.dll"
AddType application/x-httpd-php .php 
PHPIniDir "../php-5.6.13/"

现在又给我一个新的错误:

  

httpd.exe:D:/Apache24/conf/httpd.conf的第531行语法错误:   无法将../php-5.6.13/php5apache2_4.dll加载到服务器:%1 n \ xe3o   \ xe9 um aplicativo Win32 v \ xe1lido。

英语语言:不是有效的Win32应用程序。

在控制台中:

php -version
PHP 5.6.13 (cli) (built: Sep  3 2015 15:14:40)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

httpd -version
Server version: Apache/2.4.16 (Win64)
Apache Lounge VC14 Server built:   Jul 22 2015 13:24:19

11 个答案:

答案 0 :(得分:6)

我在尝试配置php7时遇到了同样的问题,所以对于其他遇到问题的人来说:

可能存在一些问题。检查你的php和Apache版本是否兼容(64位x64或32位x86;注意从windows.php.net/download/下载64位PHP时,请输入邮件文件将被称为php...Win32...x64)。

同时检查它们是否都使用相同版本的Visual Studio编译(例如VC14)。这恰好是这里的问题:www.apachelounge.com/viewtopic.php?t=6596

在我的情况下,我提到了关于引号的问题paulsm4。我复制并粘贴了网站上的代码,发现当我运行httpd -k start时,我的错误是httpd: Syntax error on line 62 of C:/Apache24/conf/httpd.conf: Invalid LoadModule path \x93c:/php7/php7apache2_4.dll\x94。对于花哨的开放和结束引号,\x93\x94CP1252 encodings。消除这些或用常规引号替换它们解决了问题,然后Apache在PHP之后顺利运行。

其他人遇到的另一个问题是尝试使用NTS(非线程安全)PHP配置Apache。

php.net/manual/en/install.windows.apache2.php PHP下载网站也提出了这一点。

答案 1 :(得分:3)

httpd_uwamp.confUnWamp发行版中为我工作的PHP文件中删除双引号。 (我的任何路径名都没有空格)

例如更改

LoadModule "{PHPMODULENAME} {PHPPATH}/{PHPAPACHE2FILE}"LoadModule {PHPMODULENAME} {PHPPATH}/{PHPAPACHE2FILE}

感谢Giancarlo Abel Giulian的职位; - )

答案 2 :(得分:1)

我遇到了同样的问题:

  

无效的LoadModule路径\ xe2 \ x80 \ x9cC:/WAMP/php/php5apache2_4.dll \ xe2 \ x80 \ x9d。

基于上面的paulsm4建议,我删除了指令LoadModule php5_module中的引号,并替换为简单的引号:

LoadModule php5_module "C:/WAMP/php/php5apache2_4.dll"

这解决了我。

答案 3 :(得分:0)

更改

LoadModule php7_module "c:/php/php7apache2_4.dll"

LoadModule php7_module /php/php7apache2_4.dll

PHPIniDir "c:/php"

PHPIniDir /php

干得好。

答案 4 :(得分:0)

无法将modules / php7apache2_4.dll加载到服务器中:找不到指定的模块。这是将apache和php环境设置到本地计算机时的常见问题

我也面临同样的问题:解决问题的最佳方法是为apache服务器和php安装相同的VC级别,并确保计算机中也安装了相同的VC ++。

对我来说,我尝试用VC14 for apache24和php,还安装了VC ++ 2015版,恰好是VC14

答案 5 :(得分:0)

就我而言,这是由于下载的PHP7类型: bground = ListboxName[index, 'bg'] 只需下载 bground = ListboxName(index)['bg'] 版本并解压缩到 Non Thread Safe ,然后再次尝试启动Apache服务。

希望这有帮助!!!

答案 6 :(得分:0)

我有一个类似的错误,因为我有一个较旧的httpd.conf文件的简单剪切和粘贴错误

LoadModule php5_module ...

而不是

LoadModule php7_module ...

希望这可以帮助其他人搜索此错误消息。

答案 7 :(得分:0)

我很难摆脱这个错误,在Apache和PHP都安装了x86版本(不是64)之后,最终解决了。

还避免了简单的文件夹名称,例如Apache2.4或php,而是使用诸如php_7.1.21_vc14_x86_tsApache_2.4.34_vc14_x86之类的详细名称来通过查看文件夹名称本身来捕获不匹配,而不是不断出现奇怪的错误。

答案 8 :(得分:0)

我可以理解收到该错误的感觉。经过数小时的研究,我发现只是删除双引号就可以了。无需删除所有三行中的双引号。从出现错误的行中删除它们。

之前

PHPIniDir “C:/PHP”
AddHandler application/x-httpd-php .php
LoadModule php7_module "C:/PHP/php7apache2_4.dll"

之后

PHPIniDir “C:/PHP”
AddHandler application/x-httpd-php .php
LoadModule php7_module C:/PHP/php7apache2_4.dll

对我有用。我认为,除非您以错误的方式安装了PHP,否则上两行不会给您错误。

进行测试(如果您不知道)

  1. 打开cmd(无需以管理员身份打开,但是可以)

  2. 将bin文件夹导航到c:/ apache / bin(或任何文件夹)

  3. 输入httpd -t 它应该显示语法正常 如果不是这样,那么您需要按照显示错误的方法进行操作。 尽力而为。

相当糟糕的答复?我知道,这是我对任何疑问的第一个答复。

答案 9 :(得分:0)

您必须确保您使用的是与Apache兼容的PHP版本。这样,如果您运行的是32位apache,请确保您使用的是PHP 32位,并且64位也同样适用。为了进行初步分析,请执行以下操作。

  1. 打开命令提示符,然后导航到apache安装bin文件夹,例如 cd“ C:/ Apache24 / bin”

  2. 然后运行以下命令以查看语法是否正常 httpd.ex -t

响应将告诉您您的PHP位置是否缺少提到的dll php5apache2_4.dll。如果是这种情况,则必须使用apache下载特定的兼容PHP版本。否则,它将告诉您语法可以。

有关更多信息,请访问此链接

https://danielarancibia.wordpress.com/2015/09/27/installing-apache-2-4-and-php-7-for-development-on-windows/

答案 10 :(得分:0)

我有同样的错误。我唯一改变的是 php_modulephp7_module

之前

PHPIniDir "c:/php"
LoadModule **php_module** "c:/php/php7apache2_4.dll"
AddType application/x-httpd-php .php

之后

PHPIniDir "c:/php"
LoadModule **php7_module** "c:/php/php7apache2_4.dll"
AddType application/x-httpd-php .php