[英]Apache doesn't load module from PHP
我正在關注這篇葡萄牙語文章來配置 Apache 和 PHP:
我已經設置了php.ini和httpd.conf文件。 除了php5apache2_4.dll位於正確的目錄之外,但是當我重新啟動服務器時,顯示以下錯誤:
httpd.exe: D:/Apache24/conf/httpd.conf 的第 531 行語法錯誤: Invalid LoadModule path \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\賽利多。
英語:不是有效的 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
我在嘗試配置 php7 時遇到了同樣的問題,所以對於其他有問題的人:
可能有幾個問題。 檢查您的 php 和 Apache 版本是否位兼容(64 位x64
或 32 位x86
;請注意,從windows.php.net/download/下載 64 位 PHP 時,zip 文件將被稱為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
和\x94
是花哨的開頭和結尾引號的CP1252 編碼。 消除這些或用常規引號替換它們可以解決問題,之后 Apache 可以使用 PHP 順利運行。
其他人遇到的另一個問題是嘗試使用 NTS(非線程安全)PHP 配置 Apache。
php.net/manual/en/install.windows.apache2.php PHP 下載網站也說明了這一點。
從httpd_uwamp.conf
文件中刪除雙引號對我來說在UnWamp
和PHP
發行版上都有效。 (我的任何路徑名中都沒有空格)
例如更改
LoadModule "{PHPMODULENAME} {PHPPATH}/{PHPAPACHE2FILE}"
到LoadModule {PHPMODULENAME} {PHPPATH}/{PHPAPACHE2FILE}
感謝 Giancarlo Abel Giulian 的帖子 ;-)
您必須確保您使用的是與 apache 兼容的 PHP 版本。 這樣,如果您正在運行 apache 32 位,請確保您使用的是 PHP 32 位,這同樣適用於 64 位。 對於初步分析,請執行以下操作。
打開命令提示符並導航到您的 apache 安裝 bin 文件夾,例如 cd "C:/Apache24/bin"
然后運行以下命令查看語法是否正常: httpd.exe -t
響應將告訴您是否在您的 PHP 位置中缺少提到的 dll php5apache2_4.dll。 如果是這種情況,那么您必須使用 apache 下載特定的兼容 PHP 版本。 否則它會告訴你語法沒問題。
欲了解更多信息,請訪問此鏈接
我遇到了同樣的問題:
無效的加載模塊路徑 \xe2\x80\x9cC:/WAMP/php/php5apache2_4.dll\xe2\x80\x9d。
根據上面 paulsm4 的建議,我刪除了指令 LoadModule php5_module 中的引號並用簡單的引號替換:
LoadModule php5_module "C:/WAMP/php/php5apache2_4.dll"
這為我解決了。
我有一個類似的錯誤,因為我有一個舊的 httpd.conf 文件中的一個簡單的剪切和粘貼錯誤
LoadModule php5_module ...
代替
LoadModule php7_module ...
希望這可以幫助其他人谷歌搜索此錯誤消息。
改變
LoadModule php7_module "c:/php/php7apache2_4.dll"
至
LoadModule php7_module /php/php7apache2_4.dll
和
PHPIniDir "c:/php"
至
PHPIniDir /php
做得好。
無法將模塊/php7apache2_4.dll 加載到服務器中:找不到指定的模塊。 這是在本地計算機中設置 apache 和 php 環境時的常見問題
我也遇到了同樣的問題:解決問題的最佳方法是為 apache 服務器和 php 安裝相同的 VC 級別,並確保計算機中也安裝了相同的 VC++。
對我來說,我嘗試使用 VC14 用於 apache24 和 php,還安裝了 VC++ 2015 版,恰好是 VC14
在我的情況下,這是由於下載的 PHP7 的類型: Non Thread Safe
只需下載Thread Safe
版本並解壓縮到C:\php7 (Default directory)
,然后嘗試再次啟動 Apache 服務。
希望這有幫助!!!
我很難擺脫這個錯誤,最終在( Apache 和 PHP )安裝 x86 版本(不是 64 )后解決。
還避免了簡單的文件夾名稱,即 Apache2.4 或 php,而是使用詳細名稱(如php_7.1.21_vc14_x86_ts
和Apache_2.4.34_vc14_x86
)通過查看文件夾名稱本身而不是不斷出現奇怪的錯誤來捕獲不匹配。
我能理解得到這個錯誤的感覺。 經過數小時的研究,我發現只需刪除雙引號,你就可以走了。 無需從所有三行中刪除雙引號。 從給您錯誤的行中刪除它們。
前
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。
測試它(如果你不知道)
打開 cmd (無需以管理員身份打開,但可以)
導航到 bin 文件夾到 c:/apache/bin (或任何你的文件夾)
輸入 httpd -t 如果不是,它應該顯示語法 OK,所以你需要在它說有錯誤的行上工作。 都是他最好的。
回復很差? 我知道這是我對任何疑問的第一次答復。
我有同樣的錯誤。 我唯一改變的是php_module
到php7_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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.