Cara lain untuk mengatakan ini adalah "bagaimana saya bisa melihat bendera mana yang dikompilasi dengan Nginx?" Hanya ingin menambahkan itu untuk meningkatkan pencarian.
Nathan Long
Jawaban:
291
nginx -Vakan mendaftar semua modul yang dikonfigurasi. Tidak ada perintah aktifkan / muat eksplisit.
Catatan untuk noobs: Jika tidak masuk sebagai pengguna root, perintahnya adalahsudo nginx -V
its_me
4
Saya tidak perlu menggunakan sudoUbuntu 14.04
Asfand Qazi
5
Harap dicatat bahwa parameter ini peka huruf besar-kecil. Jika Anda menggunakan huruf kecil "-v" Anda hanya akan mendapatkan nomor versi. Huruf besar "-V" memberi Anda konfigurasi lengkap termasuk daftar semua modul yang digunakan untuk kompilasi biner Nginx.
Illidan
1
Sepertinya beberapa sistem mungkin tidak memiliki $PATHset yang benar untuk non-pengguna super, menghilangkan semua sbindirektori, jadi, Anda mungkin harus menentukan path lengkap daemon (misalnya, /usr/sbin/nginx -V), atau memang hanya menggunakan sudo.
cnst
@its_me ... Anda mungkin tidak perlu sudo untuk menjalankannginx -V
Terima kasih, Roman Newaza, untuk menunjukkan dengan benar bahwa ini termasuk --withoutflag kompilasi modul. Saya tidak menggunakan --withoutflag dan hanya fokus untuk mendapatkan daftar modul, jadi saya tidak menangkapnya; one-liner dapat dimodifikasi untuk membantu mengompilasi flag berbeda antara 2 instalasi, seperti ini:
2>&1 nginx -V | tr ' ' '\n'
yang sama dengan:
2>&1 nginx -V | xargs -n1
Mungkin juga mem-pipe yang melalui sortuntuk menormalkan urutan istimewa dari flag kompilasi dan trlagi untuk membagi tugas ke baris yang berbeda. Hasil akhir:
Itu berfungsi jika sortberperilaku sama pada kedua host jarak jauh (mis. Keduanya GNU atau BSD). Jika Anda membandingkan Linux dengan BSD (Mac OS X), cukup pindahkan | sort | tr = '\n'bagian lsmodnke shell lokal yang sortkonsisten:
Perhatikan bahwa tidak pernah ada kebutuhan untuk sudoperintah ini, karena kekuatan superuser hanya diperlukan oleh nginx untuk membuka porta di bawah ini IPPORT_RESERVED(mis. Porta di bawah 1024) dan / atau file log tertentu untuk menulis.
Namun, tergantung pada $PATHpengaturan Anda, Anda mungkin perlu menentukan path lengkap - misalnya /usr/sbin/nginx -V,, atau memang digunakan sudountuk memiliki /sbin/direktori yang sesuai dimasukkan dalam $PATH.
Jawaban:
nginx -V
akan mendaftar semua modul yang dikonfigurasi. Tidak ada perintah aktifkan / muat eksplisit.sumber
sudo nginx -V
sudo
Ubuntu 14.04$PATH
set yang benar untuk non-pengguna super, menghilangkan semuasbin
direktori, jadi, Anda mungkin harus menentukan path lengkap daemon (misalnya,/usr/sbin/nginx -V
), atau memang hanya menggunakansudo
.nginx -V
Diff -able one-liner:
Nyaman untuk membandingkan dua lingkungan:
SUNTING:
Terima kasih, Roman Newaza, untuk menunjukkan dengan benar bahwa ini termasuk
--without
flag kompilasi modul. Saya tidak menggunakan--without
flag dan hanya fokus untuk mendapatkan daftar modul, jadi saya tidak menangkapnya; one-liner dapat dimodifikasi untuk membantu mengompilasi flag berbeda antara 2 instalasi, seperti ini:yang sama dengan:
Mungkin juga mem-pipe yang melalui
sort
untuk menormalkan urutan istimewa dari flag kompilasi dantr
lagi untuk membagi tugas ke baris yang berbeda. Hasil akhir:Itu berfungsi jika
sort
berperilaku sama pada kedua host jarak jauh (mis. Keduanya GNU atau BSD). Jika Anda membandingkan Linux dengan BSD (Mac OS X), cukup pindahkan| sort | tr = '\n'
bagianlsmodn
ke shell lokal yangsort
konsisten:Messier, tetapi berhasil.
sumber
2>&1 nginx -V | tr -- - '\n' | grep _module
Perintah ini benar-benar salah karena daftar tanpa opsi * diinstal!The
nginx -V
perintah (-huruf V) akan daftar semua modul, serta pilihan saat kompilasi lainnya:%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 %
Perhatikan bahwa tidak pernah ada kebutuhan untuk
sudo
perintah ini, karena kekuatan superuser hanya diperlukan oleh nginx untuk membuka porta di bawah iniIPPORT_RESERVED
(mis. Porta di bawah 1024) dan / atau file log tertentu untuk menulis.Namun, tergantung pada
$PATH
pengaturan Anda, Anda mungkin perlu menentukan path lengkap - misalnya/usr/sbin/nginx -V
,, atau memang digunakansudo
untuk memiliki/sbin/
direktori yang sesuai dimasukkan dalam$PATH
.Dimulai dengan rilis nginx yang lebih baru - sejak
nginx 1.9.11
(Februari 2016) - modul yang dapat dimuat secara dinamis sekarang juga didukung - http://nginx.org/r/load_module - dengan bantuanload_module
arahan.sumber
nginx -V
tidak menunjukkan semua modul, itu menunjukkan sekitar 20 modul untuk saya.Saya menggunakan
strings /usr/sbin/nginx|grep _module|grep -v configure| sort
yang mencantumkan semua 200+ modul di nginx saya.Saya juga mencoba
objdump
tetapi sepertinya nginx dalam instalasi saya telah biner dilucuti.sumber