Рейтинг:
1
Shivaraj patil
Поскольку приведенный выше код работает правильно в localhost.
можем ли мы получить доступ к значениям COM с помощью функций fopen?
$path = (PHP_OS = = 'Linux') ? '/dev/ttyS1': 'COM1';
$fp = fopen($path, 'r+');
$buffer = fgets($fp);
echo " <br & gt;данные, считываемые из буфера: $buffer";
если (!$fp){
Echo " порт недоступен";
выход();
} еще {
echo " порт COM1 успешно открыт";
}
Поскольку я не получаю разрешения на доступ к значениям COM-порта, когда размещаю его на сервере Linux
Jochen Arndt
Я обновил свой ответ ссылкой на то, как использовать fopen() для последовательных портов.
Но вы должны понимать, что последовательные порты обрабатываются по-разному в Windows и Linux.
Если ваш PHP-скрипт не имеет прав на настройку последовательного порта, вы можете сделать это где-нибудь еще (например, в сценарии запуска). Если у вас нет корневого доступа к серверу, обратитесь за помощью к администратору.
Shivaraj patil
можем ли мы проверить корневой доступ или разрешение последовательного COM-порта через PHP-скрипт на сервере веб-хостинга Linux?
Jochen Arndt
Есть ли у вас какая-то оболочка удаленного входа на ваш сервер (например, с помощью SSH). Если да, используйте это и используйте su / sudo, чтобы стать root (требуется пароль).
При входе в систему выполните команду " ls-l /dev/ttyS*" (можно также выполнить как обычный пользователь). Это покажет вам владельца и группу последовательных устройств. В большинстве случаев он покажет владельцу " root "и группе" dialout", где группа имеет доступ на чтение и запись.
Самым простым решением для получения доступа к последовательным портам является добавление пользователя, выполняющего ваш PHP-скрипт, в показанную группу (dialout).
Выполнить как root:
usermod -a -G dialout user_name_excuting_the_script
Если у вас нет доступа к оболочке, вы можете выполнить вышеуказанные команды из вашего PHP-скрипта с помощью функции system (). Но те, которые требуют выполнения root, конечно же, потерпят неудачу.
Если ваш сервер имеет какой-то веб-интерфейс для администрирования, он может содержать опции для управления пользователями. Затем вы можете попытаться добавить пользователя, выполняющего сценарий, в группу удаленного доступа там.
Если вы не знаете, о чем я говорю, попросите администратора сервера помочь вам объяснить ему, что ваш скрипт нуждается в доступе к последовательным портам.