Domain-Name-System
將網站從共享主機轉移到 vps
我想將目前在共享主機上執行的網站(比如說 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 文件夾中提供它們。
有(至少)兩種方法可以實現這一點,真的。
- 如果這是您將從伺服器託管的唯一 Web 應用程序,您可以在 VPS 的 Web 伺服器上更改您的文件根目錄(您還沒有告訴我們它是哪一個,所以我無法提供更多詳細資訊)以指向“/~ admin/" 駐留。
編輯:這是更改 docroot 的方法 - 在 stackoverflow 中已經詢問過它:https ://stackoverflow.com/q/5891802/708198
- 如果您有多個 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>