У меня есть ситуация, чтобы запустить сервер Apache Tomcat из программы PHP.
Я пытался, как показано ниже:
$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 и немедленное его закрытие со следующей ошибкой.
Как я могу заставить это работать.
Хотя я полностью сомневаюсь, что это подходящее решение для любой основной проблемы, которую вы пытаетесь решить (читай: дайте нам знать об основной проблеме, и мы могли бы найти правильное решение), вот несколько инструментов, которые помогут исследовать то, что продолжается:
Когда вы запускаете tomcat с помощью startup.bat, тот Процесс (пакетный файл startup.bat) будет прерван почти сразу и запустит tomcat в отдельном процессе (как правило, при открытии отдельной командной строки). Если запуск не удастся, вы можете увидеть кратковременное всплывающее окно командной строки, отобразить сообщение об ошибке и затем исчезнуть, прежде чем появится возможность увидеть сообщение об ошибке.
Вы можете запустить tomcat на переднем плане (если только для целей отладки), выполнив catalina.bat run
— это обычно сохраняет окно командной строки открытым и дает вам возможность увидеть любое сообщение об ошибке.
Теперь, как правило, вы хотите довольно полно запустить tomcat в фоновом режиме — который в Windows является службой. Способ работы tomcat: быть доступным и ждать входящих (http) запросов. Обычно вы делаете это при запуске системы — посмотрите, как запустить tomcat как сервис.
Изменить: после того, как вы опубликовали сообщение об ошибке: вы видите путь и сообщение об ошибке там? Узнайте, где этот путь построен. Кандидаты (в таком порядке):
Других решений пока нет …