[英]Error in httpd.conf. Can't locate API module structure `php5_module'
[英]httpd.conf on Windows: can't locate API model structure `php8_module`
我正在嘗試按照這些指南在 ZAEA23489CE3AA9B6403EBB28E0CDA 上安裝 PHP、Apache 和 MySQL,4 在某些時候,系統會提示我編輯httpd.conf
以指向我的 PHP 安裝。 Both the apache directory and the php directory are under C:\
: C:\Apache24
and C:\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
php8_module
似乎無法識別 php8_module。 有任何想法嗎?
我有完全相同的問題。 我在這里找到了解決方案。
正如在 PHP 8 中所證明的那樣,我們不應該像我們期望的那樣使用php8_module
,而只能使用普通php_module
所以加載器行應該是這樣的:
LoadModule php_module "c:/Program Files/PHP/php-8.0.0RC2/php8apache2_4.dll"
您會期望 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
你應該得到 output “語法 OK”。 現在您可以啟動 apache 服務器而不會出現任何錯誤。
如果你只是在尋找答案,那就是:
LoadModule php7_module "C:/Apache/modules/php7apache2_4.dll"
如果您想繼續閱讀,我正在嘗試幫助人們解決嘗試一起安裝 php、mysql 和 apache 時遇到的其他問題。
因此,通常對於 PHP 8 版本,如果您嘗試安裝它並嘗試將其與 MySQL 和 Apache 連接,我們已經知道它將無法工作。 如果您不知道這一點,請 go 並卸載 PHP 8 並將 Php 目錄 7.4 安裝到您的 ZE12671F8384DCA84D3 中
現在這一行:
httpd.exe: Syntax error on line 244 of C:/Apache/conf/httpd.conf: Can't locate API module structure `php_module' in file C:/Apache/modules/php7apache2_4.dll: No error
如果您注意到錯誤實際上是語法錯誤,如果您按字母 go 嘗試解決該問題,則該語法非常令人困惑。 事實證明,這更像是一個邏輯錯誤而不是語法錯誤。
現在,如果您在配置代碼中鍵入:
LoadModule php_module "C:/Apache/modules/php7apache2_4.dll"
您沒有錯或與實際解決方案相去甚遠,實際上您對上述行的正確率是 99%。
因此,如果您再次注意到錯誤行,則表明它無法找到名為 php_module 的php_module
。 因此,默認情況下,對於 PHP 8,您不需要按照它的理解更改此行,但對於 Php 7.4,您必須在 php 前面添加一個 7,以便它可以定位模塊。
所以要放置在配置文件中的正確代碼行是:
LoadModule php7_module "C:/Apache/modules/php7apache2_4.dll"
感謝您耐心閱讀本文,我希望它可以幫助任何尋找與嘗試一起下載 php 7.4、mysql 和 apache 相關的完整答案的人。
它應該如下所示:
# PHP8 module
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
LoadModule php_module "c:/php/php8apache2_4.dll"
PHPIniDir "c:/php"
LoadModule php[PHP_MAIN_VERSION]_module "path/to/PHP/php[PHP_MAIN_VERSION]apache2_4.dll"
例子:
LoadModule php7_module "C:/php7.4.27/php7apache2_4.dll"
要解決我的錯誤,我必須添加為
LoadModule php_module "c:/php/php8apache2_4.dll"
代替
LoadModule php8_module "c:/php/php8apache2_4.dll"
我的工作環境詳情..
在 httpd.conf 文件中:我在頂部添加了下面的代碼行。
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
LoadModule php_module "c:/php/php8apache2_4.dll"
PHPIniDir "c:/php"
我有同樣的問題,但在我的情況下,它可以改變 httpd.conf 文件中的這一行
#ServerName www.example.com:80
至
ServerName localhost
它奏效了
不要忘記@vmxes 答案
從https://windows.php.net/download#php-8.0你必須下載“線程安全”版本。 否則你沒有“php8apache2_4.dll”,你需要這樣 php8 在 XAMPP 中與 apache 一起工作。 只需下載此版本即可
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.