Только, когда gettext был установлен как загружаемое расширение PHP. Проверьте свою конфигурацию PHP (php.ini) на extension
строки. Если Вы хотите, чтобы пользователи не могли использовать gettext, можно использовать PHP disable_functions
конфигурационная директива для отключения функций gettext, из руководства PHP:
строка disable_functions
Эта директива позволяет Вам отключать определенные функции из соображений безопасности. Это берет разграниченный запятой список имен функций. disable_functions не затронут Безопасным режимом. Эта директива должна быть установлена в php.ini, Например, Вы не можете установить это в httpd.conf.
Поскольку экранирование тоже не сработало (и действительно работает без командной строки), и я не хотел тратить больше времени на его отладку, я написал мой собственный плагин Nagios для замены check_http, который работает как шарм:
В исходном коде check_http.c указано, что параметр -r
проверяет заголовки и содержимое страницы. Проблема, с которой вы сталкиваетесь, вероятно, заключается в том, что интерпретатор макроса команды Nagios пытается заменить что-то в вашей строке регулярного выражения.
Вам следует попробовать экранировать все ваши (
, |
и )
символов. Если это не сработает, попробуйте использовать только круглые скобки и только трубы. Вы также можете попробовать использовать одинарные кавычки вместо двойных.
Ваше утверждение, что это "отлично работает" в командной строке, вызывает сомнения. Когда я запускаю его вручную, он "не работает нормально":
./ check_http -H localhost -r "HTTP / 1.1 (200 | 301 | 302 | 303 | 304 | 307 | 401 | 418 | 426)"
HTTP CRITICAL: HTTP / 1.1 302 Найдено - шаблон не найден - 650 байт за время ответа 0,001 секунды | время = 0,001410 с ;;; 0,000000 size = 650B ;;; 0
Как предлагает Джефф Странк, вам нужно избегать скобок (чтобы оболочка их не потребляла), например:
./ check_http -H localhost -r "HTTP / 1.1 \ (200 | 301 | 302 | 303 | 304 | 307 | 401 | 418 | 426 \)"
HTTP OK: HTTP / 1.1 302 Найдено - 650 байт за время ответа 0,001 секунды | время = 0,001425 с ;;; 0,000000 size = 650B ;;; 0