本來想學學php,于是就想搭建web服務(wù)器和sql環(huán)境,結(jié)果浪費掉了不少時間。

  大致的總結(jié)下,也算是長個記性。

  使用的安裝包分別是httpd-2.2.22-win32-x86-no_ssl .msi,php-5.2.5-Win32.zip和MySQL-installer-community-5.5.28.3.msi,很顯然用的還算是比較新的安裝包。安裝apache還是比較順利的,一路安裝下來,默認監(jiān)聽本機所有ip的80端口,當然包括回環(huán)地址, 接著解壓php到指定文件夾,接著安裝mysql,打開安裝目錄下的httpd.conf文件,做如下調(diào)整:

  ServerRoot "D:/Apache2.2" 服務(wù)器安裝根目錄

  DocumentRoot "D:/phpWeb" 修改為自己的網(wǎng)站根目錄

  # This should be changed to whatever you set DocumentRoot to.

  <Directory "D:/phpWeb"> 與上一步進行同步修改

  # DirectoryIndex: sets the file that Apache will serve if a directory

  # is requested.

  <IfModule dir_module> 設(shè)置默認的被請求文件

  DirectoryIndex index.php index.html

  </IfModule>

  LoadModule php5_module "D:/php/php5apache2_2.dll" 以模塊的方式加載php,注意此處的php5apache2_2.dll對應(yīng)的apache 版本

  LoadFile "D:/php/php5ts.dll" 手動加載php動態(tài)鏈接庫 或者 把這兩個文件放到system32文件目錄下

  LoadFile "D:/php/libmysql.dll" 加載mysql動態(tài)鏈接庫

  PHPIniDir "D:/php" 非必要的配置

  AddType application/x-httpd-php .php .html .htm 服務(wù)器端支持動態(tài)文件類型

  保存修改后,測試apache,重啟apache服務(wù)器,在瀏覽器中輸入localhost or 回環(huán)地址,頁面顯示 "It works !"到此說明,apache工作了。

  測試php,在phpWeb目錄里編輯一個index.php 的文件,內(nèi)容為<?php phpinfo(); ?>,重復(fù)測試apache服務(wù)器的操作,頁面顯示php的配置信息,查看是否包括sql模塊,很想然沒有,因為php默認是不加載mysql模塊的。然后修改php.ini 文件,主要改動點如下:

  extension_dir = "D:/php/ext" 擴展dll庫的位置

  ……

  extension=php_mysql.dll 打開mysql的擴展

  對于php.ini的修改相當郁悶,網(wǎng)上找了很多也做了各種修改,似懂非懂的就去嘗試,后來都不管用。 想想mysql是否安裝成功呢,開始用命令行查看,先看端口3306端口是否處于監(jiān)聽狀態(tài),使用netstat -a命令,再使用mysql workbench 測試與數(shù)據(jù)庫的連接是否成功,結(jié)果成功說明mysql安裝沒有問題,mysql 的配置文件是my.ini ,暫時不用動,默認的配置可以工作。 于是問題出在php與mysql的銜接處,問題肯定出在php.ini文件。

  開查php.ini,還是先看看phpinfo()給出的信息吧,看來看去怎么沒有mysql模塊,開始懷疑我之前是否打開了配置信息里的mysql 擴展。God,打開的竟然是extension=php_MsSQL.dll.此處省略無數(shù)字。

  Wahtever, 問題總算找到,測試一下,瞬間OK,欲哭無淚。但是回顧整個過程,時間主要浪費在了細小的錯誤上。 總結(jié)教訓: 面對問題不能不問百度google閉門造車但也不能盲信盲從 ; 面對問題更多的是持續(xù)關(guān)注問題,自己分析問題。

  下一步詳細分析httpd.conf php.ini my.ini ,靈活配置,并對web服務(wù)器和數(shù)據(jù)庫服務(wù)器進行性能調(diào)優(yōu),然后移植網(wǎng)站到新崛起的Nginx web服務(wù)器等。貌似有點偏題了,當然主要目的還是學習可愛的PHP.