[分享] 升級 PHP 5.3.0 之安裝與使用成功經驗

phpBB-TW Knowledge Base
收集網友們在竹貓所發表的教學主題或文章,以利分享!
(僅供瀏覽,由版主群維護)
回覆文章
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8604
註冊時間: 2004-04-30 01:54
來自: Taiwan

[分享] 升級 PHP 5.3.0 之安裝與使用成功經驗

文章 心靈捕手 » 2009-07-07 22:26

前言:

如果您系統原本使用 PHP 5.2.X 版本,
那麼您可以參考本文升級至 5.3.0 版.
否則得再參考此文安裝 PHP 5.3.0 版.


升級步驟:
  1. 下載最新 PHP 5.3.0 版 http://windows.php.net/download/
    P.S.
    • PHP 5.3.0 僅支援 Windows 2000 以上, 不再支援 Windows 98, ME, NT4.

      代碼: 選擇全部

      The minimum Windows version is now Windows 2000; Windows 98, ME, and NT4 are no longer supported.
      http://tw.php.net/manual/en/migration53.windows.php
    • PHP 5.3.0 針對 Windows 的使用者提供四種版本:
      • 如果您的網站伺服器是使用 IIS, 那麼請使用 VC9 版本.
        5.3.0 VC9 x86 Thread Safe
        5.3.0 VC9 x86 Non Thread Safe
      • 如果您的網站伺服器是使用 Apache, 那麼請使用 VC6 版本.
        5.3.0 VC6 x86 Thread Safe
        5.3.0 VC6 x86 Non Thread Safe
  2. 解壓縮後, 上傳, 覆蓋您原有的 /php5/ 資料夾.
    P.S.
    在此, 以使用 (5.3.0 VC6 x86 Thread Safe) php-5.3.0-Win32-VC6-x86.zip 為例,
    此處 /php5/ 資料夾僅供參考, 請依您的原有系統設定而自行變更.
  3. 將 /php5/php5ts.dll 複製至 (覆蓋) C:/windows/system32/php5ts.dll
    P.S.
    C:/windows/system32/libmysql.dll 已無作用, 可以移除之.
  4. 開啟 /php5/php.ini-production
    參考舊有的 /php5/php.ini 更新 /php5/php.ini-production 相關的設定;
    完成後, 將舊有的 /php5/php.ini 移除或重新命名 (如: /php5/php.ini-5.2.X);
    再將 /php5/php.ini-production 重新命名 /php5/php.ini
  5. 至此, 升級作業已經完成; 重新啟動 Apache.

修正錯誤:
(也許, 您升級作業完成後, 會遭遇以下同樣的錯誤)

A. 安裝 PHP 5.3.0 後, 連接資料庫, 出現底下錯誤訊息:

代碼: 選擇全部

mysqlnd cannot connect to MySQL 4.1+ using old authentication [2000]
這個問題產生的原因, 是我的資料庫管理者的密碼格式仍為 16 位元加密字符;
20090707_154417.jpg
而 PHP 5.3.0 以 mysqlnd 連接資料庫伺服器, 不再支援 (OLD_PASSWORD) 16 位元的密碼格式.
20090707_213842.jpg

代碼: 選擇全部

The new mysqlnd library necessitates the use of MySQL 4.1's newer 41-byte password format. Continued use of the old 16-byte passwords will cause mysql_connect() and similar functions to emit the error, "mysqlnd cannot connect to MySQL 4.1+ using old authentication." 
http://tw.php.net/manual/en/migration53 ... atible.php

要解決這個錯誤, 必須確認兩件事:
  1. 您的 MySQL 資料庫版本 >= 4.1
  2. 將您用來連接資料庫的管理者帳號之密碼, 更新為 (PASSWORD) 41 位元加密字符.
修正方法:
安裝 PHP 5.3.0 之後, 若無法連接資料庫, 則須先解除 PHP 5.3.0, 改裝回舊版 (如: PHP 5.2.X);
再試著將舊的 16 位元加密字符, 更新為 41 位元加密字符. (方法如下)
  1. 進入 phpMyAdmin, 找到資料庫 mysql.
  2. 進入資料表 user, 瀏覽管理者資料.
  3. 進入 SQL 頁面, 執行更新 "密碼格式" 命令:

    代碼: 選擇全部

    UPDATE `user` SET `password`=password('NewPassword') WHERE `user`='UserName';
    P.S.
    UserName: 請更新為管理者帳號
    NewPassword: 請更新為管理者密碼
    執行後, 原 16 位元加密字符將更新為 41 位元加密字符. (如圖)
    20090707_153734.jpg
  4. 接著, 執行重新整理 "權限" 的命令:

    代碼: 選擇全部

    FLUSH PRIVILEGES;
修正完成後, 可以再試著以前面的步驟, 升級 PHP 5.3.0 版.

其次, 因為 PHP 5.3.0 已經改變, 移除, 或新增許多功能,
所以可能會對論壇造成不少的錯誤發生,
解決這些錯誤, 得外掛作者做適度的語法修正, 或暫時先移除相關外掛.

B. 即使是新安裝 (無任何外掛) 的論壇, 還是可能會出現錯誤訊息. 如下:

代碼: 選擇全部

[phpBB Debug] PHP Notice: in file /index.php on line 86: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ''UTC' for '8.0/no DST' instead
修正方法:
--開啟--
php.ini

--找到--

代碼: 選擇全部

;date.timezone =
--取代成--

代碼: 選擇全部

date.timezone = Asia/Taipei
儲存後, 重新啟動 Apache.


後記:

參考資料: 系統環境:
  • OS: Windows Vista
  • Apache 2.2.11
  • MySQL 5.1.36
  • PHP 5.2.10 Update 5.3.0
  • phpMyAdmin 3.2.0.1
  • phpBB 3.0.5
施比受有福,歡迎來信賜教,謝謝 & 再見!
祝福您 好運 ^_^
歡迎加入★★心靈捕手★★ :: 討論區!!
http://wang5555.hopto.org/phpBB3/
p.s. 奉老婆之命:在晚上十一點前,得關機睡覺!!!

回覆文章

回到「教學文件庫」