Windows 上的 httpd.conf:找不到 API 模型结构“php8_module”

2022-08-30 12:31:09

我正在尝试按照这些准则在Windows上安装PHP,Apache和MySQL。在某些时候,系统会提示我进行编辑以指向我的PHP安装。apache 目录和 php 目录都位于 : 和httpd.confC:\C:\Apache24C:\php-8.0.0beta1-Win32-vs16-x64.

我的安装的相关行是:

PHPIniDir "C:/php-8.0.0beta1-Win32-vs16-x64"
AddHandler application/x-httpd-php .php .phar
LoadModule php8_module "C:/php-8.0.0beta1-Win32-vs16-x64/php8apache2_4.dll"

不幸的是,这些似乎破坏了Apache,因为即使之后运行也会产生:httpd

httpd.exe: Syntax error on line 542 of C:/Apache24/conf/httpd.conf: Can't locate API module structure `php8_module' in file C:/php-8.0.0beta1-Win32-vs16-x64/php8apache2_4.dll: No error

似乎PowerShell不承认这一点。有什么想法吗?php8_module


答案 1

我有完全相同的问题。我在这里找到了一个解决方案。

事实证明,在 PHP 8 中,我们不应该像预期的那样使用,而只能使用普通的php8_modulephp_module

所以加载器行应该看起来像这样:

LoadModule php_module "c:/Program Files/PHP/php-8.0.0RC2/php8apache2_4.dll"

答案 2

你会期望 PHP8 的 Apache2 指令直观地说是:

LoadModule php8_module "path/to/PHP/php8apache2_4.dll"

相反,您必须使用:

LoadModule php_module "path/to/PHP/php8apache2_4.dll"

我觉得这很奇怪,但事实就是这样。

如果您现在导航到Apache2bin目录(类似于C:/Apache24 / bin),并使用以下命令检查httpd.conf文件是否有任何语法错误:

httpd -t

您应该获得输出“语法正常”。现在,您可以启动apache服务器而不会出现任何错误。


推荐