【求助】phpBB2.0.18 如何支援 PHP5?



贊助商連結


b90220208
2005-12-02, 03:36 PM
目前最新 release 的 phpBB 2.0.18 在其官網上已宣稱支援 mysql 5
而在 PHP 方面好像沒有支援到 php 5,所以想請教該如何才能讓其在 php 5 下順利安裝與運作 ?? :eek:

以下是我的安裝經過,當搭配---

php 4:
則只要有處理了 authentication protocol 的問題,例如 mysql server 5 的密碼改用舊模式:
SET PASSWORD FOR user@host = OLD_PASSWORD('password');
就可順利執行安裝 phpBB2.

否則,就會出現如下之錯誤訊息:
----------------------------------------------------------------------------------------------
Warning: mysql_connect(): Client does not support authentication protocol requested by server;
consider upgrading MySQL client in ...\phpbb2\db\mysql4.php on line 48

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in
...\phpbb2\db\mysql4.php on line 330

Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in
...\phpbb2\db\mysql4.php on line 331
----------------------------------------------------------------------------------------------


若換成 php 5:
則會出現錯誤訊息如下(什麼也沒提示)
---------------------------------
phpBB : Critical Error

Could not connect to the database
---------------------------------


以下,是我在 mysql 官網查到的資訊,若我沒會錯意,他的意思應該是 php 5 已經有支援 mysql 4.1 以上
的版本了,那麼為何會出現如上之無法連線資料庫的錯誤訊息? :eek:
我在安裝 Moveable Type 3.2 時,都很順利,難道是 phpBB2 沒有支援 PHP 5 嗎?
若我只想用 php 5 ,那該怎麼做,要改 phpBB2 的程式碼嗎? :eek:
==========================================================================================
The mysqli extension (stands for "MySQL, Improved"; added in PHP 5) is compatible with the
improved password hashing employed in MySQL 4.1 and higher, and no special configuration of
MySQL need be done in order to use this MySQL client library.
==========================================================================================

贊助商連結


b90220208
2005-12-03, 12:07 AM
找到原因了, 原來關鍵是在 PHP5 身上!

列出如下:

=================================================================================
PHP 5 is no longer bundling the MySQL Client Library itself!!

MySQL is no longer enabled by default, so the php_mysql.dll DLL must be enabled inside of php.ini. Also,
PHP needs access to the MySQL client library. A file named libmysql.dll is included in the Windows PHP
distribution and in order for PHP to talk to MySQL this file needs to be available to the Windows
systems PATH.

Although copying libmysql.dll to the Windows system directory also works (because the system directory
is by default in the system's PATH), it's not recommended.
=================================================================================

我的問題雖已解決,但我不是很懂上面這段的意涵,...希望,煩請各位為我解釋一下.

例如:
1. 為何要將 php 安裝路徑加到 windows 的 Path 環境變數中才能在啟動 apache 時動態载入 位於 /ext/php_mysql.dll 呢? :eek:
2. php_mysql.dll 與 libmysql.dll 此二檔案的意義為何? :eek:
3. 另外,就是關於 p h p _ m y s q l i . d l l 這一 extension 在 php 5.1.1 的用處為何? 以及到底需不需要 enable 它呢? :eek:
............................................................................................................................................................THANKS#

安裝環境 :
Windows server 2003
Apache - 2.0.55
Php - 5.1.1
Mysql - 5.0.16
PhpBB - 2.0.18

CapriSkye
2005-12-03, 07:39 AM
1. 因為不把php放在win上的環境路徑執行php檔案就找不到php的執行檔案
設定環境路徑也比較好,這樣你不用移動任何檔案。
2. 實際原因不懂,libmysql.dll應該是php內部要用到,php_mysql.dll就跟其他的套件一樣。
3. php_mysqli.dll 是php新支援的 mysql 套件,如果你用了 php_mysql.dll就不要用它,好像也不能兩個併用,現在也不多軟體支援 mysqli

b90220208
2005-12-03, 12:22 PM
1. 因為不把php放在win上的環境路徑執行php檔案就找不到php的執行檔案
設定環境路徑也比較好,這樣你不用移動任何檔案。
:) THANKS!

如此就可以不用移動相關的 *.dll 檔案到 c:\winnt\system32 中對不對,
但,這就是我不了解的...(sorry,我程式底子不大好 :|||: )

我記得剛裝完 PHP5.1.1 時,要在 php.ini 中 enable 任何 extension 後再重開 Apache 時都會說什麼找不到 c:\php511\ext\*.dll 檔案,而此狀況則是在我增加 php 的安裝路徑c:\php511 進 Path 環境變數中才解決 .

請問,我在 system Path 中增加的是 c:\php511 又不是 c:\php511\ext 路徑,為何就可解決 -> 使找得到 c:\php511\ext\ 中的 .dll 檔案? :eek:

CapriSkye
2005-12-03, 01:23 PM
extension 的路徑是 php.ini 來設定....

b90220208
2005-12-03, 06:20 PM
我的環境:
windows server 2003
php 5.1.1
mysql 5.0.16
apache 2.0.55


假如我可能會用到 m y s q l _ c o n n e c t ( ) 或 m y s q l i _ c o n n e c t ( ) 函式來連線資料庫時,
是否表示我得同時安裝 mysql , mysqli extensions 呢?.....還是僅安裝後者即可?

請問 在 windows 上如何同時安裝 mysql , mysqli extensions 呢?

以下警告是什麼意思? 與 libmysql.dll 有關嗎?
( 因我的 php5.1.1 僅有提供 l i b m y s q l . d l l 而已! 而在稍前的版本好像還有提供 l i b m y s q l i . d l l )
========================================================================
If you would like to install the mysql extension along with the mysqli extension you have to use the same client
library to avoid any conflicts.
========================================================================