windows下php與apache 安裝的幾個問題
安裝過程中可能出現出現的幾個問題:
1.啟動apache遇到錯誤:httpd: Could not reliably determine the server's fully qualified domain name
這個問題我的理解是:端口問題。(端口占用,端口沖突類似問題)
一種辦法是在apache的httpd.conf文件中查找“Listen”修改其端口值。
另一種辦法是查找當前占用端口的進程并殺死該進程。
查找端口使用情況:
netstat -anofindstr "8080"查看使用該端口的進程:(“x”為進程號)
tasklistfindstr "x"
結束某個進程:(“x”為進程號)
tskill "x"鑒于我的tomcat用的端口8088,iis用的8080,于是我把Listen值改成了8090解決了問題。
如果用上面兩種方法都沒有解決(應該是DNS配置的問題),可以在httpd.conf中添加一句話(添加“ServerName localhost:8090”,位置如下):
#ServerName www.example.com:80 ServerName localhost:80
2.啟動Apache時提示錯誤“Cannot load php5apache2_4.dll into server”
我下載的是最新版本的php(php-5.5.15-Win32-VC11-x64)。
在httpd.conf中有這么一句:(報錯的時候顯示這一行錯誤)
LoadModule php5_module "c:\php\php5apache2_4.dll"
看到這個問題第一個想法是用php5apache2_2.dll替換php5apache2_4.dll,實踐證明失敗了。
網上搜了一下,原因可以理解為:版本問題。
細心點會發現php名字上會有VC9,VC11的標識。代表著該php應該運行在什么樣的VC編譯環境下。(畢竟這個東西實用C++寫的嘛...)
我的理解是帶有VC9的應該運行在裝有VC2008運行庫下,VC11的應該在裝有VC2012運行庫下。可是我安裝了2012的運行庫之后發現還是不能正確運行。用了亮神給的php-5.3.6-Win32-VC9-x64(里面的是php5apache2_2.dll),配置好后運行ok。
http://windows.php.net/官網上有如是說:
VC9 and VC11
More recent versions of PHP are built with VC9 or VC11 (Visual Studio 2008 and 2012 compiler respectively) and include improvements in performance and stability.
The VC9 builds require you to have the Visual C++ Redistributable for Visual Studio 2008 SP1 x86 or x64 installed.
The VC11 builds require to have the Visual C++ Redistributable for Visual Studio 2012 x86 or x64 installed.
意思就是VC9和VC11各自需要特定的編譯環境。VC9 --> VC2008,VC11 --> VC2012。
網上看到這樣一種說法。“由于apache版本的不同,對應的“php5apache2.dll”也不同” 。意思是apache和php版本有相互配套的關系。
即:
Apache2.2 對應 php5apache2_2.dll Apache2.1 對應 php5apache2.dll Apache1 對應 php5apache.dll但我覺得應該沒有對應關系,畢竟官網上沒說嘛。
可是我裝了VC2012運行庫后VC11版本的php還不好用,我只能懷疑我VC2012運行庫沒裝好或者真的存在某種對應關系了。
如果環境沒問題,這個對應關系不妨一試。
關鍵字:php、apache、安裝
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解