SFS3 系統平台更新 Debian 7

Posted by admin on 06 七月, 2013 08:56

【安裝環境】
Debian GNU/Linux 7.1 作業系統 / SFS 3.1-2013-07-05
Apache 2.2.22 / MySQL 5.5.31 / PHP 5.4.4

【作業系統安裝】
下載安裝 Debian GNU/Linux 7.x 伺服器版作為學務系統平台,安裝套件只選「SSH 伺服器」,以最精簡的方式完成作業系統的安裝。

Debian

【更新及安裝套件】
以 apt 指令先作系統更新,再安裝 SFS 必備的「LAMP」相關套件:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2 php5 mysql-server php5-mysql

新增其他選用套件,這些套件即使沒有安裝,也不會影響學務系統的正常運作。
sudo apt-get install ncftp rcconf rsync phpmyadmin zip
ncftp、rsync 供備份上傳使用,rcconf 可管理開機啟動服務項目,加上 phpmyadmin 都可視需要再新增安裝。

【Rsync 檔案同步傳輸複製】
學務系統的備份,原本習慣以 tar 壓縮指令打包,再用 ncftp 上傳到另一部伺服器。不過,rsync 指令的運用,可讓兩部電腦的檔案與目錄同步,配合適當的參數設定,使得檔案的傳輸複製更為快速方便,也是個不錯的選擇。

學務系統的複製包含主程式和資料庫兩部份,執行 rsync 時以兩行指令與簡單的參數,就可以將檔案及資料夾從原有主機複製過來:
sudo rsync -av --delete username@163.23.114.xxx:/var/lib/mysql/sfs3/ /var/lib/mysql/sfs3/
sudo rsync -av --delete username@163.23.114.xxx:/var/www/sfs3/ /var/www/sfs3/

-av 是最常用的參數,--delete 是為確保兩邊備份內容一致。在「備用主機」上執行這些指令時,會連線到「163.23.114.xxx」這部伺器服中,通過密碼驗證後,開始複 製「/var/lib/mysql/sfs3/」和 「/var/www/sfs3/」裡的檔案到這部主機相同的路徑中。第二次以後的複製或備份就快多了,經由比對兩端的檔案後,僅複製異動的部份,因為「- -delete」參數 的緣故,來源檔案或資料夾刪除時另一方也會刪除,達到了「同步備份」的目的。

將來如果要將本地端的資料備份至其他主機,來源目的則對調改為:
sudo rsync -av /var/lib/mysql/sfs3/ username@163.23.114.xxx:/var/lib/mysql/sfs3/
sudo rsync -av /var/www/sfs3/ username@163.23.114.xxx:/var/www/sfs3/

【學務系統設定】
複製過來的學務系統網址、路徑與原先不同,而資料庫的使用者及密碼也可能不符,即使在測試階段也需修改設定才能正常顯示網頁:
sudo vi /var/www/sfs3/include/config.php
檢查一下第12.15行的路徑設定,MySQL 資料庫設定部份在第37.40.43.46行,檔案上傳位置由第53.55行指定。

【自動更新程式設定】
用下載方式更新學務系統的 Script 下載網址為:
http://163.23.89.100/pub/sfs_tool/Down_upsfs.txt
這個文字檔下載後需修改更新路徑、3.1版的更新伺服器位址、chmod……等,才能排程定期自動更新。
直接複製原主機上的這個 Script ,是比較省事的作法。

【Apache 設定】
新增上傳檔案路徑別名
sudo vi /etc/apache2/apache2.conf
最後一行加入下列設定:
Alias /upfiles/ "/var/www/sfs3/data/"

這個設定會影響學務系統網頁左上方3.1版圖案的正常顯示,以及校務佈告欄模組公告附加檔案的上傳下載。



VirtualHost 設定 (可省略)
sudo vi /etc/apache2/sites-enabled/virtualhost
加入

# Name Based Virtual hosts
<VirtualHost 163.23.114.xxx:80>
    ServerName    sfs.xxxx.chc.edu.tw
    DocumentRoot  /var/www/sfs3
    <Directory />
      Options FollowSymLinks
      AllowOverride None
    </Directory>
</VirtualHost>

「/etc/apache2/sites-enabled/virtualhost」這個檔案須自行建立,檔名不拘。以內部 IP 架設測試用主機不需 VirtualHost 功能,或者不在意網址多一層目錄,這部份就省略不管了。

可是,其中「Options FollowSymLinks」的上一行起,至下兩行共四行的相關設定,是為了防止 Apache 傳回網站目錄中檔案完整清單的安全設定,如果不寫在這裡,一定要記得放入 Apache 的設定檔裡。

Apache 設定到此結束,重新啟動服務:
sudo /etc/init.d/apache2 restart

【連結列修正】
測試階段時主機的網址與原先學務系統不同,登入學務系統的第一件事就是修正這個問題,找出「系統管理 > 系統維護與管理 > 連結列修正」,執行後才能修正各個模組的連結網址。
點選系統選單中各個模組,不僅能正常開啟外,查看瀏覽器網址列顯示的路徑,也應是目前主機的位址。

【系統測試】
學務系統裡測試了幾個以前系統遷移或升級後曾有異常的地方:
‧校務佈告欄公告時,檔案可否附加及下載。
‧各班學籍資料可否顯示。
‧「成績繳交管理查詢」是否正常。
‧轉入學生學籍資料中「戶口資料」能否補登。
‧「許功蓋閱俞……」等字可否正常輸入、不致顯示亂碼。

【網路 IP 設定】
測試完大致正常應可正式上線,再同步一下兩個資料夾裡的檔案,檢查「/var/www/sfs3/include/config.php」設定值和主機 IP 位址……
sudo vi /etc/network/interfaces

auto eth0
iface eth0 inet static
   address 163.XX.XX.XX
   netmask 255.255.255.192
   network 163.XX.XX.XX
   broadcast 163.XX.XX.127
   gateway 163.XX.XX.126

或可再新增幾行 IP 位址設定,以便支援 IPv6:
iface eth0 inet6 static
   address 2001:288:xxxx::x
   netmask 48
   gateway 2001:288:xxxx::1

sudo /etc/init.d/networking restart
重新啟動網卡,完成網路固定位址設定就可正式上場了。

【參考資料】
Rsync Man Page

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.