SaNeK
Новичок
Запуск из-под PHP COM-приложения.
Что имеется:
Windows 2003 Server SP2 (связь с ОСью и сервером через RDP)
Apache 2.0.55
PHP 5.1.2 как модуль (safe_mode = off, reg_global=off, set_time_limit = 0)
MapServer на PHP
Surfer 8
+ самописная программа, которая юзает COM-объект серфера и создает географические изображения. Программа консольная, параметры работы принимает прямо из консоли в качестве argv&argc. Прога зовется getmap.exe. Из консоли (cmd) работает.
Проблема:
скрипт:
Скрипт работает, прога запускается. Но тут же вываливается. В журнале системы вот что:
Type: error
Source: Application Error
Event ID: 1000
Category: 100
Message: "Faulting application getmap.exe, version 0.0.0.0, faulting module kernel32.dll, version 5.2.3790.4062, fault address 0x0000bee7."
-------------------------
Резюме. Я понимаю, что эта ошибка может не иметь к PHP никакого отношения. Но главный вопрос: почему работает из-под консоли, но не пашет из-под system()?
Опережая возможные вопросы: передаваемые параметры для проги проверил, правильный путь к программе проверил (да и запускается же она), антивирусы вырублены. Поиск по KB майкрософта ничего не дал.
Куда копать?
P.S. Запостил в надежде, что кто-то уже сталкивался с подобным на другом софте. Хотя, конечно, под подозрением в первую очередь сама COM-прога.
Что имеется:
Windows 2003 Server SP2 (связь с ОСью и сервером через RDP)
Apache 2.0.55
PHP 5.1.2 как модуль (safe_mode = off, reg_global=off, set_time_limit = 0)
MapServer на PHP
Surfer 8
+ самописная программа, которая юзает COM-объект серфера и создает географические изображения. Программа консольная, параметры работы принимает прямо из консоли в качестве argv&argc. Прога зовется getmap.exe. Из консоли (cmd) работает.
Проблема:
скрипт:
PHP:
<?php
$param = array();
$param['param1'] = "value";
$param['param2'] = "value";
$param['param3'] = "value";
$param['param4'] = "value";
echo system("getmap.exe " . join(" ", $param));
?>
Type: error
Source: Application Error
Event ID: 1000
Category: 100
Message: "Faulting application getmap.exe, version 0.0.0.0, faulting module kernel32.dll, version 5.2.3790.4062, fault address 0x0000bee7."
На локальной машине под WinXP все работает прекрасно.0000: 41 70 70 6c 69 63 61 74 Applicat
0008: 69 6f 6e 20 46 61 69 6c ion Fail
0010: 75 72 65 20 20 67 65 74 ure get
0018: 6d 61 70 2e 65 78 65 20 map.exe
0020: 30 2e 30 2e 30 2e 30 20 0.0.0.0
0028: 69 6e 20 6b 65 72 6e 65 in kerne
0030: 6c 33 32 2e 64 6c 6c 20 l32.dll
0038: 35 2e 32 2e 33 37 39 30 5.2.3790
0040: 2e 34 30 36 32 20 61 74 .4062 at
0048: 20 6f 66 66 73 65 74 20 offset
0050: 30 30 30 30 62 65 65 37 0000bee7
-------------------------
Резюме. Я понимаю, что эта ошибка может не иметь к PHP никакого отношения. Но главный вопрос: почему работает из-под консоли, но не пашет из-под system()?
Опережая возможные вопросы: передаваемые параметры для проги проверил, правильный путь к программе проверил (да и запускается же она), антивирусы вырублены. Поиск по KB майкрософта ничего не дал.
Куда копать?
P.S. Запостил в надежде, что кто-то уже сталкивался с подобным на другом софте. Хотя, конечно, под подозрением в первую очередь сама COM-прога.