系统

系统

我在让 Passenger 和 svn 在 Redmine 中工作时遇到了一些问题。

系统

  • Ubuntu 12.04
  • Apache 2.2.22
  • PassengerRuby 1.9.1
  • 乘客 3.0.19

问题

当我让 Passenger 进行正常的用户切换并以 www-data 身份运行时,svn 集成不起作用。我已确保在 configuration.yml 中输入 svn 的绝对路径 (/usr/bin/svn),但当我转到管理->设置->存储库该命令旁边有一个红色感叹号图标。此外,当我创建新项目并尝试创建存储库时,我收到此错误消息

SCM 命令不可用。请检查管理面板上的设置。

现在,如果我让乘客以我自己的用户身份运行我的用户名svn 可以工作。但据我所知,它不应该这样运行。

所以我认为某个地方存在权限问题,但我就是不知道在哪里。

我已确保我的自签名证书不会导致问题,方法是在以 www-data 形式运行 svn 时永久接受它,如下所示:

sudo -u www-data -H svn --username mysvnusername info https://svn.mydomain.com/myrepo

据我所知,这可以正常工作。它写入/var/www/.subversion当我再次运行它时,系统不再询问证书。

以下是相关输出ps-ef

UID      PID   PPID   C STIME TTY      TIME     CMD
root     16151     1  0 14:41 ?        00:00:00 /usr/sbin/apache2 -k start
root     16155 16151  0 14:41 ?        00:00:00 PassengerWatchdog
root     16158 16155  0 14:41 ?        00:00:02 PassengerHelperAgent
root     16160 16158  0 14:41 ?        00:00:00 Passenger spawn server
nobody   16165 16155  0 14:41 ?        00:00:00 PassengerLoggingAgent
www-data 16205     1  0 14:41 ?        00:00:04 Rack: /var/www/redmine
www-data 16391 16151  0 14:52 ?        00:00:01 /usr/sbin/apache2 -k start
www-data 16418 16151  0 14:53 ?        00:00:01 /usr/sbin/apache2 -k start
www-data 16427 16151  0 14:53 ?        00:00:01 /usr/sbin/apache2 -k start

这里需要明确的是,问题似乎不是与 svn 服务器的实际连接,而是 www-data 运行实际 svn 命令的问题。

我应该去哪里找?我应该做什么?

答案1

我现在通过添加一个新的系统用户并将 redmine 应用程序目录 chown 给 redmine 用户来解决这个问题:

sudo adduser --system redmine  
sudo chown -R redmine:www-data /var/www/redmine  

现在,Redmine 应用程序以用户 redmine 身份运行,并且 svn 可以正常工作。也许这也是安全性方面的最佳解决方案?

相关内容