当前位置: 首页 > article >正文

CentOS7源码编译安装nginx+php+mysql

1.安装nginx
安装依赖

yum -y install gcc gcc-c++ wget automake autoconf libtool libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed pcre-devel openssl  openssl-devel

创建一个不能登录的nginx运行用户

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

创建源码保存目录和运行时的临时文件夹,下载nginx源码,当前稳定版为nginx-1.22.1

mkdir -p /var/cache/nginx

mkdir -p /usr/local/src/nginx

cd /usr/local/src/nginx

wget -c http://nginx.org/download/nginx-1.22.1.tar.gz

解压

tar -zxvf nginx-1.22.1.tar.gz

cd /usr/local/src/nginx/nginx-1.22.1

编译前配置检查​​​​​​​

./configure \

--prefix=/usr/local/nginx \

--sbin-path=/usr/local/nginx/sbin/nginx \

--conf-path=/usr/local/nginx/conf/nginx.conf \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--pid-path=/var/run/nginx.pid \

--lock-path=/var/run/nginx.lock \

--http-client-body-temp-path=/var/cache/nginx/client_temp \

--http-proxy-temp-path=/var/cache/nginx/proxy_temp \

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \

--http-scgi-temp-path=/var/cache/nginx/scgi_temp \

--user=www-data \

--group=www-data \

--with-pcre \

--with-http_v2_module \

--with-http_ssl_module \

--with-http_realip_module \

--with-http_addition_module \

--with-http_sub_module \

--with-http_dav_module \

--with-http_flv_module \

--with-http_mp4_module \

--with-http_gunzip_module \

--with-http_gzip_static_module \

--with-http_random_index_module \

--with-http_secure_link_module \

--with-http_stub_status_module \

--with-http_auth_request_module \

--with-mail \

--with-mail_ssl_module \

--with-file-aio \

--with-http_v2_module \

--with-threads \

--with-stream \

--with-stream_ssl_module

配置检查完毕,查看是否创建了Makefile,如果未创建成功,一般是因为缺失依赖包,根据提示安装依赖包。​​​​​​​

编译,安装​​​​​​​

make

make install

启动nginx

/usr/local/nginx/sbin/nginx

查看进程

ps aux|grep nginx

杀掉进程

pkill -9 nginx

配置服务

vim /usr/lib/systemd/system/nginx.service

输入如下配置​​​​​​​

[Unit]

Description=nginx - high performance web server

Documentation=http://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/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

ExecStartPost=/bin/sleep 0.1


[Install]

WantedBy=multi-user.target

注意:如果你是单核服务器,需要加ExecStartPost=/bin/sleep 0.1

否则在执行systemctl start nginx之后,在执行systemctl status nginx时

会出现systemd[1]: Failed to read PID from file /var/run/nginx.pid: Invalid argument

这是因为nginx还未启动完成,systemctl就去寻找pid进程文件了,这是一个已知的bug

重新载入 systemd

systemctl daemon-reload

开启开机启动

systemctl enable nginx.service

启动和查看nginx状态

systemctl start nginx

systemctl status nginx

http://www.kler.cn/a/441423.html

相关文章:

  • [Unity 热更方案] 使用Addressable进行打包管理, 使用AssetBundle进行包的加载管理.70%跟练
  • Markdown Viewer 浏览器, vscode
  • Langchain+文心一言调用
  • 【2025小年源码免费送】
  • 探索WPF中的RelativeSource:灵活的资源绑定利器
  • 【Unity】ScrollViewContent适配问题(Contentsizefilter不刷新、ContentSizeFilter失效问题)
  • 前端单元测试实战:从零开始构建可靠的测试体系
  • vue2项目中如何把rem设置为固定的100px
  • Linux:进程通信、管道通信
  • MFC CMDIChildWnd
  • 【Linux】socket编程1
  • jmeter后端监视器
  • selenium 在已打开浏览器上继续调试
  • C/S软件授权注册系统-轻量级WebApi服务器介绍
  • 【Python爬虫系列】_034.抓包工具_Charles
  • AI大模型学习笔记|多目标算法梳理、举例
  • 【Excel】单元格分列
  • webSokect安卓和web适配的Bug 适用实时语音场景
  • 优化算法更新 | 基于WOA-CNN-BiLSTM的多步预测模型
  • C#/Winfrom -文件操作
  • Unity中展示当前时间
  • 使用 rvest 包快速抓取网页数据:从入门到精通
  • .NET6 WebAPI从基础到进阶--朝夕教育
  • Kubernetes Service 详解:如何轻松管理集群中的服务
  • 什么是MyBatis?
  • 【java-数据结构篇】揭秘 Java LinkedList:链表数据结构的 Java 实现原理与核心概念