我有一些使用 Apache 配置为 VirtualHosts 的站点,它们已经运行了一段时间。我最近将服务器的主机名更改为正在提供服务的域名之一,并将其添加到 /etc/hosts 指向服务器的外部 IP 地址。
由于我这样做了,从我的笔记本电脑访问域将我带到 Apache 的默认“它有效!” 页。如果我从 /etc/apache2/sites-enabled/ 中删除 000-default,它会显示正确的站点。尝试使用“www”访问该站点。无论 000-default 是否在启用站点中,前缀都会带我到正确的站点。
基于所有这些,我猜测默认配置正在提供默认页面,因为我是如何配置主机名或 /etc/hosts(或两者)的,但我不知道如何禁用它,而保持这些设置不变。欢迎任何建议!
编辑 - 我当前的 VirtualHost 配置如下所示:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin me@domain.com
DocumentRoot /srv/www/domain
ErrorLog /srv/www/domain/logs/error.log
CustomLog /srv/www/domain/logs/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
总结一下:我设置了几个 VirtualHost,这是唯一一个不能正常工作的。我可以很好地访问http://www.domain.com,但是http://domain.com将我带到 Apache 的默认“它有效!” 页。如果我禁用 000-default 配置,它会显示正确的页面。这仅在我将服务器的主机名设置为 domain.com 并在 /etc/hosts 中添加一行指向 domain.com 到服务器的外部 IP 地址后才开始发生。如果可能的话,我想就这样离开那些。
编辑:我跑了,apache2ctl -S因为/usr/sbin/apache2 -S给了我“apache2:错误的用户名 ${APACHE_RUN_USER}”。这是输出:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a …Run Code Online (Sandbox Code Playgroud) 我正在使用 Chef-solo v10.12.0 来配置 Ubuntu 12.04 VM,但我一直遇到一个问题,即在更改配置文件时服务无法按预期重新启动或重新加载。
日志中没有错误,尽管它显然在执行配方中的所有其他操作。作为一种解决方法,我一直在手动重新启动服务或在每次执行配方时强制重新加载/重新启动,但我更愿意弄清楚出了什么问题并使其按预期工作。
一个始终无法按预期工作的示例配方:
package "pgbouncer"
cookbook_file "/etc/default/pgbouncer" do
source "pgbouncer/pgbouncer"
owner "root"
group "root"
mode 0644
end
service "pgbouncer" do
supports :start => true, :stop => true, :restart => true, :reload => true, :status => true
action [:enable, :start]
end
cookbook_file "/etc/pgbouncer/userlist.txt" do
source "pgbouncer/userlist.txt"
owner "postgres"
group "postgres"
mode 0640
notifies :restart, "service[pgbouncer]"
end
template "/etc/pgbouncer/pgbouncer.ini" do
source "pgbouncer/pgbouncer.ini"
owner "postgres"
group "postgres"
mode 0640
variables :postgres_host => node[:postgres_host]
notifies :restart, "service[pgbouncer]"
end
Run Code Online (Sandbox Code Playgroud)