碧華易學網及Fun English正式移機啟用

碧華易學網:easylearn.bhes.ntpc.edu.tw

Fun English:english.bhes.ntpc.edu.tw

原伺服器為 Windows Server 2003 中文版

新伺服器為 Windows Server 2012 R2 中文版

移轉過程中發現的重大問題:Windows Server 2012R2 + IIS 8 + ASP作業環境下,如何使asp程式存取 ACCESS 資料庫檔,原程式在Windows Server 2003可正常執行。

解決法:

  • 在IIS 8管理程式中:應用程式集區 —> 設定應用程式集區預設值 —>啟用 32 位元應用程式:設為 True
  • 「C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp」,變更這個資料夾的使用權限。
    增加「Authenticated Users」這個使用者的使用權限為「修改權」即可
  • 參考網址:http://netlab.kh.edu.tw/download/post3/x64_iis7.htm

 

本校英文網站資料庫移轉

本校英文網站:www2.bhes.ntpc.edu.tw/english

原運行於一台執行Windows 2003作業系統的伺服器中,其使用的資料庫為 SQL Server 2000。

因該伺服器服役至今已超過 10 年,為了提昇效能,乃將網站及資料庫皆移至本校校園網站主機中。

由於新主機採用的資料庫系統為 SQL Server 2012 Express,資料庫檔案無法直接附加上去,改採匯入匯出的方式。

資料庫連線字串使用下列方式:

Server=.\ExpressDatabase=myDataBase; Trusted_Connection=True;

參考網址:https://www.connectionstrings.com/sql-server-2012/

 

班級網頁系統「文件區」中的文件以及「連結區」中的連結全不見了!

解決法:

  1. 下載原伺服器(www)中的班級網頁系統資料庫至網站維護主機。
  2. 停止班級網頁系統運行主機中的 MySQL 服務。
  3. 上傳班級網頁系統資料庫中「文件區」及「連結區」相關資料表檔案至班級網頁系統運行主機中,覆蓋掉原資料表。
    (MySQL的資料庫檔案位於班級網頁系統運行主機 C:\ProgramData\MySQL\MySQL Server 5.6\data)
  4. 啟動班級網頁系統運行主機中的 MySQL 服務。
  5. 重新開啟班級網頁系統
  6. 檢查「文件區」及「連結區」,一切又回復正常。
  7. 備份現有 MySQL 中的所有資料庫檔案至網站維護主機中。

問題發生原因:

  1. 可能是系統移轉至新主機,程式修改過程中發生的意外。
  2. 再次檢視所有的程式碼。

本校班級網頁系統移機記事

本校班級網頁系統:web.bhes.ntpc.edu.tw/ClassSystem

原本以php3程式碼建置在iChip nsp6 1.08 (教育版)上,FreeBSD+Apache+MySQL 5.045,php 的編碼為big5, MySQL伺服器連線編碼為latin1,班級網頁系統的MySQL資料庫及資料表的編碼為 latin1。

因為iChip系統安全漏洞太多,又無法修補,加上php 及MySQL 版本太舊,因而決定將原班級網頁系統移至 Windows Server 2012R2 + IIS 8 + PHP 5.6 + MySQL 5.6.22-log ,php 的編碼為utf8, MySQL伺服器連線編碼為big5,班級網頁系統的MySQL資料庫及資料表的編碼為 latin1。

105年1月1日開始移轉程式,挑戰開始…

  1. 程式碼竟然完全不能跑,所有程式碼直接顯示在網頁上:
    ⓪ 解決法:
    <? 全改成 <?php
  2. 網頁呈現出來的,全是utf8編碼,即使網頁設定
    <meta http-equiv="Content-Type" content="text/html; charset=big5″>
    依然以utf8編碼呈現:
    ⓪ 解決法:
    <?php header(“Content-Type:text/html; charset=big5″); ?>
  3. 網頁終於正常編碼為big5,但所有從MySQL資料庫中讀出來的資料仍以亂碼顯示。
    ⓪ 解決法:
    <?php
    $LINK = mysql_connect($DATABASE_URL, $DATABASE_USER, $DATABASE_PASSWORD);
    mysql_query(“SET NAMES ‘latin1′", $LINK);
    mysql_select_db($DATABASE_BASE, $LINK);
    ?>
  4. 所有get 或 post 的參數都無法正常運作。
    ⓪ 解決法:
    <?php
    $teacher_id = $_GET[“teacher_id"];
    $teacher_name = $_POST[“teacher_name"];
    ?>
  5. 部份從資料庫讀出來的資料仍無法顯示
    ⓪ 解決法:
    <?php =$teacher_id ?>
    改成
    <?php echo($teacher_id); ?> 或 <?php echo $teacher_id ?>

<?php
$document_title = htmlspecialchars($document_title);
?>
註解掉,改成
<?php
//$document_title = htmlspecialchars($document_title);
?>

  1. 部份網頁中文字如「許、功、蓋、會…」存入資料庫後會變成亂碼
    ⓪ 解決法:
    <?php
    $document_content = AddSlashes($document_content);
    ?>
  2. 網站加裝 phpMyAdmin 無法正常執行
    ⓪ 解決法:
    看官方網站說明,目前最新版的 phpMyAdmin 只支援到 php 5.3 版
    設定 phpMyAdmin 為應用程式,php 改用 php 5.3 版
  3. 留言版的ip欄位只支援IPv4,存入 IPv6 位址時會發生錯誤
    ⓪ 解決法:
    將 ip 欄位的長度改為 40
  4. 留言版功能,即使管理者將其關閉,仍能透過網址使用該功能。其實所有的功能都有這個問題,但因本校留言版曾被不當使用成援交留言網站,遭警察局來文調查,因而發現此問題。
    ⓪ 解決法:
    增加判斷管理者是否已開啟該功能
  5. 全網站每一個網頁檢查,修正原程式碼的錯誤。
  6. 105年1月5日上班,正式上線
  7. phpMyAdmin 最新版 4.3.5版釋出,下載,重安裝,已可以正常在php 5.6下執行

哈哈!我的假日就是這樣過的

補充:移至 Windows Server 2012R2 後,原本中文路徑的網頁不能顯示的問題,全都不藥而瘉,中文字顯示不必做任何處理,就可直接輸出。(處理反而會出問題)