Может, у меня кончается кофе, может, это просто потому, что сегодня понедельник, но я не уверен, что делаю неправильно. Я установил php-snmp.x86_64 5.3.3-47.el6 через yum, обновил php.x86_64 до 5.3.3-47.el6 по мере необходимости и перезапустил apache, но я все еще не могу создать новый объект SNMP вот так (предположим, что переменные создаются заранее):
$snmp = new SNMP(SNMP::VERSION_2C, $ip, $community, $snmp_timeout);
В журнале ошибок указано «Неустранимая ошибка PHP: класс« SNMP »не найден». Люди на разных форумах говорят, что он доступен только в PHP 5.4, но если это так, почему я смог его установить? Страница установки PHP SNMP гласит: «Поддержка SNMP восстановлена в PHP 5.3.3».
Я надеюсь, что это только одна из тех глупых ошибок, которые можно исправить с помощью отсутствующего включения, но чего мне здесь не хватает?
PHPInfo (из apache, а не CLI) отмечает следующее относительно SNMP:
Configure Command: --enable-ucd-snmp-hack
Additional .ini files parsed: /etc/php.d/snmp.ini
NET-SNMP Support enabled
NET-SNMP Version 5.5
Установка этого модуля позволяет вам использовать Функции SNMP в PHP. Большинство из них существуют вечно (например, дни PHP 4.0) и, конечно, не требуют SNMP 5.4. Они являются просто основными оболочками для функций C API и не предоставляют объектно-ориентированного доступа к SNMP.
SNMP класс, с другой стороны, является новая функция PHP 5.4, поэтому не будет доступна на такой старой версии.
Я бы рекомендовал использовать репозиторий Remi для обновления до современной версии PHP. Увидеть этот ответ для деталей, хотя URL-адреса могли измениться.
Других решений пока нет …