Domain-Name-System

將網站從共享主機轉移到 vps

  • November 24, 2013

我想將目前在共享主機上執行的網站(比如說 www.mydomain.com)轉移到我最近購買的 VPS 伺服器上。

我在我的 VPS 伺服器的 DirectAdmin 中創建了一個域,其名稱與目前在共享主機 (www.mydomain.com) 上執行的域名相同。現在我將網站和數據庫上傳到我的 VPS 上的這個域,它工作正常。

現在,我只需要將 de DNS 從我目前的共享主機更改為這個 VPS。但這對我來說有點令人困惑。

假設 VPS 伺服器的 IP 地址為 12.12.12.12。然後我通過 DirectAdmin 創建的域在 12.12.12.12/~admin/ 上執行。我已經在我的共享主機上創建了一個 DNS A 記錄 (server.mydomain.com),它指向伺服器的 IP 地址。但是當我試圖達到這個記錄時,它並沒有顯示網站,而只有“Apache 執行正常”。

現在,我必須更改我的 DNS 設置以使域指向在我的 VPS 伺服器 (12.12.12.12/~admin/) 上執行的網站?

通過將 www.mydomain.com 的 A 記錄指向 12.12.12.12,您僅實現了使 Web 請求到達伺服器的目標。需要將伺服器配置為接受對主機的請求:www.mydomain.com 並從您的 ~/admin 文件夾中提供它們。

有(至少)兩種方法可以實現這一點,真的。

  1. 如果這是您將從伺服器託管的唯一 Web 應用程序,您可以在 VPS 的 Web 伺服器上更改您的文件根目錄(您還沒有告訴我們它是哪一個,所以我無法提供更多詳細資訊)以指向“/~ admin/" 駐留。

編輯:這是更改 docroot 的方法 - 在 stackoverflow 中已經詢問過它:https ://stackoverflow.com/q/5891802/708198

  1. 如果您有多個 Web 應用程序,或者出於某種原因不想更改預設的 docroot,則需要為域創建一個虛擬主機。您可以在網際網路上輕鬆找到有關您在 VPS 上使用的任何網路伺服器的虛擬主機設置的資訊。

通常,在 apache 上你可以這樣做。請不要盲目複製/粘貼,我很快從我自己的網路伺服器中提取了這個:

設置預設虛擬主機:

NameVirtualHost *:80

<VirtualHost *:80>
   ServerAdmin webmaster@mydomain.com
   DocumentRoot "/path/to/docroot"
   ServerName hostname.mydomain.com
       <Directory "/path/to/docroot">
     AllowOverride None
     Options None
     Order allow,deny
     Allow from all
   </Directory>
   ErrorLog "/var/log/apache/httpd-default-error.log"
   CustomLog "/var/log/apache/httpd-default-access.log" combined
</VirtualHost>

其次是

<Virtualhost *:80>
   ServerAdmin webmaster@mydomain.com
   DocumentRoot "/path/to/webapp/admin/"
   ServerName www.mydomain.com
   ServerAlias mydomain.com
<Directory "/path/to/webapp/admin/">
   AllowOverride FileInfo AuthConfig Limit Indexes
   Options MultiViews Indexes SymlinksIfOwnerMatch IncludesNoExec
   <Limit GET POST OPTIONS>
       Order allow,deny
       Allow from all
   </Limit>
   <LimitExcept GET POST OPTIONS>
       Order deny,allow
       Deny from all
   </LimitExcept>
</Directory>
   ErrorLog /var/log/www.mydomain.com/httpd-error.log
   CustomLog /var/log/www.mydomain.com/httpd-access.log combined
</Virtualhost>

引用自:https://serverfault.com/questions/556978