# 编译安装OpenResty > wandoubaba / 2023-07-21 ## 系统环境 以Debian11为例 ## 安装依赖 ```sh apt-get install wget libpcre3-dev libssl-dev perl make build-essential curl libgd-dev lsb-release ``` ## 安装postgres模块依赖 我们这要安装驱动,而不是安装一个pg数据库服务,所以只需要安装一个`libpq-dev`就够了。 ```sh sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get -y install libpq-dev ``` ## 创建www用户和组 查看www用户是否存在 ```sh id www ``` 创建www分组和www用户,并且不允许登录系统 ```sh groupadd www useradd -g www -s /sbin/nologin www ``` 再查看www用户 ```sh id www ``` ## 下载源码包 ```sh wget https://openresty.org/download/openresty-1.21.4.2.tar.gz ``` ## 解压&编译&安装 ```sh tar zxvf openresty-1.21.4.2.tar.gz cd openresty-1.21.4.2 ./configure \ --prefix=/www/server/openresty \ --with-pcre-jit \ --with-http_iconv_module \ --with-http_postgres_module \ --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 gmake gmake install ``` ## 注册系统服务和开机自启 在`/etc/systemd/system/`目录下创建`nginx.service`文件,内容如下: ```ini [Unit] Description=Nginx HTTP Server After=network.target [Service] Type=forking PIDFile=/www/server/openresty/nginx/logs/nginx.pid ExecStartPre=/www/server/openresty/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;' ExecStart=/www/server/openresty/nginx/sbin/nginx -g 'daemon on; master_process on;' ExecReload=/www/server/openresty/nginx/sbin/nginx -g 'daemon on; master_process on;' -s reload ExecStop=/www/server/openresty/nginx/sbin/nginx -g 'daemon on; master_process on;' -s quit PrivateTmp=true Restart=always [Install] WantedBy=multi-user.target ``` 保存文件并退出后,执行下面命令: ```sh systemctl daemon-reload systemctl enable nginx ``` 现在已完成系统服务注册和开机自启,下面是服务控制命令: ```sh systemctl start nginx # 启动nginx服务 systemctl stop nginx # 停止nginx服务 systemctl restart nginx # 重启nginx服务 systemctl reload nginx # 重新加载nginx配置文件 systemctl status nginx # 检查nginx服务状态 ``` ## 测试 正确启动服务后,使用`ps`命令可以查看nginx服务进程 ```sh ps aux | grep nginx ``` 使用`ss`命令可以查看端口监听情况 ```sh ss -tnlp | grep 80 ``` 在浏览器中访问`http://ip`应该可以看到OpenResty的默认欢迎页`Welcom to OpenResty`。