原本想學學php,因而就想搭建web服務器和sql環境,結果浪費掉了很多時間。大體的總結下,也算是長個記性。 php
使用的安裝包分別是httpd-2.2.22-win32-x86-no_ssl .msi,php-5.2.5-Win32.zip和mysql-installer-community-5.5.28.3.msi,很顯然用的還算是比較新的安裝包。安裝apache仍是比較順利的,一路安裝下來,默認監聽本機全部ip的80端口,固然包括迴環地址, 接着解壓php到指定文件夾,接着安裝mysql,打開安裝目錄下的httpd.conf文件,作以下調整: html
ServerRoot "D:/Apache2.2" 服務器安裝根目錄 mysql
DocumentRoot "D:/phpWeb" 修改成本身的網站根目錄 web
# This should be changed to whatever you set DocumentRoot to.
<Directory "D:/phpWeb"> 與上一步進行同步修改 sql
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
<IfModule dir_module> 設置默認的被請求文件
DirectoryIndex index.php index.html
</IfModule>
LoadModule php5_module "D:/php/php5apache2_2.dll" 以模塊的方式加載php,注意此處的php5apache2_2.dll對應的apache 版本
LoadFile "D:/php/php5ts.dll" 手動加載php動態連接庫 或者 把這兩個文件放到system32文件目錄下
LoadFile "D:/php/libmysql.dll" 加載mysql動態連接庫
PHPIniDir "D:/php" 非必要的配置
AddType application/x-httpd-php .php .html .htm 服務器端支持動態文件類型
數據庫
保存修改後,測試apache,重啓apache服務器,在瀏覽器中輸入localhost or 迴環地址,頁面顯示 「It works !」到此說明,apache工做了。 apache
測試php,在phpWeb目錄裏編輯一個index.php 的文件,內容爲<?php phpinfo(); ?>,重複測試apache服務器的操做,頁面顯示php的配置信息,查看是否包括sql模塊,很想然沒有,由於php默認是不加載mysql模塊的。而後修改php.ini 文件,主要改動點以下: 瀏覽器
extension_dir = "D:/php/ext" 擴展dll庫的位置
………………
extension=php_mysql.dll 打開mysql的擴展 服務器
對於php.ini的修改至關鬱悶,網上找了不少也作了各類修改,似懂非懂的就去嘗試,後來都無論用。 想一想mysql是否安裝成功呢,開始用命令行查看,先看端口3306端口是否處於監聽狀態,使用netstat -a命令,再使用mysql workbench 測試與數據庫的鏈接是否成功,結果成功說明mysql安裝沒有問題,mysql 的配置文件是my.ini ,暫時不用動,默認的配置能夠工做。 因而問題出在php與mysql的銜接處,問題確定出在php.ini文件。 app
開查php.ini,仍是先看看phpinfo()給出的信息吧,看來看去怎麼沒有mysql模塊,開始懷疑我以前是否打開了配置信息裏的mysql 擴展。God,打開的居然是extension=php_mssql.dll。此處省略無數字。
Wahtever, 問題總算找到,測試一下,瞬間OK,欲哭無淚。可是回顧整個過程,時間主要浪費在了細小的錯誤上。 總結教訓: 面對問題不能不問百度google閉門造車但也不能盲信盲從 ; 面對問題更多的是持續關注問題,本身分析問題。
下一步詳細分析httpd.conf php.ini my.ini ,靈活配置,並對web服務器和數據庫服務器進行性能調優,而後移植網站到新崛起的Nginx web服務器等。貌似有點偏題了,固然主要目的仍是學習可愛的PHP.