Nota para los novatos: si no ha iniciado sesión como usuario root, el comando seríasudo nginx -V
its_me
44
No necesitaba usar sudoUbuntu 14.04
Asfand Qazi
55
Tenga en cuenta que este parámetro distingue entre mayúsculas y minúsculas. Si usa minúsculas "-v" obtendrá solo el número de versión. Las mayúsculas "-V" le brindan una configuración completa que incluye una lista de todos los módulos utilizados para compilar el binario Nginx.
Illidan
1
Parece que algunos sistemas pueden no tener el $PATHconjunto adecuado para los no superusuarios, omitiendo todos los sbindirectorios, por lo tanto, es posible que deba especificar la ruta completa del demonio (por ejemplo, /usr/sbin/nginx -V), o simplemente usarlo sudo.
Cnst
@its_me ... probablemente no necesites sudo para corrernginx -V
Gracias, Roman Newaza, por señalar correctamente que esto incluye --withoutindicadores de compilación del módulo. No estoy usando --withoutbanderas y solo estaba enfocado en obtener la lista de módulos, así que no entendí eso; el one-liner se puede modificar para ayudar a diferenciar las banderas de compilación entre 2 instalaciones, de esta manera:
2>&1 nginx -V | tr ' ' '\n'
que es lo mismo que:
2>&1 nginx -V | xargs -n1
Quizás también canalice eso sortpara normalizar el ordenamiento idiosincrásico de los indicadores de compilación y trnuevamente para dividir las tareas en líneas divisibles. Resultado final:
Eso funciona si se sortcomporta igual en ambos hosts remotos (es decir, ambos son GNU o BSD). Si está comparando Linux con BSD (Mac OS X), simplemente mueva la | sort | tr = '\n'pieza lsmodnal shell local donde sortserá consistente:
Tenga en cuenta que sudoeste comando nunca es necesario , ya que nginx solo necesitaría poderes de superusuario para abrir puertos inferiores IPPORT_RESERVED(por ejemplo, puertos inferiores a 1024) y / o ciertos archivos de registro para escribir.
Sin embargo, dependiendo de su $PATHconfiguración, es posible que deba especificar la ruta completa, por ejemplo /usr/sbin/nginx -V, o usarla sudopara que /sbin/se incluya el directorio apropiado en el $PATH.
Respuestas:
nginx -V
enumerará todos los módulos configurados. No hay un comando explícito de habilitar / cargar.fuente
sudo nginx -V
sudo
Ubuntu 14.04$PATH
conjunto adecuado para los no superusuarios, omitiendo todos lossbin
directorios, por lo tanto, es posible que deba especificar la ruta completa del demonio (por ejemplo,/usr/sbin/nginx -V
), o simplemente usarlosudo
.nginx -V
One-liner diferenciable:
Conveniente para comparar dos entornos:
EDITAR:
Gracias, Roman Newaza, por señalar correctamente que esto incluye
--without
indicadores de compilación del módulo. No estoy usando--without
banderas y solo estaba enfocado en obtener la lista de módulos, así que no entendí eso; el one-liner se puede modificar para ayudar a diferenciar las banderas de compilación entre 2 instalaciones, de esta manera:que es lo mismo que:
Quizás también canalice eso
sort
para normalizar el ordenamiento idiosincrásico de los indicadores de compilación ytr
nuevamente para dividir las tareas en líneas divisibles. Resultado final:Eso funciona si se
sort
comporta igual en ambos hosts remotos (es decir, ambos son GNU o BSD). Si está comparando Linux con BSD (Mac OS X), simplemente mueva la| sort | tr = '\n'
piezalsmodn
al shell local dondesort
será consistente:Más desordenado, pero funciona.
fuente
2>&1 nginx -V | tr -- - '\n' | grep _module
¡El comando es totalmente incorrecto ya que enumera sin- * opciones instaladas!El
nginx -V
comando (V mayúscula) enumerará todos los módulos, así como otras opciones de tiempo de compilación:%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 %
Tenga en cuenta que
sudo
este comando nunca es necesario , ya que nginx solo necesitaría poderes de superusuario para abrir puertos inferioresIPPORT_RESERVED
(por ejemplo, puertos inferiores a 1024) y / o ciertos archivos de registro para escribir.Sin embargo, dependiendo de su
$PATH
configuración, es posible que deba especificar la ruta completa, por ejemplo/usr/sbin/nginx -V
, o usarlasudo
para que/sbin/
se incluya el directorio apropiado en el$PATH
.Comenzando con las nuevas versiones de nginx, desde
nginx 1.9.11
(febrero de 2016), ahora también se admiten módulos cargables dinámicamente , http://nginx.org/r/load_module , con la ayuda de laload_module
directiva.fuente
nginx -V
no muestra todos los módulos, muestra unos 20 módulos para mí.Yo uso el
strings /usr/sbin/nginx|grep _module|grep -v configure| sort
que enumera todos los más de 200 módulos en mi nginx.También lo intenté
objdump
pero parece que el nginx en mi instalación tenía el binario eliminado.fuente