1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Очередной ребус - помогите решить (passthru)

Тема в разделе 'PHP', создана пользователем wsok, 14 фев 2015.

  1. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Памятуя старую темку от Ботчала - решил немного поиграть с пхп функцией passthru. В качестве команды использую:

    Код:
    /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction
    Когда выполнил в консоли сервера, то как и ожидалось получил список, чтож, хорошо, значит все норм, ошибок нет, решил её выполнить в пхп:

    Код:
    echo passthru("/pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction");
    И обломался, списка не увидел.. Вообще ничего не увидел, кроме белой страницы в браузере. Включил вывод ошибок пхп, все равно белая страница... Выставил на файлы, что вызываются командой и сам пхп файл права 777 и на папки тоже... Все равно белая страница...

    Подумал, может команда тупит? Решил проверить...

    Код:
    echo passthru("ls");
    браузер сразу вывел содержимое папки, значит все же ошибок нет? Тогда где же собака порылась? Помогите решить ребус. =)
  2. SomePerson Программист Old school Пользователи

    Сообщения:
    227
    Лайки:
    123
    Пол:
    Мужской
    Репутация:
    3
    Настрой пути в gamedbd -> gamesys.conf
  3. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    эх, неужели, если пути были бы неверные, в консоли бы вывело список? Более того скажу, проверил вызов скрипта пхп из консоли

    Код:
    php /var/www/hn.wsok.net/html/l.php
    
    Список вывело там, вывод? с путями все нормально, а раз так, то почему выполнение в браузере так тупит?
  4. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Дампнуть её не пробовал, вместо echo?
  5. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    да, получаю NULL
  6. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Хз, проверь настройки врапера пхп.
  7. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    что то сомневаюсь, ведь выводит все в браузер, кроме выполнения этого:

    Код:
    /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction
    Эх, смотрю этот ребус никто не поможет решить...
  8. Stranger B L A C K    L I S T Пользователи

    Сообщения:
    71
    Лайки:
    66
    Репутация:
    0
    Просто уже никто не пользуется варварскими методами, наверное.
  9. SomePerson Программист Old school Пользователи

    Сообщения:
    227
    Лайки:
    123
    Пол:
    Мужской
    Репутация:
    3
    Если пути были бы верные, то в консоль вывело бы (в данном случае список кланов), если ты перейдешь в папку с gamedbd то будет все работать
    Код:
    cd /pw/servers/gamedbd/
    ./gamedbd gamesys.conf listfaction
    
    В таком случае ты получишь все записи
    А если ты хочешь настроить для скрипта, и просто настроить вывод - настрой файл gamesys.conf, пропиши полный путь до базы (в самом конф. файле)
    Код:
    [storage]
    homedir                    = /pw/db/gamedbd/dbhome
    datadir                    = /pw/db/gamedbd/dbdata
    logdir                    = /pw/db/gamedbd/dblogs
    backupdir                = /pw/db/gamedbd/dbbackup
    ...
    
    [storagewdb]
    homedir                    = /pw/db/gamedbd/dbhomewdb
    datadir                    = /pw/db/gamedbd/dbdata
    logdir                    = /pw/db/gamedbd/dblogs
    backupdir                = /pw/db/gamedbd/dbbackup
    
    ти чта эта нексхен от батча
  10. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    да ну, ты считаешь, что я вчера родился и сразу в пв пошел? Ну на всякий случай я проверил (хоть и знал, что пути там верные)

    http://joxi.ru/L21LJlOcR1R1mX

    так что ребус все ещё не решен)
    И меня не интересует кто использует этот способ и кто нет, мне нужен сам факт, почему функция тупит? Где косяк?
  11. SomePerson Программист Old school Пользователи

    Сообщения:
    227
    Лайки:
    123
    Пол:
    Мужской
    Репутация:
    3
    Я не знаю что за магию ты практикуешь, но у меня все отлично работает.
    Код:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <?php
    ob_start();
    passthru("/.../gamedbd/gamedbd /.../gamedbd/gamesys.conf listrolebrief");
    $a1 = ob_get_clean();
    echo "<pre>".$a1."</pre>";
    ?>
    
    Последнее редактирование: 14 фев 2015
  12. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Вот мне и самому интересно, что же это за магия такая на моем сервере, которая мешает данной функции делать то, что раньше кстати работало...
    --- добавлено: 14 фев 2015 в 19:20 ---
    но в чудеса и мистику я не верю, поэтому должно быть логическое объяснение, почему в консоли та же команда выводит данные из игровой базы, а когда выполняю скрипт в браузере с той же командой, данные не получаю... забавно да?
    --- добавлено: 14 фев 2015 в 19:48 ---
    проверил ещё на 3 виртуалках, и о чудо, на одной из них скрипт вывел в браузер данные... на остальных машинах видимо и впрямь проклятие лежит ))
    --- добавлено: 14 фев 2015 в 19:49 ---
    в общем ребус не решен, пока непонятно что мешает ему?
    Последнее редактирование модератором: 22 фев 2015
  13. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    попробовал получить код ошибки:

    Код:
    passthru("/pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction",$error);
    выдал код ошибки 134, погуглил, гугл вообще ничего не знает о данном коде ошибки... (:|
    --- добавлено: 14 фев 2015 в 20:29 ---
    если спецом делаю неверные пути в команде, то получаю код 127, так что это доказывает, что пути все же (до намеренного изменения) указаны верно
    Последнее редактирование модератором: 22 фев 2015
  14. syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    А ты после того как начал гонять эту команду через пхп проверял потом в консоли?
    После 3-5 выводов база частенько "запирается" и перестает выдавать ответ на подобные запросы.
    Ну или попробуй вариант через екзек
    exec("cd /home/gamedbd && ./gamedbd gamesys.conf listfaction", $arr);
  15. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    А если так?
    Код:
    echo passthru("/pwserver/gamedbd/ /pwserver/gamedbd/gamesys.conf listfaction");
  16. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Если бы вы читали все мои посты, то наверняка бы увидели бы, что я уже писал, что в консоли проверял и все работает, только в браузере не пашет и выдает ошибку 134.
    --- добавлено: 15 фев 2015 в 07:14 ---
    запрос у тебя немного неверный, сам то проверял? Но суть не в этом, а в другом, перечитай все мои посты и увидишь, что я уже и подобный запрос юзал
    Код:
    /pwserver/gamedbd/gamedbd /pwserver/gamedbd/gamesys.conf listfaction
    как всегда, в консоли прекрасно пашет, из скрипта в браузере ошибка 134... хз что за ошибка...
    Последнее редактирование модератором: 23 фев 2015
  17. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    Код:
    chmod 777 -R /home/gamedbd/
    Последнее редактирование модератором: 23 фев 2015
  18. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    запрос у тебя немного неверный, сам то проверял? Но суть не в этом, а в другом, перечитай все мои посты и увидишь, что я уже и подобный запрос юзал
    смеёшся? )) вся папка с её содержимым давно уже имеет 777 )
    Последнее редактирование модератором: 23 фев 2015
  19. SkyDev Программист Old school Пользователи Open Source Contributor

    Сообщения:
    197
    Лайки:
    234
    Пол:
    Мужской
    Репутация:
    -1
    Страна:
    Ukraine Ukraine
    от пыха далек, но кажется дело в этом
    http://php.ru/manual/ini.sect.safe-mode.html#ini.safe-mode-exec-dir
    Из документации
    [​IMG]
    Последнее редактирование: 15 фев 2015
  20. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Это как раз самый дельный совет, т.к. базы, которые создаются в геймдб по умолчанию имеют права другие, т.к. ты сначала запускал его от пользователя root. Данная ошибка может возникнуть когда геймдб запущенный от веб пользователя не может получить доступ к базам данных. Поэтому стоит проверить права именно папки и файлов с игровой базой или же сменить владельца папки геймдб на веб юзера.
    gouranga нравится это.
Черновик сохранён Черновик удалён
Similar Threads
  1. Constor
    Ответов:
    3
    Просмотров:
    1.129
  2. GreyDev
    Ответов:
    5
    Просмотров:
    1.827
  3. НеВаЖнО
    Ответов:
    1
    Просмотров:
    1.470
  4. НеВаЖнО
    Ответов:
    10
    Просмотров:
    3.357
  5. Raydman
    Ответов:
    2
    Просмотров:
    1.344
Загрузка...

Поделиться этой страницей