Migrate a drupal website

Drupal migration is a common issue while upgrading software or handware.

完整備份網站資料夾,並移至另一主機

舉例而言,若 drupal 網站放置於 /var/www/html/nexus 下,則需要將整個網站進行備份,並放置於 jkw 的桌面上

# 複製資料夾於主機中
$ sudo cp -r /var/www/html/nexus /home/jkw/桌面

# 移至桌面
cd /home/jkw/桌面

# 壓縮打包此網站內容
$ sudo tar -jcv -f ./nexus.tar.bz2 ./nexus

# 設定讀取權限
$ sudo chown jkw:jkw ./nexus.tar.bz2

可利用 FTP 將此資料傳輸到要架設的主機上,並將之置於使用者 admin 桌面,假設要放置網站於 /var/www/html 下

# 先移至 admin 桌面
$ cd /home/admin/桌面

# 解壓縮
$ tar -jxv -f ./nexus.tar.bz2 -C ./nexus

# 複製至 apache 網站根目錄下
$ sudo cp -r ./nexus /var/www/html

設定權限與 SELinux

# 將使用此資料夾權限設定給 apache
$ sudo chown apache:apache -R /var/www/html/nexus

# 設定此資料夾底下目錄為 html 內容
$ sudo chcon -Rv --type=httpd_sys_content_t /var/www/html/nexus

# 查看 selinux 是否已經標籤
$ ls -alZ /var/www/html/nexus

# 還原預設 selinux 安全性
$ sudo restorecon -Rv /var/www/html/nexus

設定資料庫與 htaccess

假設原資料庫是透過 sqlite 進立於 sites/default/file/.ht.sqlite,而 htaccess 建立於 sites/default/file/.htaccess,需要將此兩項設定權限為全部皆可讀寫;

# 設定 sqlite 資料庫讓全部人都能用
$ sudo chmod 777 /var/www/html/nexus/sites/default/file/.ht.sqlite 

# 設定 htaccess 
$ sudo chmod 777 /var/www/html/nexus/sites/default/file/.htaccess

重新取得資料庫設定

因新的網站需要使用新的設定,可以直接刪除 sites/default/setting.php 檔案,並重新讓 drupal 進行設定即可:

# 先備份原始設定檔
$ sudo mv /var/www/html/nexus/sites/default/settings.php /var/www/html/nexus/sites/default/settings.php.backup

# 直接刪除 settings.php 檔案即可
$ sudo rm -f /var/www/html/nexus/sites/default/settings.php

此時需要透過瀏覽器連入此網站進行設定,例如 http://localhost/nexus/ ,之後在設定時輸入與資料庫相同的設定,並點擊「檢視現有網站」即完成移轉 drupal 網站。

results matching ""

    No results matching ""