, не зная фактической ошибки node-gyp, убедитесь, что вы установили зависимости node-gyp для своей платформы.
Как сказанный Пропуск, но не выполняют CGI как корень. Вместо этого имейте вызов CGI sudo. Можно дать разрешение веб-сервера работать /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
Это позволяет всем перезапускать кота. Вы могли ограничить его Apache, только если Вы хотели бы.
Я использовал бы сценарий CGI. Настройте его, чтобы работать как корень и назвать перезапуск '/etc/init.d/tomcat' (или однако Вы перезапускаете кота на своем поле).