我有一个 gitolite 开发服务器,我正在尝试自动创建新的虚拟主机。
我认为,与其让 gitolite 用户(非 root)在 /etc/apache2/sites-available 中创建新的配置文件,不如将 /home/gitolite/sites-available 目录符号链接到它。
我可以运行这个:
sudo ln -s /home/gitolite/sites-available/* /etc/apache2/sites-available/
然后我就可以看到符号链接目录中的站点
default symlinkedsite.com nonsymlnkedsite.com
但在我看来,如果我创建了一个新文件,我需要重新运行该命令,因此它不能满足我的需要。
我原本想尝试一下
sudo ln -s /home/gitolite/sites-available /etc/apache2/sites-available/
创建一个符号链接可用站点/etc/sites-available 目录中
但是如果我运行 a2ensite,它就无法跟随该符号链接。
我知道为了让 apache2 虚拟主机使用符号链接,必须启用 followsymlinks。apache2 sites-available 配置目录是否有类似的选项?
我扫描了 apache2.conf 但没有发现任何明显的东西。
答案1
您应该在主 httpd.conf(或 apache2.conf)中添加一行包含行
您的配置中可能已经有类似这样的内容:
# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.
# Include generic snippets of statements
Include /etc/apache2/conf.d/
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
您要添加的是:
# Include gitolite files
Include /home/gitolite/sites-available/
这将告诉 httpd 在该目录中包含 .conf 文件,当然您还必须授予 apache 用户对该文件夹的读取权限。
答案2
好吧,我通过将原始的 sites-available 目录完全替换为我需要的符号链接来强制执行它。
@Zypher - 我认为我需要 a2ensite,不是吗?要手动创建指向 sites-enabled 的符号链接,我需要赋予 gitolite 某种权限,我只需在 visudo 中添加 /usr/sbin/a2ensite 即可