5

我需要一种简单的方法来允许最终用户从同一个盒子上的 apache 提供的网页重新启动 tomcat。

我们正在努力让我们的 QC 部门能够轻松地将新版本的 webapp 部署到 apache。我们正在使用 samba,但我们需要一种简单的方法让他们在部署之前/之后停止/启动 tomcat 服务器。

这仅适用于内部质量控制箱。有没有现成的解决方案?或者编写一些快速的 php 应用程序来处理这个会更容易吗?

4

2 回答 2

8

就像 Skip 说的那样,但不要以 root 身份运行 CGI。相反,让 CGI 调用 sudo。您可以授予 Web 服务器/etc/init.d/tomcat restart仅在 sudoers 文件中运行的权限。

我实际上已经在工作中做到了这一点。CGI 的相关部分如下所示:

#!/usr/bin/perl
use CGI;
use IPC::Run3;
my $CGI = new CGI;

my $output;
if (defined $CGI->param('go') && 'restart' eq $CGI->param('go')) {
    run3 [ qw(sudo /etc/init.d/tomcat5.5 restart) ], \undef, \$output, \$output;
}

print <<EOF
Content-type: text/html

Blah, blah, blah, HTML form, displays $output at some point.
EOF

这是来自 /etc/sudoers 的示例行(当然,使用 visudo 进行编辑):

ALL     ALL=(root) NOPASSWD: /etc/init.d/tomcat5.5 restart

这允许每个人重新启动tomcat。如果您愿意,您可以将其限制为 Apache。

于 2008-12-09T03:15:22.150 回答
0

我会使用 CGI 脚本。将其设置为以 root 身份运行并调用“/etc/init.d/tomcat restart”(或者在您的机器上重新启动 tomcat)。

于 2008-12-08T15:40:31.477 回答