Выполнение скрипта ожидаемого от php. Не могу получить правильные настройки STTY - PullRequest
1 голос
/ 12 ноября 2011

У меня есть PHP-скрипт, который выполняет ожидаемый скрипт. Ожидайте, что scipt подключится удаленно через telnet к другому устройству, выполнит там пару команд и вернет результаты. Сценарий Php - это просто способ вывода результатов, возвращаемых удаленным устройством, на веб-страницу.

Это строка, с которой у меня проблемы:

stty rows 1000

Когда я выполняю свой скрипт из консоли, все работает правильно: удаленное устройство возвращает 1000 (o что бы я ни указал в stty строках) строк вывода. Когда я выполняю свой скрипт из веб-браузера, я получаю 15 строк вывода независимо от того, что я указываю в stty строках. Кто-нибудь знает, что я делаю не так?

На всякий случай вот я использую scipts:

script.php :

<?php echo shell_exec("/path/to/expect_scipt.exp"); ?>

expect_scipt.exp

#!/usr/bin/expect

stty rows 1000
spawn telnet 10.0.0.1
expect "login:"
send "admin\n"
expect "assword:"
send "admin\n"
expect ">"
send "en\n"
expect "assword:"
send "admin\n"
expect "#"
send "show cable modem\n"
expect "#"
exit

Вот что я делаю, чтобы проверить их:

Я запускаю это в консоли:

#su apache
$php script.php
...1000 lines of output...

Я открываю свой веб-браузер и перехожу к script.php

...15 lines of output...

Заранее спасибо.

1 Ответ

1 голос
/ 28 марта 2012

У меня была похожая проблема при попытке выполнить команду stty с PHP.

Проблема в том, что у пользователя apache (www-data) нет прав на выполнение stty для этих специальных файлов / dev / ttyX.

Чтобы решить эту проблему, отредактируйте / etc / group и добавьте пользовательские www-данные в группу dialout, которая является группой по умолчанию для этих файлов.

Надеюсь, это поможет.* Себастьян

...