此文分成兩部分:
[SFS3] 2015學務系統移轉搬移記錄 1/2 -- 舊系統移出及新系統建置
[SFS3] 2015學務系統移轉搬移記錄 2/2 -- 學務系統安裝及移轉
前言
因緣際會下替某校資訊組長進行SFS3學務系統移轉,過去曾有兩次移轉學務系統的經驗,但是這次在移轉過程中一直撞牆,主因有為1需要php>=5.5(我自己都只用5.3) 2Mysql要5.5(我自己只用5.1) 3原系統似乎已被入侵,某校資組完全無法確定任何事(包括所有帳密),因為這樣我沒辦法使用以前的那個懶人移轉法:直接整個目錄夾複製搬移4原主機是2003年前台中縣配發的IBM 206,狀況簡直不可思議:爆了六顆電容竟然能開機能運作,不過關鍵的東西壞了(光碟機、網路)。5新系統是該校2013年自行購買的ACER Altos T310主機,買了以後放了兩年沒用,電腦公司有裝系統但沒用raid,,而且這台還無法直接用光碟機裝系統,設定RAID和裝系統就浪費了我一星期。
工作說明
原SFS3系統 非常古老的linux,跑在非常古老的伺服器上。新SFS3系統 CentOS 6.5,安裝系統及設定RAID過程略。
工作目標:將學務系統移轉到新系統上並運作正確。
注意事項:下面操作請依順序操作,不可燥進,錯了順序可能會亂掉或得重來(血淚經驗)。
一、倒出舊資料
1. 原系統資料庫密碼也丟失,所以直接查看系統設定,/path/to/ 是指原系統放置sfs3的位置。
# vi /path/to/sfs3/include/config.php
裡面有寫到學務系統資料庫的密碼,就算沒有資料庫的root密碼也無妨,抄下他的帳密吧等下要用到。
/********************************** MYSQL 連接設定 ***********************************/ // mysql 主機 $mysql_host ="localhost"; // mysql 使用者 $mysql_user ="sfs3man"; // mysql 密碼 $mysql_pass ="password****"; // 資料庫名稱 $mysql_db ="sfs3";
2. 到舊系統中,輸入他的密碼將原學務系統資料倒出來到 root 的家目錄中:
# mysqldump -u sfs3man -p -B sfs3 > ~/backup.sql
3. 因原系統網路無法運作,只剩usb隨身碟可以用,將USB 快閃碟插入並掛載,這部分有點難度。
# cd /mnt
# mkdir usb2
# mount -v -t auto /dev/sdc1 /mnt/usb2/
4. 複製到隨身碟
資料庫備份到隨身碟
# cp ~/backup.sql /mnt/usb2
也把 data/ 裡的資料備份出來
# cp -r /path/to/sfs3/data /mnt/usb2
註1:正常你的舊系統沒這麼坎坷的話,應該可以用網路的方式取出資料(例如 scp, ftp, webmin, web等) 複製到新機器中。倒完後這台就能安息了,運作了12年耶~~
二、新系統基本設定
安裝完新系統,要做一點基本簡單的設定
1. 設定語系
# vi /etc/sysconfig/i18n
修改
LANG="zh_TW.UTF-8"
為
LANG="zh_TW.Big5"
2. 設定網路
# setup
直接執行 setup--> 網路設定-->裝置組態設定-->選擇裝置-->網路設定-->確定
3. 設定主機名稱
# vi /etc/hosts
到最後加入一行
163.17.X.x sfs3 sfs3.xxxx.tc.edu.tw
4. 設定防火牆
# vi /etc/sysconfig/iptables
到在這行按 yy複製,然後按 p貼上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
把貼上的22改成80,給網頁使用
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
結果是這樣
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
5. 關掉SELinux
# vi /etc/sysconfig/selinux
修改
SELINUX=enforcing
成為
SELINUX=disabled
6. 設定系統時區
# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
7. 重開機,確認網路是通的,確認後才可以繼續。
三、安裝MYSQL5.5[註2]
1. 使用 webtatic.repo
# wget --no-check-certificate https://mirror.webtatic.com/yum/el6/latest.rpm
# rpm -Uvh latest.rpm
2. 修改 webtatic.repo[註3]
# vi /etc/yum.repos.d/webtatic.repo.
3. 安裝Mysql55
# yum install mysql55w mysql55w-server
註2:如果系統裡已有安裝mysql 低版本,請勿使用更新方法,請直接移除再重複上面步驟,移除mysql時並不會刪除原本資料庫或權限,請放心。
# yum remove mysql-*註3: yum 在安裝時出現這樣的錯誤,主要是https 的憑證有問題
Could not retrieve mirrorlist https://mirror.webtatic.com/yum/el6/x86_64/mirrorlist error was 14: Peer cert cannot be verified or peer cert invalid目前我並無發現有效解決方法,而我採用的是繞道法。
四、安裝APACHE和php5.5
1. 安裝 apache,預設已有安裝可忽略此步驟
# yum install apache
2. 安裝 epel
# yum install epel-release
3. 安裝 remi,此套件需要先裝 epel
# wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
# rpm -ivh remi-release-6.rpm
4. 修改 remi設定檔
# vi /etc/yum.repos.d/remi.repo
將 [remi] 及 [remi-php55] 項下的 enabled 設為1,原本是0
enabled=1
5. 安裝 PHP55 [註4]
# yum install php php-mcryppt php-mysql
6. 設定開機啟動
# chkconfig mysqld on
# chkconfig httpd on
7. 安裝 openssl
# yum install openssl
註4:php-gd, php-mbstring 已經隨著 php55一起裝入,不需再另外安裝
五、設定Mysql 帳密和權限
1. 啟動 mysql
# service mysqld start
2. 設定root密碼
# mysqladmin -u root password 'passwd1234'
3. 測試登入密碼並建立sfs3資料庫
# mysql -u root -p
mysql> create database sfs3;
Query OK, 1 row affected (0.02 sec)
參考資料
[1] 臺中市104 年校務系統研習 系統管理者講義 臺中市立豐南國民中學 杜建忠 2015.07.30
[3] https://access.redhat.com/solutions/53905