nignx 编译安装

  groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx

./configure --prefix=/usr/local/nginx \
    --with-http_stub_status_module \
    --user=nginx --group=nginx \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --with-pcre \
    --with-http_ssl_module \
    --without-mail_pop3_module \
    --without-mail_imap_module \
    --with-http_gzip_static_module \
    --with-stream

报错1: ./configure: error: C compiler cc is not found
apt install gcc
报错2: ./configure: error: the HTTP rewrite module requires the PCRE library.
apt install libpcre3-dev
报错3: ./configure: error: SSL modules require the OpenSSL library.
apt install libssl-dev
报错4: ./configure: error: the HTTP gzip module requires the zlib library.
apt install zlib1g-dev

apt install make
make && make install

脚本

#!/bin/bash
# nginx source make install by taxue
# 2021-12-28 v1.0

nginx_url='https://nginx.org/download/nginx-1.20.2.tar.gz'
nginx_bao=${nginx_url##*/}
bao_dir='/usr/local/src'

ping -c 1 -i.2 www.baidu.com
if [ $? -ne 0 ];then
        echo "网络不通,请检查网络!"
        exit 100
fi

[ -f ${bao_dir}/${nginx_bao} ] || wget $nginx_url -P $bao_dir/
cd $bao_dir
tar -xzvf $nginx_bao
cd `echo $nginx_url |awk -F'/' '{print $NF}' | awk -F'.tar' '{print $1}'`

id nginx || useradd -r  -s /bin/false -M nginx

apt update
apt -y install make gcc libpcre3-dev libssl-dev zlib1g-dev

./configure --prefix=/usr/local/nginx \
    --with-http_stub_status_module \
    --user=nginx --group=nginx \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --with-pcre \
    --with-http_ssl_module \
    --without-mail_pop3_module \
    --without-mail_imap_module \
    --with-http_gzip_static_module \
    --with-stream
make && make install

# system 服务管理
# 注意nginx二进制文件和配置文件位置
echo '[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"

[Install]
WantedBy=multi-user.target' > /lib/systemd/system/nginx.service

systemctl daemon-reload
systemctl start nginx
curl localhost:80

你可能感兴趣的:(nignx 编译安装)