Virtualmin 和 git 集成

Virtualmin 和 git 集成

我已经在我的 VPS 上安装了 virtualmin 来管理我的网站。近一年来,它运行完美,正如预期的那样。最近我想给我的一个网站添加一些功能,我需要 git 集成。

我已经在我的服务器上正确安装了 git 和 gitweb,我可以在以下位置创建存储库并查看它们 http://sub.domain.com/git/gitweb.cgi 这是当前相关的目录树:

/home/用户/域/sub.domain.com/public_html/git/

drwxr-sr-x user   user .
drwxr-x--- user   user ..
-rw-r--r-- user   user git-favicon.png
-rw-r--r-- user   user git-logo.png
-rwxr-xr-x user   user gitweb.cgi
-rw-r--r-- user   user gitweb.css
drwxrwx--- apache user reponame.git

/home/用户/域/sub.domain.com/public_html/git/reponame.git/

drwxrwx--- apache user .
drwxr-sr-x user   user ..
drwxrwx--- apache user branches
-rwxrwx--- apache user config
-rwxrwx--- user   user description
-rwxrwx--- apache user HEAD
drwxrwx--- apache user hooks
drwxrwx--- apache user info
drwxrwx--- apache user objects
drwxrwx--- apache user refs

但我有一些疑问:

  1. 当我去拜访时http://sub.domain.com/git/gitweb.cgi,所有者被列为“Apache”。为什么?我该如何改变呢?

  2. 通常,要创建一个新的 git 存储库,我会执行以下操作:

    $ mkdir proj
    $ cd proj
    $ git init
    Initialized empty Git repository in /home/user/proj/.git/
    // here I'm creating the files or copy them from somewhere else
    $ git add *.php
    $ git add README
    $ git commit -m 'initial version'
    

但在 virtualmin 中创建存储库后,我可以找到名为“reponame.git”的新目录,但找不到“.git”目录。当我尝试运行任何 git 命令(例如 git status)时,我收到“致命:此操作必须在工作树中运行”的消息。我该如何使用该存储库?

  1. 目前我需要明确授予用户访问权限,以便他们能够通过 gitweb 查看存储库。如何将某些存储库公开?

答案1

您是否使用我们在 Virtualmin.com 上提供的 install.sh 自动安装脚本安装了 Virtualmin?还是手动安装了 Virtualmin?

您描述的行为意味着您的脚本不是使用 suexec 执行的,而是以 Apache 用户身份执行的。如果您使用了安装脚本,suexec应该默认情况下,所有脚本类型均已配置。如果您手动安装,则需要自行设置,并重新编译 Apache(或者,如果您使用的是 Debian/Ubuntu,则安装 apache2-suexec-custom 包,并将其配置为 /home)以将 suexec docroot 设置为 /home。

我们有一些关于在我们的网站上手动安装,但手动安装仍然需要相当多的知识和大量的时间投入。我们建议在新安装的 A 级支持操作系统上使用安装脚本,如我们的下载页面

我对 gitweb 一无所知,所以我不会回答这些问题。

答案2

关于所有权问题:在某些设置中,包管理器(例如 apt)安装的 PHP 配置会覆盖 Virtualmin 的 fcgid 配置。在这种情况下,解决方案是编辑 /etc/apache2/mods-available/php5.conf,注释掉该行SetHandler application/x-httpd-php,然后运行apache2ctl graceful

相关内容