實戰PHP5+Apache2.2+MySQL5.1配置經歷
昨天突然又想弄點PHP,于是在我的本本上開始配置,以前也配置過,主要問題連接MySqL不成功,提示Fatal error: Call to undefined function mysql_connect() 。上網找資料,不是說設置環境變量就是把php.ini和libmysql.dll拷到system32目錄下什么的,都試過了,可都沒成功,最后就放棄了。這次遇到同樣的問題,但我下了決心:不弄成功我就把我的本本砸了!終于,我還是心疼我的本本,剛才配置成功了。一陳喜悅^o^……
配置環境:Windows Xp Professional Sp2 + Apache 2.2.4 + PHP 5.2.5 + Mysql 5.1.33
現把經驗分享如下:
關鍵目錄表示:PHP安裝目錄——PHP_Dir,Apache安裝目錄——Apache_Dir。注意目錄字串末尾都沒有“/”或“\”
1.安裝 MySql,PHP,Apache,安裝一般沒有什么問題,關鍵在于配置。
2.配置 php.ini:
(1)把PHP_Dir目錄下的php.ini-dist復制一份,重命名為 php.ini。
(2)打開 php.ini,查找定位到extension_dir,設置為extension_dir = "PHP_Dir"。注意PHP_Dir結束不包括斜杠“/”號,且把反斜杠“\”改為斜杠“/”。
(3)在php.ini中,定位到extension=php_mysql.dll,把這一行的前面的“;”號刪除,并且改為extension=ext/php_mysql.dll。如果要加載mysqli或其它模塊,同樣這樣修改。
在配置extension_dir的時候,網上有很多,但基本是保留默認的"./",并且又拷貝文件又設置環境變量的,太麻煩。在我本本上從未成功過(我只在公司一臺式機上配置成功過)。我現在這種配置,MYSQL模塊的路徑合起來就是“PHP_Dir/ext/php_mysql.dll”,否則Apache啟動的時候就不能加載Mysql模塊。
3.配置 httpd.conf
(1)把Apache_Dir\conf目錄下的httpd.conf打開(像我這樣的新手最好拷貝一份,呵呵)。
(2)定位到Listen,默認為Listen 80,如果有多個服務器,可以做適當修改,我IIS占用了80端口,所以我改為Listen 81。
(3)添加LoadModule,為閱讀方便,定位到一大串的LoadModule的后面,添加
LoadModule php5_module "PHP_Dir/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "PHP_Dir"如果使用php5apache2_2.dll也可能是php5apache2.dll,根據自己的環境設置
(4)適當設置根目錄,我把DocumentRoot "Apache_Dir/htdocs"改成了其它目錄,在
至此,配置完成。等我興沖沖地打開瀏覽器,輸入http://localhost:81/phpinfo.php ,敲回車,呵呵,找到MySQL的相關信息了。說明加載MySQL成功。
可是,福無雙至,禍不單行,等我調用 mysql_connect()函數的時候,該死的VS蹦出一個框說“httpd.exe [2712] 中發生未處理的 win32 異常”,“httpd.exe 中的 0x0079ac5a 處未處理的異常: 0xC0000005: 讀取位置 0x00000014 時發生訪問沖突”。我暈倒!!
Google一下,發現一位仁兄是這樣解決的:
1 將php.ini所在目錄添加到環境變量path中
2 新建系統變量 PHPRC=“php.ini所在目錄”
3 如果經過以上兩部還是不成功那就出絕招:將php安裝目錄下libmysql.dll文件拷貝到windows/system32下
4 將libmysql.dll拷貝到apache/bin下。他/她說經過1、2、4步解決了。我很懶,不想添加環境變量,直接把PHP_Dir目錄下的libmysql.dll拷到Apache_Dir/bin下,重啟Apache,報告連接成功!
配置感言
在我上網找資料了時候,發現CSDN里的一位仁兄在很多人的幫助下,都沒把MySql加載上,最后一氣之下,說以后再也不玩PHP了。我也曾經放棄過。相信有無數的前輩和兄弟都遇到這個門檻,估計也有不少是這樣放棄了的。就是沒有把PHP環境配置成功,特別是沒有把MySql連接上。我也試遍了網上的各種方法,與CSDN里那位一樣,都沒成功,只好自己思考,
【編輯推薦】