将域和子域添加到服务器

问候,请原谅,如果这是一个非常基本的问题。

问题:

目前我已经从Godaddy.com买了一个域名(crazywebsite.com),我在Site5.com有一个非托pipe的VPS。

我在我的Debian机器 Site5.com中build立了一个LAMP栈 (Debian,Apache2,MySQL,PHP Laravel),目前我有我的IP和网站外观,可以像这样访问:

292.168.0.1./website (Just an example IP) 292.168.0.1./forum 

问题是:

我如何实现以下目标?

crazywebsite.com => 292.168.0.1./website
forum.crazywebsite.com => 292.168.0.1./forum

所以当你写下我买的域名时,你会看到网站的内容(当然不是通过IP链接访问它)。

任何想法或链接如何做到这一点?

目前我已经尝试了以下内容:

添加了以下设置:

在/ etc / apache2的/网站可用/默认

至:

 # website <VirtualHost *:80> ServerName crazywebsite.com ServerAlias crazywebsite.com DocumentRoot /var/www/website </VirtualHost> <VirtualHost *:80> ServerName www.crazywebsite.com ServerAlias www.crazywebsite.com DocumentRoot /var/www/website </VirtualHost> # forum <VirtualHost *:80> ServerName forum.crazywebsite.com ServerAlias forum.crazywebsite.com DocumentRoot /var/www/forum </VirtualHost> <VirtualHost *:80> ServerName www.forum.crazywebsite.com ServerAlias www.forum.crazywebsite.com DocumentRoot /var/www/forum </VirtualHost> 

Thahk你提前!

编辑:

正如@Sven所build议的那样,我在GoDaddy.com做了我的Alogging。 任何人都可以证实这是正确的? 我为名称服务器创build了两个域NS1和NS2(只是在任何情况下)和一个“推荐”,我将需要作为一个子域。 在这里输入图像说明

我是否需要在我的Debian服务器上执行任何其他设置(比如BIND9等)?或者我只需要等到DNS更新。

编辑:

这些设置已经工作。 现在唯一的问题是,我不能指向http://crazywebsite.com到123.456.789.000 / mywebsite。 相反,它总是显示根文件夹“/”。 有什么build议么?

您需要添加DNSlogging

到GoDaddy控制中心的DNS区域,例如使用crazywebsite.com的Alogging和其他所有内容的CNAMElogging,指向crazywebsite.com (但是四个Alogging也可以)。

而不是每个网站( /website/forum )添加两个虚拟主机,您应该执行以下操作:

 <VirtualHost *:80> ServerName crazywebsite.com ServerAlias www.crazywebsite.com DocumentRoot /var/www/website </VirtualHost> # forum <VirtualHost *:80> ServerName forum.crazywebsite.com ServerAlias www.forum.crazywebsite.com DocumentRoot /var/www/forum </VirtualHost> 

Svenbuild议添加“论坛”和“www”logging,指向你的Site5 VPS。 你需要这些,而不是“ns1”和“ns2” – GoDaddy目前是你的名字服务器,所以不用担心做你自己的DNS。

Svenbuild议的Apacheconfiguration是完全足够的。 你几乎可以肯定已经在你的ports.conf中:

 NameVirtualHost *:80 

我已经解决了我的问题,这是每个需要它的人的解决scheme:

1.将您的域名绑定到Debian服务器上的IP

首先,您需要在您的Debian机器中绑定您的域名。 这样你的Debian服务器就知道它需要响应这个域。 打开并编辑/ etc / hosts文件到以下内容:

 127.0.0.1 localhost.localdomain localhost 123.456.789.000 crazywebsite.com # of course, in stead of 123.456.789.000 you type the IP of your Debian server 

2.为域和子域设置虚拟主机。

然后你进入你的apache设置并设置你的域和子域虚拟主机。 通过这样做,您将能够将每个域指向服务器中的确切文件夹所指向的位置。 例:

crazywebsite.com => 292.168.0.1./website forum.crazywebsite.com => 292.168.0.1./forum

要做到这一点,你需要打开文件/ etc / apache2 / sites-available / default并使用以下命令编辑它:

 # This is the default content of the file <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost> # END: Default content of the file # Your custom domain and subdomain content below this line # website <VirtualHost *:80> ServerName crazywebsite.com ServerAlias www.crazywebsite.com DocumentRoot /var/www/website </VirtualHost> # forum <VirtualHost *:80> ServerName forum.crazywebsite.com ServerAlias www.forum.crazywebsite.com DocumentRoot /var/www/forum </VirtualHost> 

3.确保你的域名与“WWW”没有“WWW”指向相同的文件夹。

这是我在完成所有这些步骤之后所得到的一个问题。 只有我的www.crazywebsite.com指向/ var / www / website ,但是crazywebite.com版本仍然只指向/ var / www

解决scheme是转到以下目录:

在/ var / WWW /

并创build一个.htacces的文件,当你input“ crazywebsite.com ”和“ http://www.crazywebsite.com ”来redirect到你的/ var / www / website文件夹的时候, ServerName crazywebsite.com ServerAlias http://www.crazywebsite.com UseCanonicalName On

 RewriteEngine On RewriteCond %{HTTP_HOST} !^crazywebsite\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://crazywebsite.com/$1 [L,R]