Другой способ сказать это: «Как я могу увидеть, с какими флагами был скомпилирован Nginx?» Просто хотел добавить это, чтобы увеличить возможности поиска.
Натан Лонг
Ответы:
291
nginx -Vперечислит все настроенные модули. Нет явной команды включения / загрузки.
Примечание для noobs: Если вы не авторизованы как пользователь root, команда будетsudo nginx -V
its_me
4
Мне не нужно было использовать sudoна Ubuntu 14.04
Asfand Qazi
5
Обратите внимание, что этот параметр чувствителен к регистру. Если вы используете строчную букву «-v», вы получите только номер версии. Верхний регистр "-V" дает вам полную конфигурацию, включая список всех модулей, используемых для компиляции двоичного файла Nginx.
Иллидан
1
Кажется, что некоторые системы могут не иметь $PATHдолжного набора для не суперпользователей, пропуская все sbinкаталоги, поэтому вам, возможно, придется указать полный путь к демону (например, /usr/sbin/nginx -V) или просто использовать sudo.
CNST
@its_me ... тебе, наверное, не нужен sudo для бегаnginx -V
Спасибо, Роман Ньюаза, за правильное указание на то, что это включает --withoutфлаги компиляции модуля. Я не использую --withoutфлаги и просто сосредоточился на получении списка модулей, поэтому я не уловил этого; однострочник может быть изменен, чтобы помочь разным флагам компиляции между двумя установками, например так:
2>&1 nginx -V | tr ' ' '\n'
что так же, как:
2>&1 nginx -V | xargs -n1
Возможно также передать это, sortчтобы нормализовать идиосинкразическое упорядочение флагов компиляции и trснова разделить назначения на труднодоступные строки. Конечный результат:
Это работает, если sortведет себя одинаково на обоих удаленных хостах (то есть они оба GNU или BSD). Если вы сравниваете Linux с BSD (Mac OS X), просто переместите | sort | tr = '\n'часть lsmodnв локальную оболочку, где sortбудет согласовано:
Обратите внимание, что sudoв этой команде никогда нет необходимости , поскольку полномочия суперпользователя понадобятся только nginx для открытия портов ниже IPPORT_RESERVED(например, портов ниже 1024) и / или определенных файлов журнала для записи.
Однако, в зависимости от ваших $PATHнастроек, вам может потребоваться указать полный путь, например /usr/sbin/nginx -V, или использовать его sudoдля включения соответствующего /sbin/каталога в $PATH.
Ответы:
nginx -V
перечислит все настроенные модули. Нет явной команды включения / загрузки.источник
sudo nginx -V
sudo
на Ubuntu 14.04$PATH
должного набора для не суперпользователей, пропуская всеsbin
каталоги, поэтому вам, возможно, придется указать полный путь к демону (например,/usr/sbin/nginx -V
) или просто использоватьsudo
.nginx -V
Отличная однострочность:
Удобно для сравнения двух сред:
РЕДАКТИРОВАТЬ:
Спасибо, Роман Ньюаза, за правильное указание на то, что это включает
--without
флаги компиляции модуля. Я не использую--without
флаги и просто сосредоточился на получении списка модулей, поэтому я не уловил этого; однострочник может быть изменен, чтобы помочь разным флагам компиляции между двумя установками, например так:что так же, как:
Возможно также передать это,
sort
чтобы нормализовать идиосинкразическое упорядочение флагов компиляции иtr
снова разделить назначения на труднодоступные строки. Конечный результат:Это работает, если
sort
ведет себя одинаково на обоих удаленных хостах (то есть они оба GNU или BSD). Если вы сравниваете Linux с BSD (Mac OS X), просто переместите| sort | tr = '\n'
частьlsmodn
в локальную оболочку, гдеsort
будет согласовано:Мессье, но это работает.
источник
2>&1 nginx -V | tr -- - '\n' | grep _module
Команда полностью неверна, так как в ней перечислены без- * опций, как установлено!Команда
nginx -V
(в верхнем регистре V) выведет список всех модулей, а также другие параметры времени компиляции:%nginx -V nginx version: nginx/1.2.2 built by gcc 4.2.1 20070719 TLS SNI support enabled configure arguments: --prefix=/var/www --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=/var/www/cache/client_body_temp --http-proxy-temp-path=/var/www/cache/proxy_temp --http-fastcgi-temp-path=/var/www/cache/fastcgi_temp --http-scgi-temp-path=/var/www/cache/scgi_temp --http-uwsgi-temp-path=/var/www/cache/uwsgi_temp --user=www --group=www --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module %
Обратите внимание, что
sudo
в этой команде никогда нет необходимости , поскольку полномочия суперпользователя понадобятся только nginx для открытия портов нижеIPPORT_RESERVED
(например, портов ниже 1024) и / или определенных файлов журнала для записи.Однако, в зависимости от ваших
$PATH
настроек, вам может потребоваться указать полный путь, например/usr/sbin/nginx -V
, или использовать егоsudo
для включения соответствующего/sbin/
каталога в$PATH
.Начиная с более новых выпусков nginx - начиная с
nginx 1.9.11
(февраль 2016 г.) - теперь также поддерживаются динамически загружаемые модули - http://nginx.org/r/load_module - с помощьюload_module
директивы.источник
nginx -V
не показывает все модули, он показывает около 20 модулей для меня.Я использую
strings /usr/sbin/nginx|grep _module|grep -v configure| sort
который перечисляет все 200+ модулей в моем nginx.Я также пытался,
objdump
но, похоже, nginx в моей установке удалил бинарный файл.источник