您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“shell腳本源碼安裝nginx的過程是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“shell腳本源碼安裝nginx的過程是什么”吧!
SHELL是什么?SHELL是Linux內(nèi)核跟用戶之間溝通的橋梁;
SHELL也是一個(gè)命令解釋器,用戶可以輸入命令到SHELL,SHELL將命令傳遞給Linux內(nèi)核,內(nèi)核處理完畢,返回給SHELL,SHELL將返回的結(jié)果返給用戶終端;
SHELL是外殼,中間件,外殼有很多的種類,bash、csh、ksh、zsh等;
SHELL和SHELL編程有什么關(guān)系?SHELL是命令解釋器,用戶和操作系統(tǒng)溝通橋梁,而SHELL編程基于SHELL解釋器來實(shí)現(xiàn)具體的功能或者需求;
SHELL命令、SHELL腳本、SHELL編程、SHELL之間解釋?
SHELL編程的目的將重復(fù)的工作變成自動(dòng)化,可以理解為批處理;
SHELL主要是為了減輕人工的頻繁的操作、提高運(yùn)維工作效率,保證網(wǎng)站穩(wěn)定、高效的運(yùn)行;
例如需要源碼編譯LNMP WEB架構(gòu),20臺(tái)都需要編譯怎么辦?
任何的編程語言,都是從Hello,world;
SHELL編程其實(shí)就是將SHELL命令寫入到腳本文件中;
SHELL編程規(guī)范,腳本內(nèi)容第一行必須以#!開頭,其后接SHELL的種類,例如/bin/bash,/bin/sh等;
下面腳本看下shell腳本源碼安裝nginx的過程。
[root@localhost ~]# vim nginx.sh [root@localhost ~]# cat nginx.sh #!/bin/bash version=nginx-1.20.1.tar.gz name=nginx-1.20.1 install_dir=/usr/local log=/var/log/nginx #解決依賴關(guān)系 yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel wget gd-devel gcc gcc-c++ yum -y groups mark install 'Development Tools' #創(chuàng)建用戶 id nginx &>/dev/null if [ $? -ne 0 ];then useradd -s /sbin/nologin nginx fi #創(chuàng)建日志存放目錄 if [ ! -d $log ];then mkdir -p /var/log/nginx chown -R nginx.nginx /var/log/nginx fi #下載nginx cd /usr/src/ wget http://nginx.org/download/$version #解壓 tar xf $version mv $name nginx cd nginx/ && ./configure \ --prefix=$install_dir/nginx \ --user=nginx \ --group=nginx \ --with-debug \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_image_filter_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --http-log-path=$log/access.log \ --error-log-path=$log/error.log make && make install #配置環(huán)境變量 echo "export PATH=$install_dir/nginx/sbin:\$PATH" > /etc/profile.d/nginx.sh source /etc/profile.d/nginx.sh #創(chuàng)建服務(wù)文件 cat > /usr/lib/systemd/system/nginx.service <<EOF [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=$install_dir/nginx/sbin/nginx ExecReload=$install_dir/nginx/sbin/nginx -s reload ExecStop=$install_dir/nginx/sbin/nginx -s quit PrivateTmp= true [Install] WantedBy=multi-user.target EOF #開機(jī)自啟 systemctl enable --now nginx
//測(cè)試 [root@localhost ~]# ./nginx.sh 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 軟件包 gcc-4.8.5-44.el7.x86_64 已安裝并且是最新版本 軟件包 pcre-8.32-17.el7.x86_64 已安裝并且是最新版本 軟件包 pcre-devel-8.32-17.el7.x86_64 已安裝并且是最新版本 軟件包 zlib-1.2.7-19.el7_9.x86_64 已安裝并且是最新版本 軟件包 zlib-devel-1.2.7-19.el7_9.x86_64 已安裝并且是最新版本 軟件包 1:openssl-1.0.2k-22.el7_9.x86_64 已安裝并且是最新版本 軟件包 1:openssl-devel-1.0.2k-22.el7_9.x86_64 已安裝并且是最新版本 軟件包 wget-1.14-18.el7_6.1.x86_64 已安裝并且是最新版本 軟件包 gd-devel-2.0.35-27.el7_9.x86_64 已安裝并且是最新版本 軟件包 gcc-4.8.5-44.el7.x86_64 已安裝并且是最新版本 軟件包 gcc-c++-4.8.5-44.el7.x86_64 已安裝并且是最新版本 無須任何處理 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Marked install: Development Tools --2021-10-25 12:15:53-- http://nginx.org/download/nginx-1.20.1.tar.gz 正在解析主機(jī) nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ... 正在連接 nginx.org (nginx.org)|52.58.199.22|:80... 已連接。 已發(fā)出 HTTP 請(qǐng)求,正在等待回應(yīng)... 200 OK 長(zhǎng)度:1061461 (1.0M) [application/octet-stream] 正在保存至: “nginx-1.20.1.tar.gz.1” 100%[===================================================================================================================>] 1,061,461 670KB/s 用時(shí) 1.5s 2021-10-25 12:15:55 (670 KB/s) - 已保存 “nginx-1.20.1.tar.gz.1” [1061461/1061461]) checking for OS + Linux 3.10.0-862.el7.x86_64 x86_64 checking for C compiler ... found + using GNU C compiler + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 省略.... nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp" make -f objs/Makefile make[1]: 進(jìn)入目錄“/usr/local/nginx” cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \ -o objs/src/core/ngx_log.o \ src/core/ngx_log.c test -f '/usr/local/nginx/conf/nginx.conf' \ || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf' cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default' test -d '/usr/local/nginx/logs' \ || mkdir -p '/usr/local/nginx/logs' test -d '/var/log/nginx' \ || mkdir -p '/var/log/nginx' test -d '/usr/local/nginx/html' \ || cp -R html '/usr/local/nginx' test -d '/var/log/nginx' \ || mkdir -p '/var/log/nginx' make[1]: 離開目錄“/usr/src/nginx” Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. [root@localhost ~]# systemctl start nginx [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::*
經(jīng)過測(cè)試,想要直接使用nginx命令 需要在終端手動(dòng)讀取配置
//配置文件腳本里已經(jīng)寫好,這里直接讀取就可以 [root@localhost ~]# source /etc/profile.d/nginx.sh [root@localhost ~]# which nginx /usr/local/nginx/sbin/nginx [root@localhost ~]# nginx -V nginx version: nginx/1.20.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
或者用source nginx.sh執(zhí)行腳本
[root@localhost ~]# source nginx.sh //這種方式不需要手動(dòng)讀取環(huán)境變量
到此,相信大家對(duì)“shell腳本源碼安裝nginx的過程是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。