我最近在 Ubuntu 10.04 上安装了 Lighttpd。我使用了标准配置文件,没有做任何修改,并将内容放在 /var/www 中。我打开浏览器,输入 URL www.myexample.co.uk,内容就被传送了。太棒了!
我需要使用服务器托管多个网页,因此我配置了简单的 vhost 模块。我几乎将 vhost 配置文件 /etc/lighttpd/conf-enabled/10-simple-vhost.conf 保留为标准配置:
simple-vhost.server-root = "/var/www"
simple-vhost.document-root = "html"
#simple-vhost.default-host = "www.example.com"
然后,我将内容从 /var/www 移至 /var/www/myexample.co.uk/html/,重新启动服务器并打开浏览器进行测试。
现在我看到一个页面,其中显示了 / 的索引,然后有一个指向名为 myexample.com 的文件夹的链接。单击此按钮将打开 /myexample.co.uk 的索引,该索引有一个指向名为 html 的文件夹的链接。单击此按钮将显示我的内容。
显然,这并没有按照我的预期发挥作用。任何想法都将不胜感激!
答案1
猜测http://redmine.lighttpd.net/wiki/1/Docs:ModSimpleVhost你仍然需要一个
simple-vhost.default-host = "example.org"
条目或类似内容。您使用的主机名是否与目录名完全匹配?
您能否破坏配置文件并查看服务启动失败,以证明您正在编辑它正在使用的配置文件?
答案2
经过一番尝试后,我设法通过设置 /etc/lighttpd/conf-enabled/10-simple-vhost.conf 使其正常工作,如下所示:
simple-vhost.server-root = "/var/www"
simple-vhost.document-root = "html"
simple-vhost.default-host = "myexample.co.uk"
基本上,我需要设置一个默认主机值并摆脱 www 部分。
答案3
- 使用 ubuntu 提供的脚本助手
sudo lighty-enable-mod simple-vhost
(或 lighttpd-enbale-mod)运行,通过它更改您在 /etc/lighttpd/lighttpd.conf 中的状态,并将相关文件从 /etc/lighttpd/conf-available 移动到 conf-enabled 文件夹以包含 simple-vhost mod。 - sudo /etc/init.d/lighttpd 强制重新加载
- 在conf-enabled文件夹中,有一个名为10-simple-vhost.conf的文件。根据您的要求进行编辑。
个人建议:
- 通过创建 /sites/vhost/www.example.com 文件夹来划分各个站点。
- 为每个主机放置 log、www、cgi 等文件夹
记得给这些文件夹设置正确的权限