将 gitolite 用户目录符号链接到 Apache 站点-可用

将 gitolite 用户目录符号链接到 Apache 站点-可用

我有一个 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 即可

相关内容