2015年3月12日 星期四

自然攝影中心移機全紀錄

市網中心代管的自然攝影中心網站,隨著歲月增長,主機的年限已近10年,加上系統老舊,升級不易,在諸多考量之下,決定將它整個移轉到VM的環境上。經過反覆測試,終於成功,謹記如下。

一、VM上的環境:

    原本考量使用新版的Apache2.4,配合PHP5.6與MariaDB100,架好後連同資料庫轉碼完成,才發現自然攝影中心網站主程式無法相容PHP5.6與MariaDB100的新函式,所以只好降版成Apache2.2、PHP5.3與MySQL5.5,會用PHP5.3是因為網站主程式實在太舊,連PHP5.4都不支援了。

二、Dump原資料庫與轉碼:

    1. mysqldump --default-character-set=latin1 -u root -p -B 資料庫名 > 資料庫名.sql

       原系統的資料庫是MySQL4.X版,預設語系是latin1。

    2. perl -pi -e 's/TYPE=MyISAM/ENGINE=MyISAM/'  資料庫名.sql

       將sql檔中的 TYPE=MyISAM字串替代成 ENGINE=MyISAM

三、Import原資料庫進VM

    1. mysql -uroot -p 資料庫名 --default-character-set=utf8 --force < 資料庫名.sql

           將資料庫預設語系設成UTF8,並忽略錯誤訊息。因為資料庫太大了,透過phpMyAdmin         匯入會出現問題。

    2. 匯入過程發現vbb35cpsessionvbb35session這兩個表無法匯入成功,還好這兩個表不
        大,所以重新用phpMyAdmin在新、舊主機之前匯出與匯入。

四、移轉網站內容部份
 
        自然攝影中心網站創建10餘年,中間已移機過一次,加上提供會員貼圖,所以不只是資料庫很大,Content部份更大,本想透過打包成壓縮檔再傳上VM解壓縮,再更改屬性,結果發現有內容會遺漏,所以只好在兩部Servet中建構Sync。安裝Sync方式略,僅列出設定部份。無論Server還是Client端,請在/usr/local/etc/rsyncd中加入

        command_args="-4 --daemon"       #以免Rsync以只以預設的IPV6協定傳輸

        Server端:
 
        於rsyncd.conf中加入:

[web]
        commet = backup ns25
        path = /
        auth users = username
        uid = root
        gid = wheel
        secrets file = /usr/local/etc/rsync/rsyncd.secrets
        read only = no
        dont compress = *.gz *.tgz *.zip *.bz2

        新增/usr/local/etc/rsync/rsyncd.secrets,內容如下:

        username:password

        此處的username與rsyncd.conf的設定需一致。

        存檔後chmod 600 rsyncd.secrets

       Client端:

        新增/usr/local/etc/rsyncd.secrests(或/usr/local/etc/rsync/rsyncd.secrets),內容如下:

        password

       存檔後chmod 600 rsyncd.secrets

       Client端與Server端的password需一致。

       於Client端下指令如下:

       /usr/local/bin/rsync -avzP --delete  /home/nc  username@Server端_IP::web 

       其中/home/nc是我要同步的Client目錄,同步到Server端的/下。
       系統會要求輸入password,輸入之前設定的即可。

五、修改網站程式

      1. 錯誤訊息:Assigning the return value of new by reference is deprecated

          修改init.php程式,找到 = & new 字串,將&去掉,存檔,共有7處。

          修改class_core.php,找到 = & new 字串,將&去掉,存檔,有1處。
 
      2. 錯誤訊息:Function set_magic_quotes_runtime() is deprecated

          這是因為原程式magic_quotes_runtime函式語法較舊。

          修改class_core.php,找到set_magic_quotes_runtime(0);字串,修改成            
           ini_set("magic_quotes_runtime", 0);

           存檔。

六、看看新網站上的圖和文章是否正常顯示。

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。