Показано с 1 по 6 из 6

Тема: Разработка платежного модуля (PHP)

  1. #1

    По умолчанию Разработка платежного модуля (PHP)

    Здравствуйте.
    При попытке создать модуль платежки на PHP по документации, биллинг упорно пытается при установке модуля выполнить php скрипт с помощью sh, хотя явно указано #!/usr/bin/php

    Все буквально скопировано как есть с вашей документации, пример QIWI версия PHP.
    PHP в системе стоит и он в /usr/bin/php

    Код:
    Feb 14 00:54:29 [26169:10] proc EXTINFO Run '/bin/sh -c paymethods/pmtestpay.php\ --command\ config\ ' pid 26240
    Feb 14 00:54:29 [26169:10] proc EXTINFO Process 26240 finished with status 126
    Feb 14 00:54:29 [26169:10] payment ERROR Failed to open libexec/pmtestpay.php.so.
    Последний раз редактировалось Neolo; 14.02.2018 в 14:26.

  2. #2
    BILLmanager team
    Регистрация
    17.09.2010
    Сообщений
    8,555

    По умолчанию

    Здравствуйте, через /bin/sh выполняются все бинарники. Проверьте что для вашего файла стоят права на исполнение. Попробуйте вызывать
    /bin/sh -c paymethods/pmtestpay.php\ --command\ config\
    из консоли саостоятельно

  3. #3

    По умолчанию

    Цитата Сообщение от Azcol Посмотреть сообщение
    Здравствуйте, через /bin/sh выполняются все бинарники. Проверьте что для вашего файла стоят права на исполнение. Попробуйте вызывать из консоли саостоятельно
    К сожалению не работает. Вручную вызывал, SH ругается на синтаксис, бинарник php не вызывает, права на исполнение стоят.
    Если ввести php -f на этот файл, то все ок, выводит xml структуру.

  4. #4

    По умолчанию

    Код:
    #!/bin/php
    <?php
    phpinfo();
    ?>
    chmod +x ./test.php
    sh test.php
    test.php: line 2: ?php: No such file or directory
    test.php: line 3: syntax error near unexpected token `;'
    test.php: line 3: `phpinfo();'

    php -f test.php
    PHP Version => 7.1.14
    ........

    ls /usr/bin/php
    /usr/bin/php


    Сума сойти

  5. #5

    По умолчанию

    Работает только через костыль.
    в файле test.php пишу

    #!/bin/bash
    php test2.php


    а потом в файле test2.php пишу код php. Либо встроить код в виде

    #!/bin/bash
    php -r 'phpinfo();'

    в баш скрипт. Что за чертовщина? Чистая CentOS стоит.

  6. #6

    По умолчанию

    Короче тот PHP пример от QIWI в документации абсолютно не рабочий и на последней оси с последним пхп.

    1) Почему-то биллинг пытается выполнить php файл через sh. Зачем? Внутри же описывается интерпретатор.
    UDP: Нужно создать один файл типа pmpay.php с содержанием "php pmpay $@", а потом рядом создать файл pmpay и уже в нем прописать php код начиная с тега <?php и без всяких там #!/bin/php, все это сделать chmod +x, вот тогда начинает работать. Костыль один словом.

    2) А даже если обойти первое, то получаем PHP Fatal error: Cannot declare class Error, because the name is already in use in /usr/local/mgr5/include/php/bill_util.php on line 166
    И это при том что у же стоит require_ONCE 'bill_util.php'; PHP 7
    UDP: https://github.com/emeraldion/creso/...db03651e47a395
    Короче в PHP 7 "Error" класс уже встроен, нужно переименовать.
    Потом начнутся проблемы с simplexml модулем, нужно поставить remi репу и установить php-xml-7.1.14-1.el7.remi.x86_64 ну или поискать yum provides php-xml, тоже еще заноза...
    3) Кульминация... приехали
    Feb 14 17:41:28 [17431:24] proc EXTINFO Run '/bin/sh -c paymethods/pmpay.php\ --command\ config\ ' pid 17613
    Feb 14 17:41:28 [17431:24] payment ERROR Failed to open libexec/pmpay.php.so.
    Последний раз редактировалось Neolo; 15.02.2018 в 08:00.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •