Использование COM на php + Apache

  • Автор темы Grannas
  • Дата начала
DAE

DAE

Moderator
Регистрация
11.07.2007
Сообщения
27 197
Реакции
71
Баллы
48
Если оставить только строчку
Код:
[COLOR=#0000BB]$session [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]COM[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]"Lotus.NotesSession" [/COLOR][COLOR=#007700]); [/COLOR]
500я по прежнему?
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
Если прям совсем лень разбираться - могу предложить костыльное решение проблемы:
делаешь php скрипт который делает
Код:
echo exec("php твойволшебныйскрипт.php");
Но вообще это все крайне странно)

PS с запуском php под виндой вообще, и с com объектами в частности никогда не работал, пишу на основе общей логики

Этот костыль это первое, что мне пришло на ум сделать :) Не хочет он его запускать. Я даже писал скрипт на VB, который через runas запускал скрипт через командную строку, который в свою очередь запускался через exec (cscript путь_к_скрипту.vbs);, но cscript крашился с ошибкой not enough storage.
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
Если оставить только строчку
Код:
[COLOR=#0000BB]$session [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]COM[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#DD0000]"Lotus.NotesSession" [/COLOR][COLOR=#007700]); [/COLOR]
500я по прежнему?

да
 
Ф

Федор

Guest
Читал и то и другое. Оба случая не мои. Почти уверен, что в тексте ошибки в error.log написано, что он не может подцепиться к сессии, так как указывает именно на строчку
давно этим не занимался (лет 10 прошло), поэтому могу ошибаться, но мне кажется, надо покрутить dcomcnfg (если она еще есть в системе) на предмет разрешений доступа к COM объекту из другой сессии.
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
давно этим не занимался (лет 10 прошло), поэтому могу ошибаться, но мне кажется, надо покрутить dcomcnfg (если она еще есть в системе) на предмет разрешений доступа к COM объекту из другой сессии.

На смену dcomcnfg пришел его полный аналог, только с немного другим интерфейсом. Там я тоже смотрел. Если бы там не было доступа - скрипт не запускался бы из командной строки.
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
Делал все это на работе, но сейчас воссоздал точно такие же условия и точно такой же скрипт на своем домашнем ноуте с виндой 7. Та же самая история... php.exe прекрасно работает, а через http://localhost/script.php выполняться не хочет.
 
Oleg249

Oleg249

Активный участник
Регистрация
20.05.2008
Сообщения
4 785
Реакции
46
Баллы
48
Для диагностики попробовать запустить скрипт с командной строки не из пользовательской сессии, а из Windows Scheduler. Может, в Event Viewer что нибудь видно станет... Абстрактные мысли... О php имею смутное представление.
 
A

alex

Участник
Регистрация
21.05.2004
Сообщения
2 505
Реакции
3
Баллы
38
Я в виндовых технологиях не силен, но: не проще ли отправить письмо кошерным способом - mail() через SMTP сервер?

И это - 500 ошибка отлаживается простым способом - комментаришь весь скрипт, потом по одной раскомментариваешь строчки сверху. Так по крайней мере можно найти какая строчка приводит к смерти.
 
Oleg249

Oleg249

Активный участник
Регистрация
20.05.2008
Сообщения
4 785
Реакции
46
Баллы
48
Я в виндовых технологиях не силен, но: не проще ли отправить письмо кошерным способом - mail() через SMTP сервер?

Он же вроде не отправляет, а получает? А Notes - наверное, у них корпоративный стандарт, не факт, что SMTP и т.п. будут работать.


И это - 500 ошибка отлаживается простым способом - комментаришь весь скрипт, потом по одной раскомментариваешь строчки сверху. Так по крайней мере можно найти какая строчка приводит к смерти.

Тоже вариант. Отладчик для php под апачем бывает?



Еще можно попробовать апач не как сервис, а из той же виндовой сессии запустить. И сравнить результат.
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
Он же вроде не отправляет, а получает? А Notes - наверное, у них корпоративный стандарт, не факт, что SMTP и т.п. будут работать.

Еще можно попробовать апач не как сервис, а из той же виндовой сессии запустить. И сравнить результат.

phpmail, как и smtp не катит, потому что сервер в локалке стоит и доступа в интернет у него нет. Есть лотусовые сервера, которые также стоят в локалке.

Про апачевого демона из виндовой сессии - надо попробовать. Я себе все тоже самое восстановил на домашнем ноутбуке. Завтра попробую протестить все.

Какая строчка вызывает ошибку и так известно $session = new COM( "Lotus.NotesSession" );
 
OP
Grannas

Grannas

Участник
Регистрация
27.02.2011
Сообщения
1 830
Реакции
10
Баллы
38
Для диагностики попробовать запустить скрипт с командной строки не из пользовательской сессии, а из Windows Scheduler. Может, в Event Viewer что нибудь видно станет... Абстрактные мысли... О php имею смутное представление.

шедуллер запустит апач от system
 
stp

stp

Новичок
Регистрация
17.05.2009
Сообщения
9 485
Реакции
30
Баллы
0
Долбанные пхпшники, я вас на Java крутил-вертел!
 
Oleg249

Oleg249

Активный участник
Регистрация
20.05.2008
Сообщения
4 785
Реакции
46
Баллы
48
Верх Низ