我已经在我的VPS上安装了virtualmin来pipe理我的网站。 目前这个工作已经完成了近一年的时间。 最近我想添加一些function到我的网站之一,我需要git集成。
我已经在我的服务器上正确安装了git&gitweb,我可以创build存储库并在http://sub.domain.com/git/gitweb.cgi下观察它们。这是当前相关的目录树:
/home/user/domains/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/user/domains/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
但是我有一些问题:
当我访问http://sub.domain.com/git/gitweb.cgi时 ,所有者被列为“Apache”。 为什么? 我该如何改变?
通常,要创build一个新的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中创build仓库后,我可以find一个名为“reponame.git”的新目录,而不是“.git”目录。 当我试图运行任何git命令(例如,git状态)时,我收到“致命的:此操作必须在工作树中运行”。 我该如何使用该存储库?
您是否使用我们在Virtualmin.com提供的install.sh自动安装脚本来安装Virtualmin? 还是你手动安装Virtualmin?
您描述的行为意味着您的脚本不是使用suexec执行的,而是作为Apache用户执行的。 如果您使用安装脚本,则应该为所有脚本types默认configurationsuexec。 如果您手动安装,则需要自行设置,并重新编译Apache(或者,如果您使用的是Debian / Ubuntu,请安装apache2-suexec-custom软件包,并将其configuration为/ home)以设置suexec docroot到/ home。
我们在我们的网站上有一些关于手动安装的文档,但手动安装仍然需要非常重要的知识和大量的时间投入。 我们build议在新安装的Grade A支持的操作系统上使用安装脚本,如下载页面所述 。
我对gitweb一无所知,所以我不会回答这些问题。
关于所有权问题:在某些设置中,包pipe理器(例如apt)安装的PHPconfiguration会覆盖Virtualmin的fcgidconfiguration。 在这种情况下,解决scheme是编辑/etc/apache2/mods-available/php5.conf,注释掉SetHandler application/x-httpd-php ,然后运行apache2ctl graceful 。