Невозможно запустить функцию оболочки, используя PHP - PullRequest
1 голос
/ 31 июля 2009

Я столкнулся с некоторыми проблемами с функцией оболочки в php. Я хочу выполнить Java-программу на сервере, запустив функцию php на веб-странице php.

Java-программа записывает некоторые символы в локальный файл на сервере.

test.php

<?php

   $WshShell = new COM("WScript.Shell");
   $cmd = '  "C:\\Program Files\\Java\\jdk1.6.0_14\\bin\\java" Importer 1 2 updated.txt 7';

   $WshShell->exec($cmd);
   echo "okay";
?>

Когда test.php выполняется из командной строки на сервере,

c:\php test.php

запускается Java-программа.

Однако, если я выполнил его через веб-браузер, программа на Java не вызывается.

http://127.0.0.1/test.php

Это потому, что пользователю Apache не разрешено использовать функции командной строки в Windows?

Конфигурация системы:

Microsoft Windows XP, профессиональная версия X64, версия 2003, пакет обновления 2 Версия PHP: 5.2.6.6 Apache 2.2 IIS 6

Ответы [ 4 ]

2 голосов
/ 31 июля 2009

Почему вы не используете обычную функцию PHP 'exec'?

1 голос
/ 02 августа 2009

Я нашел решение здесь

Вызов MySQL exe с использованием PHP exec не работает

это не проблема ОС, а проблема "кавычек".

0 голосов
/ 31 июля 2009

Ваша проблема может быть связана с тем, что PHP работает с Apache в "safe_mode" ... Вы можете проверить это в файле php.ini.

0 голосов
/ 31 июля 2009

Какую ошибку вы получили?

Не совсем зная php, у меня, однако, есть вопрос: Вы не полностью определяете файл, который должна обновлять Java-программа, вы уверены, что он не записан, но находится в некотором каталоге, где установлен ваш php-сервер,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...