nginxの基礎:4:インストールと設定モジュール三者

ここに画像を挿入説明
前の記事では、三者のモジュールを確認する方法がインストールされている説明、記事はsubs_filter例に進み、ソースコードや設定をコンパイルする方法について説明します。

subs_filterモジュールにおいて、例えば、以下の手順に従って。

手順1:確認、あらかじめ

この需要は、一般的にnginxのインストールされている表示され、あるいはソースコードをダウンロードし、nginxのソースモジュールは、直接翻訳することができますが、状況のより一般的なセットは必ずインストールnginxのバージョンとコンパイル時、次のコマンドを実行するには、あなたが最初の必要性を確認する必要がありさこの情報を入手。

nginxの-V:コマンドを実行します。

[root@liumiaocn nginx]# nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-stream_ssl_preread_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_auth_request_module --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'
[root@liumiaocn nginx]# 

このようにして、我々は現在のnginxのバージョン1.16.1を理解するだけでなく、コンテンツをコンパイルするときに、構成設定が使用されている取得します。
subs_filterを設定している間、インストールおよび設定操作を確認するために、間違っていることが、現在の状態を確認することが普通です。

[root@liumiaocn nginx]# nginx -s reload
nginx: [emerg] unknown directive "subs_filter" in /etc/nginx/nginx.conf:53
[root@liumiaocn nginx]# 

:詳細な方法はで見つけることができますhttps://liumiaocn.blog.csdn.net/article/details/104104790

ステップ2:ソースコードをダウンロードしてください

ダウンロードnginxのソース

nginxの1.16.1のダウンロードここで必要なソースコード

ダウンロードコマンド:wgetのhttp://nginx.org/download/nginx-1.16.1.tar.gz

[root@liumiaocn subs_filter]# wget http://nginx.org/download/nginx-1.16.1.tar.gz 
...省略
[root@liumiaocn subs_filter]# ls nginx-1.16.1.tar.gz 
nginx-1.16.1.tar.gz
[root@liumiaocn subs_filter]# 

解凍nginxのソース

[root@liumiaocn subs_filter]# tar xf nginx-1.16.1.tar.gz 
[root@liumiaocn subs_filter]# ls
nginx-1.16.1  nginx-1.16.1.tar.gz
[root@liumiaocn subs_filter]# cd nginx-1.16.1
[root@liumiaocn nginx-1.16.1]# pwd
/root/subs_filter/nginx-1.16.1
[root@liumiaocn nginx-1.16.1]#

ソースはsubs_filterを取得します

subs_filterソースを取得するには、次のコマンドを使用します

gitのクローンhttp://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

[root@liumiaocn nginx-1.16.1]# pwd
/root/subs_filter/nginx-1.16.1
[root@liumiaocn nginx-1.16.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@liumiaocn nginx-1.16.1]# git clone http://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
Cloning into 'ngx_http_substitutions_filter_module'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 496 (delta 0), reused 0 (delta 0), pack-reused 495
Receiving objects: 100% (496/496), 275.92 KiB | 0 bytes/s, done.
Resolving deltas: 100% (260/260), done.
[root@liumiaocn nginx-1.16.1]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  ngx_http_substitutions_filter_module  README  src
[root@liumiaocn nginx-1.16.1]# 

ステップ3:再コンパイル

取得するためにステップ1で、次のコンパイル設定オプションを追加

--add-module=/root/subs_filter/nginx-1.16.1/ngx_http_substitutions_filter_module

注:ディレクトリ・パスは、一貫性のgit cloneコマンドを生成するように変更する必要があります

次に、設定は./configure

[root@liumiaocn nginx-1.16.1]# ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-stream_ssl_preread_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_auth_request_module --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=/root/subs_filter/nginx-1.16.1/ngx_http_substitutions_filter_module
checking for OS
 + Linux 5.4.2-1.el7.elrepo.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
checking for gcc -pipe switch ... found
checking for --with-ld-opt="-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E" ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
...省略
checking for Google perftools ... found
creating objs/Makefile

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

  nginx path prefix: "/usr/share/nginx"
  nginx binary file: "/usr/sbin/nginx"
  nginx modules path: "/usr/lib64/nginx/modules"
  nginx configuration prefix: "/etc/nginx"
  nginx configuration file: "/etc/nginx/nginx.conf"
  nginx pid file: "/run/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/lib/nginx/tmp/client_body"
  nginx http proxy temporary files: "/var/lib/nginx/tmp/proxy"
  nginx http fastcgi temporary files: "/var/lib/nginx/tmp/fastcgi"
  nginx http uwsgi temporary files: "/var/lib/nginx/tmp/uwsgi"
  nginx http scgi temporary files: "/var/lib/nginx/tmp/scgi"

./configure: warning: the "--with-ipv6" option is deprecated
[root@liumiaocn nginx-1.16.1]# 

注:で、IPv6のnginxのオプションが自動的にnginxの1.11.5バージョンの後、この記事では、ここではそれらを繰り返さない、インストールおよびセットをカスタマイズする方法について説明し決定します。

よくある間違いと対応方法

アセンブリの取り付けの一般的な不足は、configureコマンドのミスを避けるために、収集され、提案された最初のパッケージが実行される前に、インストールに必要な以下の一般的なエラーのyumコンテンツを使用しています

  • エラー1
checking for --with-ld-opt="-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E" ... not found
./configure: error: the invalid value in --with-ld-opt="-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E"

対応方法:yumのはredhat-rpmの-config.noarchをインストール-y

  • エラー2
./configure: error: the HTTP rewrite module requires the PCRE library.

対応方法:YUM PCRE-develのインストール-y

  • エラー3
./configure: error: SSL modules require the OpenSSL library.

対応方法:YUMのopensslのopenssl-develのインストール-y

  • エラー4
./configure: error: the HTTP XSLT module requires the libxml2/libxslt

対応方法:YUM -yはlibxml2ののlibxml2-devのはlibxsltの-develのインストール

  • エラー5
./configure: error: the HTTP image filter module requires the GD library.

対応方法:YUM GD-develのインストール-y

  • エラー6
./configure: error: perl module ExtUtils::Embed is required

対応方法:YUM -yインストールのperl-develのperlの-のExtUtils-埋め込み

  • エラー7
./configure: error: the Google perftools module requires the Google perftools
library. You can either do not enable the module or install the library

対応方法:yumのインストールgperftools -y

ステップ4:コンパイル

コンパイルするにはmakeコマンドを使用します

[root@liumiaocn nginx-1.16.1]# make
make -f objs/Makefile
make[1]: Entering directory `/root/subs_filter/nginx-1.16.1'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/http/modules/perl -I /usr/include/libxml2 -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
...省略
objs/ngx_stream_module_modules.o \
-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E \
-shared
sed -e "s|%%PREFIX%%|/usr/share/nginx|" \
	-e "s|%%PID_PATH%%|/run/nginx.pid|" \
	-e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \
	-e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \
	< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/root/subs_filter/nginx-1.16.1'
[root@liumiaocn nginx-1.16.1]#

ステップ5:インストール

使用して、インストールを完了し、インストールします

[root@liumiaocn nginx-1.16.1]# which nginx
/usr/sbin/nginx
[root@liumiaocn nginx-1.16.1]# ls -l /usr/sbin/nginx
-rwxr-xr-x 1 root root 1210984 Oct  3 01:15 /usr/sbin/nginx
[root@liumiaocn nginx-1.16.1]# 
[root@liumiaocn nginx-1.16.1]# make install
make -f objs/Makefile install
make[1]: Entering directory `/root/subs_filter/nginx-1.16.1'
cd objs/src/http/modules/perl && make install
make[2]: Entering directory `/root/subs_filter/nginx-1.16.1/objs/src/http/modules/perl'
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/nginx/nginx.so
Installing /usr/local/lib64/perl5/auto/nginx/nginx.bs
Installing /usr/local/lib64/perl5/nginx.pm
Installing /usr/local/share/man/man3/nginx.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
make[2]: Leaving directory `/root/subs_filter/nginx-1.16.1/objs/src/http/modules/perl'
test -d '/usr/share/nginx' || mkdir -p '/usr/share/nginx'
test -d '/usr/sbin' \
	|| mkdir -p '/usr/sbin'
test ! -f '/usr/sbin/nginx' \
	|| mv '/usr/sbin/nginx' \
		'/usr/sbin/nginx.old'
cp objs/nginx '/usr/sbin/nginx'
test -d '/etc/nginx' \
	|| mkdir -p '/etc/nginx'
cp conf/koi-win '/etc/nginx'
cp conf/koi-utf '/etc/nginx'
cp conf/win-utf '/etc/nginx'
test -f '/etc/nginx/mime.types' \
	|| cp conf/mime.types '/etc/nginx'
cp conf/mime.types '/etc/nginx/mime.types.default'
test -f '/etc/nginx/fastcgi_params' \
	|| cp conf/fastcgi_params '/etc/nginx'
cp conf/fastcgi_params \
	'/etc/nginx/fastcgi_params.default'
test -f '/etc/nginx/fastcgi.conf' \
	|| cp conf/fastcgi.conf '/etc/nginx'
cp conf/fastcgi.conf '/etc/nginx/fastcgi.conf.default'
test -f '/etc/nginx/uwsgi_params' \
	|| cp conf/uwsgi_params '/etc/nginx'
cp conf/uwsgi_params \
	'/etc/nginx/uwsgi_params.default'
test -f '/etc/nginx/scgi_params' \
	|| cp conf/scgi_params '/etc/nginx'
cp conf/scgi_params \
	'/etc/nginx/scgi_params.default'
test -f '/etc/nginx/nginx.conf' \
	|| cp conf/nginx.conf '/etc/nginx/nginx.conf'
cp conf/nginx.conf '/etc/nginx/nginx.conf.default'
test -d '/run' \
	|| mkdir -p '/run'
test -d '/var/log/nginx' \
	|| mkdir -p '/var/log/nginx'
test -d '/usr/share/nginx/html' \
	|| cp -R html '/usr/share/nginx'
test -d '/var/log/nginx' \
	|| mkdir -p '/var/log/nginx'
test -d '/usr/lib64/nginx/modules' \
	|| mkdir -p '/usr/lib64/nginx/modules'
test ! -f '/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so' \
	|| mv '/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so' \
		'/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so.old'
cp objs/ngx_http_xslt_filter_module.so '/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so'
test ! -f '/usr/lib64/nginx/modules/ngx_http_image_filter_module.so' \
	|| mv '/usr/lib64/nginx/modules/ngx_http_image_filter_module.so' \
		'/usr/lib64/nginx/modules/ngx_http_image_filter_module.so.old'
cp objs/ngx_http_image_filter_module.so '/usr/lib64/nginx/modules/ngx_http_image_filter_module.so'
test ! -f '/usr/lib64/nginx/modules/ngx_http_perl_module.so' \
	|| mv '/usr/lib64/nginx/modules/ngx_http_perl_module.so' \
		'/usr/lib64/nginx/modules/ngx_http_perl_module.so.old'
cp objs/ngx_http_perl_module.so '/usr/lib64/nginx/modules/ngx_http_perl_module.so'
test ! -f '/usr/lib64/nginx/modules/ngx_mail_module.so' \
	|| mv '/usr/lib64/nginx/modules/ngx_mail_module.so' \
		'/usr/lib64/nginx/modules/ngx_mail_module.so.old'
cp objs/ngx_mail_module.so '/usr/lib64/nginx/modules/ngx_mail_module.so'
test ! -f '/usr/lib64/nginx/modules/ngx_stream_module.so' \
	|| mv '/usr/lib64/nginx/modules/ngx_stream_module.so' \
		'/usr/lib64/nginx/modules/ngx_stream_module.so.old'
cp objs/ngx_stream_module.so '/usr/lib64/nginx/modules/ngx_stream_module.so'
make[1]: Leaving directory `/root/subs_filter/nginx-1.16.1'
[root@liumiaocn nginx-1.16.1]# which nginx
/usr/sbin/nginx
[root@liumiaocn nginx-1.16.1]# ls -l /usr/sbin/nginx
-rwxr-xr-x 1 root root 8348816 Jan 28 22:27 /usr/sbin/nginx
[root@liumiaocn nginx-1.16.1]#

ステップ6:確認の結果

再起動nginxのサービス、およびリロードサービス

[root@liumiaocn nginx-1.16.1]# systemctl start nginx
[root@liumiaocn nginx-1.16.1]# 
[root@liumiaocn nginx-1.16.1]# nginx -s reload
[root@liumiaocn nginx-1.16.1]#

あなたはこの時点で三個の者モジュールが働いてきたことを示す、未知のディレクティブ「subs_filter」(subs_filter命令を認識しません)エラーメッセージが表示されなくなりましたを見ることができます。

リリース1028元の記事 ウォンの賞賛1290 ビュー398万+

おすすめ

転載: blog.csdn.net/liumiaocn/article/details/104104888