编辑(再次):我认为,我的Ubuntu操作系统(个人)上的apache2安装将使我能够“主办”网站内部 – 没有上网。 我现在已经意识到,“工作”这两个域名实际上是注册域名,另外两个是我打算在我上线后注册的域名。 但断开连接到互联网甚至停止前两个域的工作 – 虽然我知道他们从localhost.mysitename.com拉他们的文件。 这里发生了什么事? 我现在正在阅读etc / host和etc / host.conf和etc / nsswitch.conf – 我正朝着正确的方向前进?
我用更多的信息重写了这个问题。 问题依然存在。 谢谢:
如何在世界上彻底阅读vHostconfiguration中的apache文档,尝试几乎所有的配制 ,并且仍然有最初的两个主机和目录工作得很好,然后每一个后来坏的初始场景。 “请求错误”“找不到服务器”
这里是基本的vHost文件(在/ etc / apache2 / sites-available中),只有“mysitename1”改变,其DocumentRoot和它的目录改变,正好复制了4次。 顺便说一句,这个版本使用本地主机IP(127.0.0.1),但我用*:80与完全相同的结果。
<VirtualHost 127.0.0.1> ServerAdmin [email protected] ServerName localhost.mysitename1.com DocumentRoot /home/folder/folder/folder/folder <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /home/folder/folder/folder/folder> 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 "path to this site's error.log" LogLevel warn CustomLog "path to this site's access.log" 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>
而ports.conf里面是这样的:(我已经开始使用*:80而不是127.0.0.1了) – 结果如上所述:
Listen 80 NameVirtualHost 127.0.0.1
我想知道关于doc文档的句子:“你可以把条目放到你的hosts文件中进行本地testing,但是这只能从那些有主机条目的机器上运行。 这就是我想要做的,本质上是一个开发环境,我可以在本地多个站点上工作。 我找不到这个“主机”文件,但我想知道是否我进入了我的前两个域(很久以前),忘记了我是如何做到的。 ??
谢谢你的帮助。
答案在/ etc / hosts文件中。 要发现名称的IP地址,系统DNSparsing器将(应该)首先查找/ etc / hosts文件中的name = ip,如果不存在,则进行DNSsearch。 阅读“man hosts”以查看hosts文件的语法。 分配你所有的域(最好不是FQDN)localhost(127.0.0.1)的ip#例子:
127.0.0.1 localhost.exmaplesite1.com 127.0.0.1 localhost.exmaplesite2.com
在你的VirtualHost指令中使用localhost.examplesite1.com和localhost.examplesite2.com作为ServerName。 查看其他设置和语法的文档链接。 Apache2没有logging通配符的唯一通配符 – 但他不明白我试图通过本地主机回送强制某些名称,以便我可以离线开发Web应用程序。 我从来没有理解@ lynxman的假设,“错误的请求”或“服务器未find”错误可以写入错误日志开始 – 尽pipe我为每个VirtualHost指令使用单独的日志文件。
顺便说一句:“sudo主机localhost.examplesite.com”将打印出该网站的IP地址如果“examplesite.com”是一个实际的网站。 显然,“sudo host”命令不会查找/ etc / hosts设置并影响IP。 – 是的,我知道,把我搞得很好。
干杯!
您可以在apache中托pipe尽可能多的虚拟主机,这看起来像主机名是非常相似或重叠的,当在apache中创build一个虚拟主机时,请确保
NameVirtualHost指令 %V添加到您的日志格式(以便显示哪个域正在击中)或每个VH中有一个文件来检查您login的是哪一个是 我会与你分享我的工作configuration。
确保你已经链接你的虚拟主机的网站启用 。 Apache按字母数字顺序执行每个启用站点的文件,因此将默认站点命名为0000-default,因此它将首先执行。 这是您的用户在虚拟主机失败时应该看到的网站。 我看起来像这样:
NameVirtualHost * <VirtualHost *> ServerAdmin [email protected] DocumentRoot /var/www/0000-default-site <Directory /> Options FollowSymLinks #AllowOveride set to All for mod rewrite (default None) AllowOverride All </Directory> <Directory /var/www/0000-default-site> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel info CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>
请注意* NameVirtualHost **指令。 重要的是,这是虚拟configuration中的第一个指令。 所以,你把它放在0000-默认的顶部,并确保没有其他任何事先执行。
接下来命名您的第一个虚拟主机0010-您的域名和您的第二个0020-another.name 。 这是我的虚拟外观(注意他们与默认值略有不同):
<VirtualHost *> ServerName www.lickmyquads.net ServerAlias lickmyquads.net ServerAdmin [email protected] DocumentRoot /var/www/lickmyquads.net/www/docroot <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/lickmyquads.net/www/docroot> Options FollowSymLinks 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 info CustomLog /var/log/apache2/access.log combined ServerSignature On #Custom Error #ErrorDocument 404 /app/404.php #ErrorDocument 404;2 /app/404.php #ErrorDocument 404;3 /app/404.php </VirtualHost>
希望这个工作的例子可以帮助你解决问题。 如果不尝试运行apache2ctl configtest命令来帮助查找configuration中的任何语法错误。
“未find服务器”听起来像您的主机文件设置不正确。 告诉我们一些关于您的客户端设置的信息 操作系统,浏览器,主机文件等
如果您有多个客户端,并且不想维护单独的主机文件,则可以设置水平分割DNS服务器。
http://en.wikipedia.org/wiki/Split-horizon_DNS
这不像听起来那么难,有一个本地cachingDNS服务器有好处。