php - 使用 PHP 以编程方式启动 Tomcat 服务器

标签 php tomcat exec

我遇到了从 php 程序启动 Apache Tomcat 服务器的情况。 我试过如下所示:

     $las = system('cmd C:\apache-tomcat-8.0.21\bin\startup.bat',$ret);
     echo $las. $ret;
     //output
     Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\xampp\htdocs\web\operations>C:\xampp\htdocs\web\operations>0

但它不起作用。

然后我就这样试了

  echo exec('C:\apache-tomcat-8.0.21\bin\startup.bat');

输出:打开 cmd 并立即关闭,出现以下错误。

enter image description here

我怎样才能让它发挥作用。

最佳答案

虽然我完全质疑这是否适合您试图解决的任何潜在问题(阅读:让我们知道潜在问题,我们可能会想出一个合适的解决方案),但这里有一些工具可以提供帮助调查正在发生的事情:

当您使用 startup.bat 启动 tomcat 时, 进程(startup.bat 批处理文件)将几乎立即终止并在单独的进程中启动 tomcat(通常打开单独的命令行)。如果启动失败,您可能会看到命令行短暂弹出,显示一条错误消息,然后在您有机会看到错误消息之前消失。

您可以通过执行 catalina.bat run 在前台启动 tomcat(如果仅用于调试目的)——这通常会使命令行窗口保持打开状态,并让您有机会看到任何错误消息。

现在,通常您希望完全在后台运行 tomcat - 这在 Windows 上是一项服务。 tomcat 的运行方式是:可用并等待传入​​ (http) 请求。您通常通过在系统启动时启动它来执行此操作 - 查看如何将 tomcat 作为服务运行。

编辑:在您发布错误消息后:您看到路径和错误消息了吗?找出这条路径是在哪里构建的。候选人是(按顺序):

  • 您自己更改的任何文件
  • Tomcat 的 bin/setenv.bat(如果存在)

关于php - 使用 PHP 以编程方式启动 Tomcat 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960198/

相关文章:

browser - 从 NodeJS 中执行 osascript(AppleScript)

java - getRuntime().exec(String[]) 函数的行为与 getRuntime().exec(String) (Android) 不同

php - 使用 PHP 验证损坏的 PDF

java - 我设置了 CATALINA_HOME 的 PATH 变量,但是当我尝试在 java 中创建新文件时出错

php - 如何为 Twig 定义全局变量

java - Tomcat 上下文资源不会加载 h2 驱动程序

mysql - 间歇性无效 MySQLSyntaxErrorException : Unknown column 'xxx.yyy in ' field list' - Tomcat

javascript - 正则表达式提取括号中的单词不起作用

php - 如何更改magento中的管理URL?

PHP:为什么 exec() 不返回输出?