回答:
nginx -V
設定されたすべてのモジュールをリストします。明示的なenable / loadコマンドはありません。
sudo nginx -V
sudo
Ubuntuの14.04で
nginx -V
差分可能なワンライナー:
2>&1 nginx -V | tr -- - '\n' | grep _module
2つの環境を比較するのに便利です:
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
編集:
これには--without
モジュールコンパイルフラグが含まれていることを正しく指摘していただいたRoman Newazaに感謝します。私は--without
フラグを使用しておらず、モジュールリストを取得することに焦点を合わせていたため、それを把握できませんでした。ワンライナーは、次のように2つのインストール間でフラグをdiffコンパイルするのに役立つように変更できます。
2>&1 nginx -V | tr ' ' '\n'
次と同じです:
2>&1 nginx -V | xargs -n1
sort
コンパイルフラグの特異な順序を正規化し、tr
再び割り当てをdiff-able行に分割するために、それをパイプすることもあります。最終結果:
lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
sort
両方のリモートホストで同じ動作をする場合(つまり、両方がGNUまたはBSDである場合)に機能します。あなたはBSDする(Mac OS X)へのLinuxを比較する場合は、単に移動| sort | tr = '\n'
のうちの一部をlsmodn
ローカルシェルにsort
一貫性があるでしょう:
lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn | sort | tr = '\n')
メシエですが、動作します。
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 1.9.11
2016年2月以降の新しいnginxリリースから、動的にロード可能なモジュールもサポートされるようになりました— http://nginx.org/r/load_module — load_module
ディレクティブの助けを借りて。