Windows-7

Apache 配置修改後 Apache 啟動失敗,顯示語法錯誤,無法將 php5apache2_2.dll 載入到伺服器

  • August 22, 2018

我再次被apache設置人員困住了。我正在使用帶有 service pack 1 的執行 Windows 7 專業版的 64 位系統。我從隊友那裡複製了工作 php5 安裝目錄,.dll從 php5 安裝文件夾中複製了必要的文件(就像他們在隊友的工作設置中一樣)到我的windows/system32/. Apache 伺服器使用預設的 apache config ( httpd.conf) 文件成功啟動。我能夠在瀏覽器中訪問本地主機。但是php程式碼沒有解析。我注意到 apache 配置文件中沒有像下面這樣的行:-

# PHP5 module
LoadModule php5_module D:/php5/php5apache2_2.dll

如果我添加這一行,apache 伺服器啟動將失敗。執行測試配置會出現以下錯誤 -

httpd.exe: Syntax error on line 60 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load D:/php5/php5apache2_2.dll into server: The specified procedure could not be found.  

但是該php5apache2_2.dll文件位於指定位置,並且我已將目前系統使用者的所有權限授予php5安裝目錄。同一行也出現在 apache 錯誤日誌中。這裡的另一件事是我不確定何時將日誌準確寫入日誌文件。如果我打開日誌文件進行閱讀,如果沒有創建日誌條目,我會感到困惑嗎?大聲笑…因為我無法在輸入時觀察到模式。我看到了一些日誌條目,有些沒有。但現在這是一個單獨的問題。

我之前在同一個系統上,在另一個硬碟上設置了 apache、php。我已經按照與現在相同的步驟進行了操作,並且確實設置成功,儘管經過了很多令人頭疼的事情,就像我在上面寫的日誌文件條目混亂一樣。我不記得我之前是如何修復它的。但是,我嘗試使用相同的 apache 配置文件(之前在舊硬碟上的先前設置中工作的那個 - 已備份),但它仍然給出相同的錯誤。

更新

我閱讀了http://us3.php.net/manual/en/install.windows.apache2.phpAddHandler application/x-httpd-php .phpLoadModule php5_module "D:/php5/php5apache2_2.dll". 仍然沒有成功。

我還閱讀了這個部落格,其中提到了一些 VC6 和 VC9 二進製文件。我不知道他們。我需要為此做點什麼嗎?

進一步更新我從http://httpd.apache.org/download.cgi

下載了 apache - “Win32 Binary without crypto (no mod_ssl) (MSI Installer)”選項。

很可能您有不兼容的 Apache build。你沒有提到你從哪裡下載 Apache HTTPD + 你有什麼 PHP 版本。

  1. 從Apache Lounge 網站獲取最新的 Apache 建構——他們的建構是用VC9編譯的,而 apache.org 建構仍然是 VC6。您需要 VC9 建構,因為這就是現在編譯官方 PHP 建構的方式(您可以閱讀 PHP for Windows 網站上的小說明——參見 #2 中的連結)。
  2. PHP for Windows獲取PHP 的執行緒安全建構(根據您希望將其作為 Apache 模組執行的問題)。如果您想將其作為 FastCGI 執行,則需要非執行緒安全建構。
  3. 禁用所有非預設php 擴展(直到您成功啟動 Apache 並執行 PHP)。
  4. 如有必要,配置您的 PHP 和 Apache(到目前為止您提到的那些 Apache 配置行都很好)。

PS “將必要的.dll文件從php5安裝文件夾(就像他們在隊友的工作設置中一樣)複製到我的windows/system32/”

  1. 您使用的是 x64 位版本的 Windows。C:\windows\system32\僅適用於 64 位程序/文件。在您的情況下,Apache 和 PHP 是 x32,所以正確的位置是C:\Windows\SysWOW64.
  2. 沒有真正的理由將這些文件複製到那裡——您可以將 PHP 安裝路徑 ( D:\php5\) 添加到 PATH 環境變數中(將其放在前面),Windows 會自動找到所有文件(可能需要重新啟動)——我。

PPS 您可以使用已經預配置的堆棧之一,而不是手動安裝它:XAMPWAMP或類似的。

引用自:https://serverfault.com/questions/286062