Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Языки программирования (http://mangos.ytdb.ru/forumdisplay.php?f=34)
-   -   Скрипт php для отправки команды в консоль mangosd.exe (http://mangos.ytdb.ru/showthread.php?t=3188)

coftsonyk 11.12.2010 22:35

Скрипт php для отправки команды в консоль mangosd.exe
 
delete

Hantet 12.12.2010 00:01

Пример реализации коннекта к консоли на SOAP есть в оффициальном репозитории gitgub.

https://github.com/mangos/mangos/blo...ap/example.php

coftsonyk 12.12.2010 00:34

delete

Feel the Power 12.12.2010 01:24

Цитата:

Сообщение от coftsonyk (Сообщение 17089)
если не затруднит можно ссылочку?

http://github.com/mangos/mangos

coftsonyk 12.12.2010 17:00

delete

Кот ДаWINчи 12.12.2010 17:50

конфиг хорошо продокументирован. Переводи, вникай, настраивай.

coftsonyk 12.12.2010 21:02

delete

TIMzs 12.12.2010 21:22


Hantet 12.12.2010 22:08


coftsonyk, Class 'SoapClient' not found = Класс 'SoapClient' не найден.


Гугл умнее тебя: http://forum.dklab.ru/viewtopic.php?t=9707

ghostpast 13.12.2010 06:52

Цитата:

Сообщение от coftsonyk (Сообщение 17111)
У меня не денвер.

extension=php_soap.dll или extension=php_soap.so

tempura 13.12.2010 10:47

Цитата:

Сообщение от coftsonyk (Сообщение 17111)
У меня не денвер.

и не мозги?

rootor 16.03.2011 19:54

Вложений: 1
Кто разобрался - поделитесь пожалуйста, более развернутой инструкцией по эксплуатации SOAP.
В PHP все настроено:
В конфиге сервера - тоже разрешено все и 127.0.0.1 IP
Порт 7878 открыт в iptables

Но выдает ошибку - не может подключиться
Command failed! Reason:
Could not connect to host

Подскажите к чему задается пароль и что такое MaNGOS - это имя процесса или имя screen в котором этот процесс запущен?
Пароль и логин - это произвольные для повышения безопасности или от чего-то еще.

$username = 'ADMINISTRATOR';
$password = 'ADMINISTRATOR';
$host = "localhost";
$soapport = 7878;
$command = "server info";

$client = new SoapClient(NULL,
array(
"location" => "http://$host:$soapport/",
"uri" => "urn:MaNGOS",
"style" => SOAP_RPC,
'login' => $username,
'password' => $password
));

Прошу прощения за элементарные вопросы - но как раз такую информацию сложнее всего нагуглить.

zhenya 17.03.2011 05:10

Посмотри в netstat -nl на каком ипе слушается порт 7878.

rootor 18.03.2011 05:12

Цитата:

Сообщение от zhenya (Сообщение 20055)
Посмотри в netstat -nl на каком ипе слушается порт 7878.

tcp 0 0 127.0.0.1:7878 0.0.0.0:* LISTEN

Сейчас выдается такая ошибка:
Command failed! Reason:
Method 'ns1:executeCommand' not implemented: method name or namespace not recognized

KiriX 19.03.2011 08:45

Цитата:

Сообщение от rootor (Сообщение 20079)
tcp 0 0 127.0.0.1:7878 0.0.0.0:* LISTEN

Сейчас выдается такая ошибка:
Command failed! Reason:
Method 'ns1:executeCommand' not implemented: method name or namespace not recognized

разбирайся...

rootor 20.03.2011 01:20

В примере логин и пароль:
$username = 'ADMINISTRATOR';
$password = 'ADMINISTRATOR';
От чего они? Имя пользователя и пароль при подключении к Linux?
И как пробиться к процессу, запущенному в screen?
Допустим есть несколько screen с именами mangos, mangos1 - как послать команду в консоль процесса запущенного в том или ином screen?

И если есть возможность - поделитесь ссылкой на описание работы SOAP а то не могу никак найти и продвинуться дальше.

tempura 20.03.2011 07:41

Цитата:

Сообщение от rootor (Сообщение 20126)
В примере логин и пароль:
$username = 'ADMINISTRATOR';
$password = 'ADMINISTRATOR';
От чего они? Имя пользователя и пароль при подключении к Linux?

Эмм... судя по коду - это логин-пароль админа мангос... Или я что-то совсем путаю? По крайней мере с этими данными отправляется команда в консоль мангос.

KiriX 21.03.2011 10:43

Цитата:

Сообщение от rootor (Сообщение 20126)
Допустим есть несколько screen с именами mangos, mangos1 - как послать команду в консоль процесса запущенного в том или ином screen?

Разные порты SOAP в конфигах сервера? =)

rootor 23.03.2011 00:16

Цитата:

Сообщение от KiriX (Сообщение 20182)
Разные порты SOAP в конфигах сервера? =)

Хороший совет - спасибо. Но у меня видимо что-то не установлено из ПО - так как так и получаю до сих ошибку:
PHP код:

Command failedReason:
Method 'ns1:executeCommand' not implementedmethod name or namespace not recognized 

Суть ошибки понятна, но как исправить, что на это влияет - сколько ни гуглил, ответа найти не могу. Может кто сталкивался с подобным?
Обработать пытаюсь пример приведенный в этой теме чуть выше (он же в репо мангоса).

KiriX 23.03.2011 12:11

Это не ПО. Настройки php ковыряй. Почему-то он не знает метод executeCommand
Но для меня более странно (может это и нормально), почему он метод пишет как ns1:executeCommand
Что такое ns1: лично я не ведаю вообще...

rootor 23.03.2011 20:22

Вероятно у меня не хватает чего -то в PHP.
Версия PhP 5.3.6-2
в php.ini:
PHP код:

***91;soap***93;
Enables or disables WSDL caching feature.
http://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=1
extension=php_soap.so
Sets the directory name where SOAP extension will put cache files.
http://php.net/soap.wsdl-cache-dir
soap.wsdl_cache_dir="/tmp"

; (time to liveSets the number of second while cached file will be used
instead of original one.
http://php.net/soap.wsdl-cache-ttl
soap.wsdl_cache_ttl=86400

Sets the size of the cache limit. (Maxnumber of WSDL files to cache)
soap.wsdl_cache_limit 

Более ничего про SOAP нет.

tempura 23.03.2011 20:34

а само расширение php_soap в php.ini раскомментировано?
конечно глупо звучит, но все же...

rsa 23.03.2011 20:41

Цитата:

Сообщение от KiriX (Сообщение 20244)
Это не ПО. Настройки php ковыряй. Почему-то он не знает метод executeCommand
Но для меня более странно (может это и нормально), почему он метод пишет как ns1:executeCommand
Что такое ns1: лично я не ведаю вообще...

у него включена поддержка пространств имен в php. что это такое я сам только догадываюсь :)

Йоха 23.03.2011 22:04

Цитата:

Сообщение от tempura (Сообщение 20259)
а само расширение php_soap в php.ini раскомментировано?
конечно глупо звучит, но все же...

Цитата:

Сообщение от rootor
; extension=php_soap.so

это не оно ?

tempura 23.03.2011 22:34

Цитата:

Сообщение от Йоха (Сообщение 20262)
это не оно ?

Оно-оно, но там в принципе и выше быть может раскомментировано.

Sid 01.06.2011 20:13

Разбираю SOAP на Qt, и пока не разобрался в правильности составления запроса для мангоса. Хотел вывести запрос в XML на пхп, но не получилось, __getLastRequest() приватная, а в пхп я не очень силен :) Кто может выложить пример запроса в XML формате? :)

wroud 13.11.2011 15:01

добавлю к этой темке комент..
Код:

Command failed! Reason:
HTTP Error: 401 Unauthorized

Типо не получилось авторизироваться? но логин и пас ввёл от ака на котором стоит левл 4

Кот ДаWINчи 13.11.2011 16:10

Цитата:

Сообщение от wroud (Сообщение 25691)
Типо не получилось авторизироваться? но логин и пас ввёл от ака на котором стоит левл 4

а в конфиге мангоса соап включен и настроен?

wroud 13.11.2011 18:05

если бы он не был включен то , ожидание 30 секунд и дальше ошибка тайм аут.
Настроен?
Код:

SOAP.Enabled = 1
SOAP.IP = 127.0.0.1
SOAP.Port = 7878


Кот ДаWINчи 13.11.2011 19:04

1. Убедись, что у сервера soap работает. Для этого подключись телнетом к 127.0.0.1 7878

2. Если подключается, то проверь свой пхп на наличие soap-расширения. (Если стоит денвер, там его точно нет)

wroud 13.11.2011 19:48

да дело в том что всё есть а пишет что неверный логинили пас

Кот ДаWINчи 13.11.2011 20:18

Цитата:

Сообщение от wroud (Сообщение 25695)
да дело в том что всё есть а пишет что неверный логинили пас

http://www.ru-mangos.ru/showpost.php...1&postcount=19

wroud 14.11.2011 12:35

Цитата:

Сообщение от Кот ДаWINчи (Сообщение 25696)

логин и пас ввёл верно пробовал пароль и как хеш и как обычный толку нет

rsa 14.11.2011 12:56

про то что все должно быть uppercase точно не забыто? RTFM вообще-то...

wroud 14.11.2011 13:36

Цитата:

Сообщение от rsa (Сообщение 25698)
про то что все должно быть uppercase точно не забыто? RTFM вообще-то...

А?:laugh2: я чесно не понял) либо с мангосом либо с скриптом что-то не то

Добавлено через 4 минуты
Цитата:

Сообщение от rootor (Сообщение 20079)
tcp 0 0 127.0.0.1:7878 0.0.0.0:* LISTEN

Сейчас выдается такая ошибка:
Command failed! Reason:
Method 'ns1:executeCommand' not implemented: method name or namespace not recognized

накопал кое что
Код:

"uri" => "urn:MaNGOS",
если отлично от этого то ошибка индентична твоей

wroud 14.11.2011 13:38

Код:

"style" => SOAP_RPC,
требую пояснения

rsa 14.11.2011 13:40

Бня. перечитай сообщение #32. ну нету у тебя SOAP, чего д...чить-то всухую?

wroud 14.11.2011 14:49

ОКАЙ.
Если бы у меня соап на php не было он бы написал что клас SoapClient не найден, в прочем как и было но я нашел модуль и установил его на php и суть ошибки в том что сервер отвечает ошибка авторизации а не то что вы говорите.

tempura 15.11.2011 14:21

Цитата:

Сообщение от wroud (Сообщение 25703)
ОКАЙ.
Если бы у меня соап на php не было он бы написал что клас SoapClient не найден, в прочем как и было но я нашел модуль и установил его на php и суть ошибки в том что сервер отвечает ошибка авторизации а не то что вы говорите.

Я вообще-то тут не академик, но у меня смутное подозрение, что при ошибке авторизации в Мангос, написало бы что-то типа "ошибка авторизации в мангос". А тут выдается ошибка НТТР авторизации, то есть авторизации на веб-сервер. Или оно там так и должно быть? Я не разбираюсь...

wroud 16.11.2011 12:38

мангос со своей стороны открывает сервер http://adres:port/ на котором будет прослушивать запросы задача скрипта просто отослать на этот адрес данные в которые входит несколько этапов
1.Авторизация
2.Команда
3.Закрытие соединения(оптимально)


Текущее время: 02:35. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS