史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   網路軟硬體架設技術文件 (http://forum.slime.com.tw/f133.html)
-   -   昇級你的PHP+Apache+MySQL (http://forum.slime.com.tw/thread125567.html)

psac 2004-09-18 02:17 AM

昇級你的PHP+Apache+MySQL
 
從各個官方網站下到最新的版本,要那種zip包的

操作系統 win2003 系統碟為: D碟

第一步: 安裝apache 並組態支持PHP

點擊安裝文件apache_2.0.50-win32-x86-no_ssl.msi
將apache安裝在 D:\apache2 目錄(隨自己喜好)下
將php-5.0.0-Win32.zip 裡內容解壓到 D:\php 裡
找到 php目錄裡的 php.ini-dist 重新命名為 php.ini 並拷到 windows目錄裡(win2k 裡為winnt)
如我的php.ini是拷到 D:\windows目錄
再將php目錄裡的 php5ts.dll,libmysql.dll 拷到 系統目錄(system/system32) 如我的是D:\windows\system裡

組態apache裡的httpd.conf
開啟 D:\Apache2\conf\httpd.conf 這個文件
找到 AddDefaultCharset ISO-8859-1 將其改為 AddDefaultCharset GB2312 (讓預設值語言編碼為簡體中文)
找到 DocumentRoot "D:/Apache2/htdocs" 將其改為你的WEB目錄(可不改)如我的為 DocumentRoot "D:/website"
找到 DirectoryIndex index.html index.html.var 在後面加入 index.htm index.php
找到 #LoadModule ssl_module modules/mod_ssl.so 這行,在此行後加入一行
LoadModule php5_module d:/php/php5apache2.dll
其中d:/php/php5apache2.dll 為你php目錄中php5apache2.dll所在的位置
找到 AddType application/x-gzip .gz .tgz 這行,在此行後加入一行
AddType application/x-httpd-php .php
此時PHP環境基本已經組態成功
在WEB根目錄(如我的D:\website)裡建一個名為test.php的文件內容如下
<? echo phpinfo(); ?>
重新啟動apache服務
用瀏覽器開啟 http://localhost/test.php
如果可以看到php組態輸出資訊就OK了

第二步 安裝mysql

將mysql安裝到指定目錄,如我的是d:/mysql 如下載的是非安裝的mysql壓縮包,直接解壓到指定目錄就可以了
然後點擊D:\mysql\bin\winmysqladmin.exe這個文件 其中D:\mysql是你的mysql安裝目錄
輸入winmysqladmin的初始用戶、密碼 (註:這不是mysql裡的用戶、密碼)隨便填不必在意
確定之後你的右下角工作的啟動欄會出現一個紅綠燈的圖示,紅燈亮代表服務停止,綠燈亮代表服務正常,左擊這個圖示->winnt->install the service 安裝此服務
再左擊這個圖示->winnt->start the service 啟動mysql服務

修改mysql資料庫的root密碼
用cmd進入命今行模式輸入如下指令: ( 注: d:\mysql 為mysql安裝目錄)
cd d:\mysql\bin
mysqladmin -u root -p password 123456
Enter鍵出現
Enter password: ( 注:這是叫你輸入原密碼. 剛安裝時密碼為空,所以直接Enter鍵即可)
此時mysql 中帳號 root 的密碼 被改為 123456 安裝完畢

三、組態php.ini並測試mysql

找到extension_dir = "./" 改為 extension_dir = "d:/php/ext"
找到
;extension=php_mysql.dll
將';'去掉改為
extension=php_mysql.dll
找到
;session.save_path = "/tmp"
將';'去掉 設定你儲存session的目錄,如
session.save_path = "D:/php/session_temp";

重啟apache服務
在Web根目錄下(如 D:\website)建立testdb.php文件內容如下:
<?php
$link=mysql_connect('localhost','root','123456');
if(!$link) echo "fail";
else echo "success";
mysql_close();
?>
用瀏覽器開啟http://localhost/testdb.php 如果輸出success就OK了

四、phpmyadmin的安裝組態

將phpMyAdmin-2.5.7.zip解壓到WEB根目錄中去,重新命名資料夾為phpmyadmin或其它
開啟phpmyadmin 目錄中的 config.inc.php
找到
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';
分別填上你mysql的用戶和密碼即可

如不是本機使用,最好加上驗證


以下是我的讀後感
我已經在WIN2K的系統下偵錯通過了,昨天一個很麻煩的問題是
PHP官方居然說:
PHP 5 不再綁定 MySQL 客戶端庫,這對我意味著什麼?我還能在 PHP 中使用 MySQL 嗎?我試著使用 MySQL 結果得到「function undefined」錯誤,怎麼辦?

是的。PHP 總是支持 MySQL 的,不是這種方法就是那種方法。在 PHP 5 中唯一的改變就是不再綁定客戶端庫本身了。部分原因是(無特定順序):


現今大多數系統已經安裝了客戶端庫了。

由於以上原因,保持多個版本的庫文件會導致混亂。例如,如果你把 mod_auth_mysql 連線到某個版本,但把 PHP 連線到了另一個版本,然後在 Apache 中同時啟動了它們,你會得到無數錯誤。此外,綁定的庫文件也不總是能和伺服器端的版本很好地配合。對此最明顯的症狀是上哪裡去找 UNIX 域套接字文件 mysql.socket。

維護有些鬆懈,並且已經越來越落後於發行的版本了。

未來的庫版本是關於 GPL 的,因此我們沒有昇級的途徑了,因為我們不能將關於 GPL 的庫和 BSD/Apache 風格許可證的項目綁定到一起。因此具有一個乾淨的 PHP 5 是最好的選項。

事實上這並不會影響到太多人。UNIX 用戶,起碼是那些知道自己在做什麼的人,往往會在編譯 PHP 時通過 --with-mysql=/usr 將其綁定到自己系統中的 libmyqlclient 庫上。Windows 用戶可以在 php.ini 中啟動 php_mysql.dll 增強庫。此外,要將 libmySQL.dll 拷貝到適當的 %SYSTEMROOT% 目錄中,和 dll 目錄中其它綁定的 DLL 一樣。


到底拷貝哪一個,我搜尋了PHP MYSQL目錄,有好幾個這樣的DLL文件,拷哪一個?不清楚,組態擱淺!今天這篇文章讓人茅塞頓開啊!
我自己閱讀PHP &MySQL for Dummies 2nd edition 的時候,作者並沒有要求要拷貝php5ts.dll到系統目錄,這個是廣大愛好者們總結出來的!

不過這裡我也有了心得和疑問:
1.這幾天的摸索中發現好像有兩種執行模式CGI 和MODULE模式,不用把php5ts.dll拷貝到系統目錄的可能時cgi模式,那麼就要修改
;ScriptAlias那行,如果不是cgi模式,就要加入上面提到的LoadModule,這個是二者的不同。官方的install.txt文件也是推薦使用loadmodule模式的。
2.到底哪一種的執行效率高呢?等我以後自己實踐就可以說明問題!大家也不妨在這裡做個討論。


以下是我的讀後感
我已經在WIN2K的系統下偵錯通過了,昨天一個很麻煩的問題是
PHP官方居然說:
PHP 5 不再綁定 MySQL 客戶端庫,這對我意味著什麼?我還能在 PHP 中使用 MySQL 嗎?我試著使用 MySQL 結果得到「function undefined」錯誤,怎麼辦?

是的。PHP 總是支持 MySQL 的,不是這種方法就是那種方法。在 PHP 5 中唯一的改變就是不再綁定客戶端庫本身了。部分原因是(無特定順序):


現今大多數系統已經安裝了客戶端庫了。

由於以上原因,保持多個版本的庫文件會導致混亂。例如,如果你把 mod_auth_mysql 連線到某個版本,但把 PHP 連線到了另一個版本,然後在 Apache 中同時啟動了它們,你會得到無數錯誤。此外,綁定的庫文件也不總是能和伺服器端的版本很好地配合。對此最明顯的症狀是上哪裡去找 UNIX 域套接字文件 mysql.socket。

維護有些鬆懈,並且已經越來越落後於發行的版本了。

未來的庫版本是關於 GPL 的,因此我們沒有昇級的途徑了,因為我們不能將關於 GPL 的庫和 BSD/Apache 風格許可證的項目綁定到一起。因此具有一個乾淨的 PHP 5 是最好的選項。

事實上這並不會影響到太多人。UNIX 用戶,起碼是那些知道自己在做什麼的人,往往會在編譯 PHP 時通過 --with-mysql=/usr 將其綁定到自己系統中的 libmyqlclient 庫上。Windows 用戶可以在 php.ini 中啟動 php_mysql.dll 增強庫。此外,要將 libmySQL.dll 拷貝到適當的 %SYSTEMROOT% 目錄中,和 dll 目錄中其它綁定的 DLL 一樣。

到底拷貝哪一個,我搜尋了PHP MYSQL目錄,有好幾個這樣的DLL文件,拷哪一個?不清楚,組態擱淺!今天這篇文章讓人茅塞頓開啊!
我自己閱讀PHP &MySQL for Dummies 2nd edition 的時候,作者並沒有要求要拷貝php5ts.dll到系統目錄,這個是廣大愛好者們總結出來的!

不過這裡我也有了心得和疑問:
1.這幾天的摸索中發現好像有兩種執行模式CGI 和MODULE模式,不用把php5ts.dll拷貝到系統目錄的可能時cgi模式,那麼就要修改
;ScriptAlias那行,如果不是cgi模式,就要加入上面提到的LoadModule,這個是二者的不同。官方的install.txt文件也是推薦使用loadmodule模式的。
2.到底哪一種的執行效率高呢?等我以後自己實踐就可以說明問題!大家也不妨在這裡做個討論。

貝斯特 2004-09-18 02:19 AM

如果MySQL出錯無法執行的話要怎麼救資料?


所有時間均為台北時間。現在的時間是 12:31 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1