您好,登錄后才能下訂單哦!
原創文章,轉載請注明出處:https://blog.51cto.com/indian/2445786
1、編譯工具安裝
yum install -y epel-release
yum install -y gcc gcc-c++ curl
2、調整系統時區
date
timedatectl
sudo timedatectl set-timezone Asia/Shanghai
sudo dnf install -y chrony
3、其它自己需要的工具
yum install -y vim man tree screen wget bash-completion tcp_wrappers lrzsz
1、依賴庫
您必須將這些庫 perl 5.6.1+, libpcre, libssl安裝在您的電腦之中。 對于 Linux來說, 您需要確認使用 ldconfig 命令,讓其在您的系統環境路徑中能找到它們。
yum install pcre-devel openssl-devel
2、設置專用用戶和組及相關目錄
groupadd www
useradd -r -g www -s /sbin/nologin -M www
mkdir -pv /data/{src,local}/
mkdir -pv /data/logs/nginx
chown -R www:www /data/logs/nginx
3、下載相關軟件和模塊
cd /data/src
wget -c -P '/data/src/' 'https://github.com/winshining/nginx-http-flv-module/archive/v1.2.7.tar.gz' -O 'nginx-http-flv-module-1.2.7.tar.gz'
wget -c -P '/data/src' 'https://openresty.org/download/openresty-1.15.8.2.tar.gz'
注意,不要用X寶的“echo-nginx-module”模塊(坑之一),用了這個模塊后編譯出錯,我就在這里踩坑了,折騰了好久。
4、開始安裝
cd /data/src
tar -xzf nginx-http-flv-module-1.2.7.tar.gz
tar -xzf openresty-1.15.8.2.tar.gz
cd openresty-1.15.8.2/
./configure \
--prefix=/data/local/openresty-1.15.8.2 \
--sbin-path=/usr/sbin/openresty \
--user=www \
--group=www \
--with-luajit \
--with-http_ssl_module \
--with-http_iconv_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_addition_module \
--add-module=/data/src/nginx-http-flv-module-1.2.7
gmake -j `grep processor /proc/cpuinfo | wc -l` && make install
nginx-http-flv-module 是流媒體模塊,是“nginx-rtmp-module”模塊的升級版。具體見我的另一篇筆記《[原創]openresty搭建流媒體》。
試著使用 ./configure --help 查看更多的選項。
配置文件(./configure script)運行出錯可以到 build/nginx-VERSION/objs/autoconf.err 找到。 VERSION 的地方必須與OpenResty版本號相對應, 比如 0.8.54.6。
全程如果沒有報錯,最后出現“ln -sf /usr/sbin/openresty /data/local/openresty-1.15.8.2/bin/openresty”就表明編譯安裝成功了。
5、校驗
[root@node1 ~]# openresty -v
nginx version: openresty/1.15.8.2
6、安裝成功后的編譯參數
[root@node1 ~]# openresty -V
nginx version: openresty/1.15.8.2
built by gcc 8.3.0 (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/data/local/openresty-1.15.8.2/nginx --with-cc-opt=-O2 --add-module=../ngx_devel_kit-0.3.1rc1 --add-module=../iconv-nginx-module-0.14 --add-module=../echo-nginx-module-0.61 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.15 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.7 --with-ld-opt=-Wl,-rpath,/data/local/openresty-1.15.8.2/luajit/lib --sbin-path=/usr/sbin/openresty --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_secure_link_module --with-http_stub_status_module --with-http_addition_module --add-module=/data/src/nginx-http-flv-module-1.2.7 --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module
[root@node1 ~]#
1、編譯參數問題
如果編譯參數帶下面這3個參數
--with-pcre=/data/src/pcre-8.43 \
--with-zlib=/data/src/zlib-1.2.11 \
--with-openssl=/data/src/openssl-1.1.1d \
這3個參數后面的路徑,不是指它們的安裝路徑,而是下載對應的包,再解壓后的路徑。我就在這里踩坑N久(坑之二)。
包下載地址參考:
https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
http://zlib.net/zlib-1.2.11.tar.gz
https://www.openssl.org/source/openssl-1.1.1d.tar.gz
如果不加這3個參數,編譯時會自動調用系統庫,前提是yum安裝了著3個軟件的devel包(見前面)。如果在make時出現下列信息,就表明調用成功,否則要安裝它們的庫文件。
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
shell> ss -tnl #查看啟動的端口
shell> openresty #啟動
shell> ss -tnl #查看openresty開放的端口是否啟動
shell> openresty -s stop #停止
shell> openresty -s reload #重載
shell> openresty -t #語法檢查
openresty 命令幫助,與nginx用法類似,可以加 “-c”調用配置文件
[root@node1 openresty-1.15.8.2]# openresty -h
nginx version: openresty/1.15.8.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /data/local/openresty-1.15.8.2/nginx/)
-c filename : set configuration file (default: conf/nginx.conf)
-g directives : set global directives out of configuration file
[root@node1 openresty-1.15.8.2]# openresty
四、測試
瀏覽器輸入:http://你測試機器IP/
如果瀏覽器沒有顯示,放行防火墻端口:
sudo ss -tnl
sudo cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
或關閉防火墻:
systemctl stop firewalld.service
ss -tnl
如果覺得本文對你有幫助,請給我點攢或回應評論,謝謝!
英文版:https://github.com/openresty/openresty/issues/551
原創文章,轉載請注明出處:https://blog.51cto.com/indian/2445786
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。