Как я могу писать в файлы через agi php?

Я создаю agi в php для asterisk, очень просто, я хочу сохранить текст в файле, однако, когда я выполняю набор плана, agi не сохраняет файл

моя версия звездочки — 13.8.3, это запуск поверх Ubuntu 18, моя версия php — 7.2

#!/usr/bin/php -q
<php
    $agivars = array();
    while(!feof(STDIN)) {
        $agivar = trim(fgets(STDIN));
        if($agivar === '') {
            break;
        }
        $agivar = explode(':', $agivar);
        $agivars[$agivar[0]] = $agivar[1];
    }
    echo "Verbose beforeSave\n";
    file_put_contents("/a.txt", "helloWorld");
    echo "Verbose afterSave\n";
?>

я ожидаю файл с именем a.txt в / dir


person Anderson Torres    schedule 16.08.2019    source источник
comment
Любое сообщение об ошибке? Попробуйте file_put_contents(getcwd() ./a.txt, helloWorld);   -  person Brett Gregson    schedule 16.08.2019
comment
Я ничего не знаю об Asterisk/agi, но должно ли <php быть <?php?   -  person waterloomatt    schedule 16.08.2019
comment
waterloomat, спасибо, я неправильно написал код, у него есть ‹?php, но он не работает   -  person Anderson Torres    schedule 16.08.2019
comment
Brett Gregson, Ошибок не показывает, попробую так, как вы рекомендуете, большое спасибо   -  person Anderson Torres    schedule 16.08.2019


Ответы (1)


Обратите внимание, что в большинстве систем Asterisk работает под пользователем Asterisk и не может записывать в файлы, принадлежащие root.

Поэтому проверьте свои разрешения.

Также не нужно писать свой собственный код AGI, используйте проект phpagi.

person arheops    schedule 18.08.2019