[SFS3] 2015學務系統移轉記錄 1/2

URL Link //n.sfs.tw/10317

2016-11-28 12:06:33 By Axer

此文分成兩部分:
[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.

  將所有的 https:// 改為 http://

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

[2] http://superuser.com/questions/836072/fedora-18-error-errno-14-peer-cert-cannot-be-verified-or-peer-cert-invalid

[3] https://access.redhat.com/solutions/53905