2016-06-10 205 views
1

我有一個可用的本地Drupal 7站點(帶有本地MySQL數據庫),但現在我試圖將它遷移到亞馬遜網絡服務(目前正在成功運行測試Drupal站點)。我在EC2實例服務器的目錄mydrupalsite中擁有所有的drupal文件,並且數據庫已被添加到遠程MySQL,但我不知道現在要做什麼來配置apache以顯示新的站點。如何將Drupal站點遷移到Amazon Web Services EC2?

我迄今爲止嘗試:

  • 我加入/etc/apche2/sites-available文件(複製舊的實例,並在適當時改變目錄名)
  • 我改變了符號鏈接(刪除舊符號鏈接,並添加一個新的)在/etc/apache2/sites-enabled,這樣只有新的文件被指向。
  • 然後我重新啓動服務器,並導航到該網站,但它帶我到安裝頁面(好像我是從頭開始)

這裏是$內容數據庫變量的設置上的文件我本地機(含用戶名更改,但PW是一個空字符串)

if (!isset($databases)) { 
    $databases = array(); 
} 

$databases['default']['default'] = array(
    'driver' => 'mysql', 
    'database' => 'naicdrpl', 
    'username' => 'mylocalsiteusername', 
    'password' => '', // password is an empty string 
    'host' => '127.0.0.1', 
    'port' => 33067); 
+0

數據庫引擎是本地數據庫還是使用RDS? – error2007s

+0

這是一個本地數據庫。但數據庫也在遠程實例上,所以這不是問題。 –

+0

您是否將「mydrupalsite.sql」導入本地數據庫? – error2007s

回答

1

可以使用backup&migrate模塊migra灰。使用非常簡單。

  1. 從您的Drupal目錄中壓縮所有文件。在新服務器上覆制/解壓該文件。
  2. 用備份&遷移模塊備份您的數據庫文件。
  3. 在新服務器上安裝Drupal站點。運行install.php並按照步驟操作 - 您應該更改/sites/default/settings.php file中的設置。
  4. 繼續/admin/modules並啓用備份和遷移。
  5. /admin/config/system/backup_migrate/restore上傳您的備份文件,然後單擊還原按鈕

注1(數據庫設置):

爲Drupal安裝,當然你需要有數據庫。您應該創建空的數據庫併爲該數據庫設置用戶。您還應該爲該數據庫用戶設置密碼並授予他完整的權限。基本上,在這裏你設置你的新服務器上創建空數據庫Drupal站點

if (!isset($databases)) { 
    $databases = array(); 
} 

$databases['default']['default'] = array(
    'driver' => 'mysql', 
    'database' => 'nameofyourDB', //here you enter name of new empty database 
    'username' => 'mylocalsiteDBusername', //here you enter user name of database user 
    'password' => 'yourpassword', //you should always set up password for database user for security reasons 
    'host' => '127.0.0.1', //name of your host (usually is localhost) 
    'port' => 33067); //default MySql port 

:在文件的settings.php你再更改這些數據。之後,使用備份和遷移模塊填充該數據庫。

注2(settings.php這個文件premissions):

當您遷移網站,(在你的情況下,更換舊與新)要更改settings.php這個文件可以有一個小問題寫settings.php文件的權限。這是一種常見的情況,默認情況下,您不能更改settings.php,以便編輯/替換該文件,您需要更改文件以及放置該文件的文件夾的權限。沒有寫權限,你可以用新的站點和舊的settings.php文件(你遷移的站點中的settings.php文件不會覆蓋舊文件)。

希望這會有所幫助。

+0

當我在新服務器(AWS的EC2實例)上獲得備份後,如何配置服務器以使用新的站點而不是舊的?我在'/ etc/apche2/sites-available'中添加了該文件,並在'/ etc/apache2/sites-enabled'中更改了符號鏈接,以便僅指向新文件。然後我重新啓動服務器,但它將我帶到安裝頁面。 –

+1

如果你可以進入安裝頁面,那麼你的Apache配置工作正常 - 通常你所描述的問題意味着settings.php丟失,或者無法被web服務器讀取 – Clive

+1

有時你可能會遇到問題想要更改settings.php文件。對於那些將來可能會遇到這個問題的人,我會在這個問題的答案中加註。 – Darko

1

你可以做到這一點與備份GUI和遷移模塊https://www.drupal.org/project/backup_migrate

+0

備份和傳輸不是問題。在新服務器上獲得完整備份後,如何配置Apache以使用新站點而不是舊站點? –

+1

如果您按照@Darko的說法進行操作,它基本上會替換您運行的空白網站,並且您使用備份和遷移進行備份(因此您不需要對Apache執行任何操作)。 –

1

好吧看來問題在於settings.php沒有所需的配置。這裏是爲我工作的解決方案:

  1. 爲了確定需要的是什麼,我在mysql中調用temp_db創建一個臨時數據庫
  2. 我註釋掉的settings.php的數據庫部分
  3. 我導航到再次啓動安裝過程的網站
  4. 我使用新的temp_db執行了安裝過程
  5. 完成此過程後,我轉到settings.php並將db名稱更改爲正確的名稱。
  6. 再次去EC2實例,它工作!

非常感謝所有幫助過我的人!

+0

是的,因爲我們認爲問題在settings.php中。當您使用備份和遷移遷移網站時,我會在回答詳細數據庫配置時再添加一條備註。乾杯 – Darko