標籤:c style blog code a tar
1、首先下載apache http server(我本來是想在官網下載,但是找半天也沒找到,於是就在網上下了一個老版本的)我是在這個網址下載的:http://download.csdn.net/download/chang87812/7175961
下載PHP:同樣的我開始在官網下載了最新版的(網址:(http://windows.php.net/downloads/releases/)
但是後來配置好後又有問題。
問題是:httpd: Syntax error on line 129 of D:/PHP/server/httpd-2.2-x64/conf/httpd.conf: Cannot load D:/ApaServ/php/php5apache2_4.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3.
原因是:此檔案要跟版本對應,否則就不能載入。後來又出現一次,也是這個提示,只是換成了php5.4.8 在174行,“D:\ApaServ\php\php5apache2_4.dll”的啟用上下文產生失敗。 找不到依存性程式集 vcredist_x86.exe。後來解決方案是: 把 vcredist_x86.exe重新安裝了一次,這個是我在安裝apache之前安裝的,可能裡面的檔案被改寫了,所以找不到。我也是看了網上:在類似C:\Program Files\Microsoft Visual Studio 8\VC\redi st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列檔案:
msvcm80d.dll msvcp80d.dll msvcr80d.dll Microsoft.VC80.DebugCRT.manifest 把這幾個檔案拷貝到目標機器上,與運行程式同一檔案夾或放到system32下,就可以正確運行了。
其他release版、MFC程式什麼的都是拷redist下相應檔案夾下的檔案就可以了,檔案夾後都有標識!
這個提示後,才想到的。後來安裝php5.5的時候又出現這個錯誤提示,我開始是按自己的理解,安裝了VC++2010運行庫,但無論怎麼調試都是這個錯誤,後來我就從網上下載最高版本的VC++2012運行庫,一下就成功。(此原因是我在網上查到的,我並沒有實踐,我不想再裝VC++2012運行庫了!!!)
於是我就又在網上找到了一個老版本的PHP,下載網址:http://download.csdn.net/download/tonyyxm/5428271
二、安裝Apache
1、64位的Apache不同於32位打包成exe檔案可直接安裝,先把httpd-2.2.19-win64解壓到E:/server/ apache- httpd-2.2.19-win64/(/*E為具體伺服器檔案所在盤盤符*/)
2、以管理員身份運行 命令提示字元(開始-程式-附件),進入E:/server/apache-httpd-2.2.19-win64/
3、執行httpd -k install
此處出現問題:failed to open the winNT service manager
解決:原來是軟體安裝時與windows7的“使用者賬戶控制”(UAC)衝突,只要先關閉UAC(控制台-使用者賬戶和家長監護服務-系統和安全-控制中心,裡面有“更改使用者賬戶控制設定”,改成從不通知,完成後會提示重啟,此時需要重啟一下)再安裝就沒問題了,安裝完後可以再修改回來。
4、修改httpd.conf,這裡跟32位系統裡配置一樣
(1)修改ServerRoot "E:/server/httpd-2.2.19-win64/"
(2) 往下會看到apache開啟的功能模組如:#LoadModule vhost_alias_module modules/mod_vhost_alias.so
模組其後添加:
LoadModule php5_module "E:/Server/php-5.3.6-Win32-VC9-x64/php5apache2_2.dll"
PHPiniDir "E:/Server/php-5.3.6-Win32-VC9-x64/"
AddType application/x-httpd-php .html .htm .php
(3)繼續往下,找到行DocumentRoot "E:/Code/PHP/"設定網頁檔案目錄 此行修改要與行# This should be changed to whatever you set DocumentRoot to後的<Directory "E:/Code/PHP/">目錄設定相對應
5、再次在 命令提示字元 執行httpd -k start 沒有錯誤即apache服務啟動成功
6、關閉Apache伺服器:執行httpd -k shutdown
三、配置PHP
1、如上提到,本人php目錄解壓到E:/Server/php-5.3.6-Win32-VC9-x64/即對應上步在Apache中設定的LoadModule位置
2、將php.ini-development修改成php.ini
3、開啟php.ini,找到extension_dir,修改其值為E:/Server/php-5.3.6-Win32-VC9-x64/ext/即php檔案所在目錄下/ext
4、找到擴充列表,;extension=php_gd2.dll、;extension=php_mysql.dll、 ;extension=php_mysqli.dll前的“;”去掉即為開啟該擴充,當然以上擴充為舉例之用,可根據功能雖求不同開啟相應擴充
5、(可選)date.timezone的值設為Asia/Shanghai即date.timezone =Asia/Shanghai
6、在E:/Code/PHP/下建立一test.php檔案,內容為
<?php
phpinfo();
?>
然後在瀏覽器地址欄中輸入http://localhost/test.php
上面的配置過程是別人的:我配好後出現以下兩個問題:
1、httpd: Could not reliably determine the server‘s fully qualified
解決:前言:apache雖然能運行,但是看見error.log中有httpd.exe: Could not reliably determine the server‘s fully qualified domain name, using 192.168. x. x for ServerName這個錯誤,想看看是否有其他佔用了80連接埠
開始--運行--cmd 進入命令提示字元 輸入netstat -ano 即可看到所有串連的PID 之後在工作管理員中找到這個PID所對應的程式如果工作管理員中沒有PID這一項,可以在工作管理員中選"查看"-"選擇列"
經常,我們在啟動應用的時候發現系統需要的連接埠被別的程式佔用,如何知道誰佔有了我們需要的連接埠,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用
假如我們需要確定誰佔用了我們的80連接埠
1、Windows平台
在windows命令列視窗下執行:
C:\>netstat -aon|findstr "80"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
看到了嗎,連接埠被進程號為2448的進程佔用,繼續執行下面命令:
C:\>tasklist|findstr "2448"
thread.exe 2016 Console 0 16,064 K
很清楚吧,thread佔用了你的連接埠,Kill it
如果第二步查不到,那就開工作管理員,看哪個進程是2448,然後殺之即可。
如果需要查看其他連接埠。把 80 改掉即可
補充:原來出現這個錯誤原因(httpd.exe: Could not reliably determine the server‘s fully qualified domain name, using 192.168.1.111 for ServerName)是因為DNS沒配置好. 如果不想配置DNS, 就在httpd.conf , 在最前加入 ServerName localhost:80 即可
2、“(OS 10013)以一種存取權限不允許的方式做了一個訪問通訊端的嘗試。 : make_sock: could not bind to address 0.0.0.0:80”
解決:改連接埠,開啟.\apache\conf\httpd.conf,將其中的所有80改為81,儲存後重新啟動apache的,OK。
改完連接埠就要以下面網址訪問:http://localhost:81/test.php
: