網路開展事業或在網路創業賺錢的第一步:【架設24小時賺錢網站主機】比網頁設計更優先!

感謝您造訪 Linux主機伺服器架設技術基地。 你可進入替你架設主機.影片教你維護頁面,詳細瞭解Linux主機架設及相關技術維護影片教學(完整配套措施),有主機馬上可以架設網站營運,完全無限制!

租用不如自有主機!聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多!完全沒有版權問題,超強『防駭客攻擊與入侵』及安全防護可以讓你無後顧之憂。

                    架設主機.影片教你維護: http://por.tw/linux/new-E_learning/index.php

Linux主機伺服器架設技術基地  維護團隊  敬上
  • 1 
瀏覽模式: 普通 | 列表

Linux Server主機與主機的移轉

Linux Server主機與主機的移轉

本文主要在介紹如何把 Linux 上的資料,含使用者帳號、網頁、資料庫移轉至另一台 Linux Server 上頭。
Linux主機的移轉要掌握以下幾點原則:
要注意原網頁應用軟體之安全性
有些舊的軟體,可能已有漏洞,不要再把舊的版本轉移過來。
在移轉資料的同時,必須要注意,該資料的檔案權限。不要在完成資料移轉之後,一般 user 都「看」不到,只剩 root 一個才看得到。
可在兩台 Linux 之間直接使用 gFtp 軟體,以 SFTP2 (SSH2) 協定、 Root 身份,直接把各種資料從舊機器傳送到新機器上。

attachments/201304/4644131352.jpg

Linux主機的MySQL資料庫移轉:
資料庫位置:/var/lib/mysql
/var/lib/mysql/mysql 及 /var/lib/mysql/test 不可搬動
除了上述這兩個資料夾不可搬動外,其餘在 /var/lib/mysql/ 底下的資料夾(資料庫),皆可以搬到新 Linux Server主機的 /var/lib/mysql 底下。
因為 /var/lib/mysql/mysql 是 MySQL 的系統資料庫,它記錄了許許多多 MySQL Server 的設定參數。而且,舊版的 MySQL 與新版的 MySQL ,系統資料庫會有欄位定義上的不同,若您把舊版系統資料庫,直接覆蓋到新版之上,可能會造成 MySQL 啟動失敗。
例外:若是新舊主機的 Linux/LinuxD Server 版本一致,理論上其 MySQL 版本應該也一致,就可以執行以下動作即可
直接把 /var/lib/mysql/ 底下所有資料夾複製到新主機上相同的位置上
不必再動 MySQL 使用者權限的部份
複製到新主機時,要記得把 /var/lib/mysql 底下所有的資料夾(資料庫)權限,改為 mysql.mysql
root@dns:~# chown -R mysql.mysql /var/lib/mysql/*
在 LinuxD 底下可以使用 filezilla 以 SFTP 的協定,直接用 Root 身份進行搬動
root@dns:~# apt-get install filezilla
檢查所有 PHP+MySQL程式碼(如 ANN 公告欄...etc),把所使用到的 MySQL 使用者帳號密碼,新增至新主機的 MySQL 內
使用 phpmyadmin,例: http://Your.ServerName/phpmyadmin
在首頁上點:「權限」 → 「新增使用者」 (新增 MySQL 的使用者)

Linux主機伺服器架設技術(主機資料移轉)

Linux主機伺服器架設技術(主機資料移轉)

 主機的移轉要掌握以下幾點原則:

   1. 要注意原網頁應用軟體之安全性
      有些舊的軟體,可能已有漏洞,不要再把舊的版本轉移過來。
   2. 在移轉資料的同時,必須要注意,該資料的檔案權限。不要在完成資料移轉之後,一般 user 都「看」不到,只剩 root 一個才看得到。
   3. 可在兩台 Linux 之間直接使用 gFtp 軟體,以 SFTP2 (SSH2) 協定、 Root 身份,直接把各種資料從舊機器傳送到新機器上。

---------------------------------------------------------------------------------
attachments/201304/9435209677.jpg


  資料庫移轉

    * 資料庫位置:/var/lib/mysql
    * /var/lib/mysql/mysql 及 /var/lib/mysql/test 不可搬動
      除了上述這兩個資料夾不可搬動外,其餘在 /var/lib/mysql/ 底下的資料夾(資料庫),皆可以搬到新 Linux Server主機的 /var/lib/mysql 底下。
          因為 /var/lib/mysql/mysql 是 MySQL 的系統資料庫,它記錄了許許多多 MySQL Server 的設定參數。而且,舊版的 MySQL 與新版的 MySQL ,系統資料庫會有欄位定義上的不同,若您把舊版系統資料庫,直接覆蓋到新版之上,可能會造成 MySQL 啟動失敗。
          例外:若是新舊主機的 Linux/Linux Server 版本一致,理論上其 MySQL 版本應該也一致,就可以執行以下動作即可
         1. 直接把 /var/lib/mysql/ 底下所有資料夾複製到新主機上相同的位置上
         2. 不必再動 MySQL 使用者權限的部份
    * 複製到新主機時,要記得把 /var/lib/mysql 底下所有的資料夾(資料庫)權限,改為 mysql.mysql
      root@dns:~# chown -R mysql.mysql /var/lib/mysql/*
    * 在 Linux 底下可以使用 filezilla 以 SFTP 的協定,直接用 Root 身份進行搬動
      root@dns:~# apt-get install filezilla
    * 檢查所有 PHP+MySQL程式碼(如 ANN 公告欄...etc),把所使用到的 MySQL 使用者帳號密碼,新增至新主機的 MySQL 內
      使用 phpmyadmin,例: http://Your.ServerName/phpmyadmin
      在首頁上點:「權限」 → 「新增使用者」 (新增 MySQL 的使用者)

---------------------------------------------------------------------------------
網頁搬家

    * 網頁位置
          Red Hat 系列: /var/www/html
          Linux/Linux 系列: /var/www
          ☆.自行編譯安裝: /usr/local/apache2/htdocs
    * 可以使用圖形化工具 gFtp 以 SFTP 的協定,直接用 Root 身份進行搬動
          ☆.例1:從舊 Red Hat(含 Fedora) 之/var/www/html → Linux Server 之 /var/www
    * 也可用指令 scp
      例:以 root 身份把遠端的 /var/www/sfs3 複製回本機之 /var/www/sfs3 底下
      root@dns:~# scp root@your.old.host:/var/www/sfs3 /var/www
    * 注意:Linux 的 Apache2 Server 在送出網頁時,預設會採用 utf8 編碼,可是原主機上的網頁卻可能是 Big5 ,此時,我們必須把預設編碼解除,並加強其多國語言編碼之處理能力。
          ☆.解除送出網頁時的預設編碼
            編輯 /etc/apache2/conf.d/charset ,把 AddDefaultCharset UTF-8 變成註解

            # AddDefaultCharset UTF-8
          ☆.加強多國語言編碼處理能力,編輯 /etc/apache2/sites-available/default ,新增紅字部分。

<VirtualHost *:80>
      ServerAdmin webmaster@n10.domo.tnc.edu.tw
      ServerName n10.domo.tnc.edu.tw

      DocumentRoot /var/www/
      <Directory />
         Options FollowSymLinks MultiViews
         AllowOverride None
      </Directory>
 ...

使用者搬家(家目錄移轉)

    * 各使用者的家目錄,集中在 /home/ 底下
    * 用 gFtp 以 SFTP 的協定,直接用 Root 身份進行搬動(檔案權限,會被改為 root.root)


User 移轉

Linux 的 User 相關資料如下:

    * 各使用者資料夾 /home/*
    * 設定檔 /etc/passwd
    * 密碼檔 /etc/shadow
    * 群組檔 /etc/group
    * 群組密碼檔 /etc/gshadow

若是 Linux Server 或 Linux pureXXX 的舊主機,移轉至 Linux Server。把上列各檔,有關使用者的部份,「複製」/「貼上」至新主機同名檔案的檔尾部份。以 /etc/passwd 舉例如下:

   1. 把舊主機 passwd, shadow, group, gshadow 傳輸至新主機 /root 底下
   2. 使用文字編輯器,如 gedit 打開 /root/passwd ,複製舊主機上的使用者資料,貼至新主機的 /etc/passwd 的檔尾處(不要動到原本的資料)。


歸還其原有權限

    * 最後,要把權限還給該使用者
      root@dns:~# chown -R user.user /home/user
          ☆.註:以上 chown 要在下面 User 移轉完畢,才可以處理
    * 若人數過多,這裡有快速做法
      http://myip.tw/itsmw/index.php/Home_chowner



網頁資料庫編碼轉換

本文介紹如何在 Linux Server 下把 Big5 碼的網頁暨其資料庫轉成 UTF8 碼,並轉至 Linux 上的資料庫。當然,這並不是必要性動作,本文在此只是提供一個作法給大家參考而已,並不鼓勵大家把所有網頁暨其資料庫轉碼。


資料庫轉碼

在此,筆者以自己所寫的一支 Big5 小程式「學生資訊檢測練習區」來擔任本次的範例,它內含三支 php 程式碼以及一個資料庫(兩張表)。


Linux Server 上把資料庫轉出

    * 把整個 Big5 碼資料庫,在 Linux Server 上用 phpmyadmin 轉出成 SQL 檔
          ☆.Step1 在 phpmyadmin 首頁上點選「輸出」

          ☆.Step2 選妥所要下載的資料庫 --> 轉成 sql 檔

    * 預設會存成 localhost.sql , 我們把它改成 compuexam.sql,並放到 /root 底下
      root@dns:~# mv localhost.sql compuexam.sql
    * 預處理 compuexam.sql 把文字檔內可能會出現錯誤,如「'成功'」變成「'成功'」
      root@dns:~# vi compuexam.sql
      在 vim 內下取代命令:「:%s/'/'/g」後存檔


    * 下載 ols3 提供的轉碼工具
      root@dns:~# wget http://myip.tw/itsmw/images/f/fe/B2U.zip

    * 執行轉碼作業

   1. 把 B2U.zip 解壓
      root@dns:~# unzip B2U.zip --> 會解出執行檔 bg5-db2-utf8
   2. 轉碼至新資料庫 new_ce
      root@dns:~# ./bg5-db2-utf8 compuexam.sql new_ce mysql_passwd
      註:使用法為「./bg5-db2-utf8 已匯出的sql檔路徑檔名 新的資料庫名稱 MySQL管理密碼」



轉入 Linux Server 上的 MySQL 資料庫

    * 由上述方式製作出的資料庫,其實是預設採用 latin1 字集定義,但骨子裡放的是 utf8 碼的資料庫,使用官方版的 phpmyadmin 會無法正確顯示其文字,不過可以改用筆者修改的 phpMyAdmin解決此一問題。
          ☆.下載並放至 /var/www
            root@dns:~# cd /var/www
            root@dns:/var/www# wget http://myip.tw/itsmw/images/f/fb/PhpMyA.zip
            root@dns:/var/www# unzip PhpMyA.zip
          ☆.瀏覽方式   http://your.Linux.server/phpMyA
          ☆.進入首頁後,先選妥右側語言為: Language: 中文utf8 -- Chinese traditional(utf8)
    * 再來,只要把 Linux server 上 /var/lib/mysql/new_ce 整個資料夾搬至 Linux 上的 /var/lib/mysql 底下,並 chown 為 mysql.mysql 便完成 utf8 資料庫的製作


進一步轉成符合 MySQL 5.x UTF8 編碼校對之資料庫

接著,我們可以再利用筆者的 phpMyA 輸出 new_ce 資料庫,改寫部分內容,再用官方 phpmyadmin 匯入成標準 MySQL 5.x 版接受的 UTF8 編碼資料庫。以下操作是在 Linux Server 上,作法如下:

    * new_ce 資料庫前置處理

   1. 用 phpMyA 把 new_ce 資料庫輸出成 localhost.sql
   2. 改寫 localhost.sql ,把以下這兩行刪除

      CREATE DATABASE `new_ce`;
      USE new_ce;
   3. 把所有建立資料表最後一行 DEFAULT CHARSET=latin1 改成 DEFAULT CHARSET=utf8

      CREATE TABLE IF NOT EXISTS `table name` (
       ...
       ...
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ...;


    * 使用官方 phpmyadmin 建立 newutf8 資料庫,示例如下


    * 再點選 newutf8 資料庫 --> 【載入】 --> 選 localhost.sql --> MySQL相容模式要選用 MYSQL40 --> 【執行】

    * 這樣就可以使用官方 phpmyadmin 來檢視該資料庫,不過本動作可能會導致您舊 PHP 程式碼(SQL 語法太舊,沒加入語系校對)無法讀取該資料庫,所以請慎思是否要這麼做!

網頁轉碼

依本例,不止要搬動 compuexam 為 new_ce 資料庫,還要把其應用程式:/var/www/compuexam/ 底下所有的 PHP 程式轉碼為 utf8 才算完成。

    * 先從 Linux Server 把 /var/www/compuexem 複製至 Linux Server 的 /var/www/compuexam
    * 在 Linux Server 的 /var/www/compuexam 下建立以下之 shell 檔
      root@dns:~# vi /var/www/compuexam/b2utf8.sh

#! /bin/sh
for i in *.php; d☆.
   ech☆."$(iconv -f big5 -t utf8 $i)" > $i
done

    * 在 /var/www/compuexam 執行該 shell
      root@dns:~# cd /var/www/compuexam
      root@dns:/var/www/compuexam# chmod +x b2utf8.sh
      root@dns:/var/www/compuexam# ./b2utf8.sh


    * 修改所有的 PHP 程式碼,把語言宣告改成 UTF-8,如下所示

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />



注意資料庫密碼

    * 每支 PHP+MySQL 的 PHP 程式碼,必定會有設定資料庫密碼的程式碼,因此,從 Linux Server 轉至 Linux 後,要打開該程式檢視 MySQL 的密碼是否正確

    * 另外, PHP 程式碼之資料庫名稱設定也要記得修改

    * 若一切就緒,就可以測試瀏覽
基於安全考量Xoops2.5.0安裝好後出現警告提示的訊息(如何處理?)

基於安全考量Xoops2.5.0安裝好後出現了以下的訊息

警告提示:基於安全考量,建議將 /var/www/xoops_lib 這個資料夾移到網站根目錄之外!

警告提示:基於安全考量,建議將 /var/www/_xoops_data_ 這個資料夾移到網站根目錄之外!

處理方式與解決方法:
例如Linux主機網站路徑是:/var/www
那就把那兩個目錄移到/var
不移的話至少要改資料夾名稱,不過建議移會比較好!
如何能把xoops_data 移到別的資料夾

attachments/201011/4016146391.jpg

移動後

請修改xoops目錄下的 mainfile.php

修改 移動後的路徑

define('XOOPS_PATH', 'C:/AppServ/www/xoops/xoops_lib');

define('XOOPS_VAR_PATH', 'C:/AppServ/www/xoops/xoops_data');

還要把移動的目錄確認一下它的『可讀可寫』屬性修改正確!
此一變動對網站安全是重大革新的作法,但是對於租用虛擬主機的用戶,就要依賴主機業者的協助
萬一主機業者是國外或是根本無此服務呢?
結論:這就是自己有獨立主機與租用虛擬主機使用上最大的區別
(租人家的主機你有何主權獨立檔案、資料庫隱私可言?)

  • 1 
本Linux主機伺服器架設基地立志於收集各類Linux主機伺服器架設、網站架設及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!