5

エンド ユーザーが同じボックスの apache から提供される Web ページから tomcat を再起動できるようにする簡単な方法が必要です。

QC 部門が新しいバージョンの webapp を apache に簡単にデプロイできるようにしようとしています。私たちはsambaを使用していますが、展開の前後にTomcatサーバーを簡単に停止/起動できる方法が必要です。

これは、内部 qc ボックス専用です。これに対する既存の解​​決策はありますか?それとも、これを処理するためにいくつかの簡単な php アプリケーションを作成する方が簡単でしょうか?

4

2 に答える 2

8

Skipが言ったように、CGIをルートとして実行しないでください。代わりに、CGI に sudo を呼び出してもらいます。/etc/init.d/tomcat restartsudoers ファイルでのみ実行する許可を Web サーバーに与えることができます。

私は実際にこれを仕事で行いました。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 スクリプトを使用します。ルートとして実行するように設定し、「/etc/init.d/tomcat restart」を呼び出します (または、ボックスで tomcat を再起動します)。

于 2008-12-08T15:40:31.477 に答える