knowledge/docs/php/nginx.md

2.9 KiB
Raw Blame History

编译安装nginx

wandoubaba / 2023-07-21

系统环境

以Debian11为例

下载源码

以1.24.0版本为例下载nginx

wget https://nginx.org/download/nginx-1.24.0.tar.gz

如果提示wget: command not found就先安装wget执行sudo apt-get install wget就行。

解压:

tar zxvf nginx-1.24.0.tar.gz

安装依赖

sudo apt-get install libgd-dev build-essential zlib1g-dev libpcre3-dev libssl-dev lsb-release

创建www用户和组

查看www用户是否存在

id www

创建www分组和www用户并且不允许登录系统

groupadd www
useradd -g www -s /sbin/nologin www

再查看www用户

id www

编译安装

cd nginx-1.24.0

带参数执行编译

./configure --user=www --group=www \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_realip_module \
    --with-http_image_filter_module \
    --with-http_addition_module \
    --with-http_stub_status_module \
    --with-stream \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module \
    --with-http_gzip_static_module \
    --with-http_gunzip_module \
    --with-http_sub_module \
    --with-http_flv_module \
    --with-http_mp4_module \
    --with-http_dav_module \
    --with-openssl-opt=-g \
    --with-pcre-opt=-g \
    --with-pcre

安装:

make
sudo make install

经过以上步骤nginx已经被安装到/usr/local/nginx目录下,程序文件位于/usr/local/nginx/sbin/nginx

启动服务

可以先把nginx程序路径写到系统环境中可以把这条命令加到~/.bashrc文件中)

export PATH=/usr/local/nginx/sbin/:$PATH

执行直接执行nginx即可启动服务。

在浏览器访问http://ip把IP换成你的nginx主机地址如果防火墙和安全组都放行了80端口我们现在应该能看到Welcome to nginx页面了。

用下面的命令可以控制服务的启停:

## 重启服务
nginx -s reopen
## 停止服务
nginx -s stop
nginx -s quit
## 重载配置
nginx -s reload

注册系统服务

注意:操作系统不同,下面的方法可能不一样。

创建/etc/systemd/system/nginx.service文件:

[Unit]
Description=Nginx Service
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

执行下面的命令使服务生效并实现随系统启动:

sudo systemctl daemon-reload
sudo systemctl enable nginx

用下面的命令控制服务:

sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl stop nginx
sudo systemctl reload nginx
sudo systemctl status nginx