Вызов Mono из PHP - PullRequest
       3

Вызов Mono из PHP

4 голосов
/ 25 августа 2011

это немного сложно. :-) У меня есть веб-сайт, написанный на PHP, который должен вызывать внешнюю программу, написанную на .NET, работающую под Mono. Вызывает программу с:

/path/mono /path/executable arguments...

как обычно (я также попытался поместить это в скрипт bash и вызвать сам скрипт из PHP).

Насколько я могу судить, все настроено так, как требуется. Сам Mono работает нормально, исполняемый (или скрипт) с исполняемыми правами, владельцы в порядке. Правильная настройка также может быть подтверждена тем фактом, что если я запускаю указанную выше командную строку (или вызываю упомянутый скрипт) из командной строки на сервере (Debian Lenny), все работает отлично, мой исполняемый файл выполняется без ошибок.

Но, если PHP вызывает то же самое (используя exec (), system () или любой другой вариант), я немедленно получаю код выхода 6 из Mono, и мой исполняемый файл вообще не запускается (для его проверки, Я использую исполняемый файл "Hello World", который ничего не делает, но выдает одну строку вывода и возвращает 0). Скомпилировано без каких-либо дополнительных зависимостей, просто настоящее «Hello Word». Абсолютно уверен, что эта программа не возвращает код выхода 6, он должен исходить из Mono, но я нигде не смог найти его документированным.

Я могу вызывать все что угодно из PHP, так что это небезопасный режим или подобное ограничение, которое не позволит мне запускать внешние программы из PHP.

Спасибо за любую идею ...

1 Ответ

2 голосов
/ 29 сентября 2011

Попробуйте выполнить моно из командной строки, но с пользователем, который запускает веб-сервер (www-data или apache).

ej.

#su apache
$/path/to/mono /path/to/program.exe

Распространенные проблемы, с которыми я сталкиваюсьexec - это другие переменные окружения (посмотрите, использует ли bash или sh то, что использует apache), разрешения для пользователя / группы apache и т. д.

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