我想将当前在共享主机上运行的网站(假设为 www.mydomain.com)转移到我最近购买的 VPS 服务器上。
我在我的 VPS 服务器的 DirectAdmin 中创建了一个域,其名称与当前在共享主机上运行的域名相同(www.mydomain.com)。现在我将网站和数据库上传到我的 VPS 上的这个域,并且它运行正常。
现在,我只需要将 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/) 上运行的网站?
答案1
通过为 www.mydomain.com 创建指向 12.12.12.12 的 A 记录,您只实现了使 Web 请求到达服务器的目标。需要配置服务器以将请求发送到主机:www.mydomain.com 并从您的 ~/admin 文件夹提供服务。
实际上,至少有两种方法可以实现这一点。
- 如果这是您在服务器上托管的唯一 web 应用程序,那么您可以更改 VPS web 服务器上的文档根目录(您没有告诉我们它是哪一个,所以我无法提供更多详细信息)以指向“/~admin/”所在的位置。
编辑:您可以按照以下方法更改 docroot - 它已在 stackoverflow 中询问过:https://stackoverflow.com/q/5891802/708198
- 如果您有多个 Web 应用程序,或者出于某种原因不想更改默认的文档根目录,则需要为域创建虚拟主机。您可以轻松在互联网上找到有关在 VPS 上使用的任何 Web 服务器的虚拟主机设置的信息。
通常,在 Apache 上你可以这样做。请不要盲目复制/粘贴,我从自己的网络服务器中快速提取了以下内容:
设置默认虚拟主机:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
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 [email protected]
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>