CentOS中源码编译安装Nginx
1.从官网通过wget命令将nginx源码包下载到linux上
nginx下载页面:
2.在linux上安装需要依赖的环境
yum -y install gcc gcc-c++ automake zlib zlib-devel \ openssl openssl--devel pcre pcre-devel
gcc为gnu compiler collection的缩写,可以编译c和c++源代码等,它是gnu开发的c和c++以及其他很多种语言 的编译器(最早的时候只能编译c,后来很快进化成一个编译多种语言的集合,如fortran、pascal、objective-c、java、ada、 go等。)
gcc 在编译c++源代码的阶段,只能编译 c++ 源文件,而不能自动和 c++ 程序使用的库链接(编译过程分为编译、链接两个阶段,注意不要和可执行文件这个概念搞混,相对可执行文件来说有三个重要的概念:编译(compile)、链接(link)、加载(load)。源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执行文件被加载到内存中运行)。因此,通常使用 g++ 命令来完成 c++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。
gcc-c++也能编译c源代码,只不过把会把它当成c++源代码,后缀为.c的,gcc把它当作是c程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的。
automake是一个从makefile.am文件自动生成makefile.in的工具。为了生成makefile.in,automake还需用到perl,由于automake创建的发布完全遵循gnu标准,所以在创建中不需要perl。libtool是一款方便生成各种程序库的工具。
pcre pcre-devel:在nginx编译需要 pcre(perl compatible regular expression),因为nginx 的rewrite模块和http 核心模块会使用到pcre正则表达式语法。
zlip zlib-devel:nginx启用压缩功能的时候,需要此模块的支持。
openssl openssl-devel:开启ssl的时候需要此模块的支持。
3.根据系统情况自动生成编译时所需的makefile文件(如果依赖没安装则这一步就会出现报错)
#生成makefile ./configure
4.编译和安装
#编译 make #安装 make install
5.安装后,日志中将会包含了nginx的具体安装目录
如果在./configure
未指定安装的目录,则编译安装后的nginx一般在/usr/local/nginx
下。安装后,有四个主要的目录。
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
html:保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。
6.通过命令启动和关闭nginx:
#启动nginx,一般来说编译安装时这个sbin下的命令是没有填到path中的也没有将nginx作为系统服务 /usr/local/nginx/sbin/nginx/nginx #只能通过绝对路径启动nginx
7.重读配置文件和关闭服务:
/usr/local/nginx/sbin/nginx -s reload #不停止服务重读配置文件 /usr/local/nginx/sbin/nginx -s stop #停止服务
8.查看进程和验证端口是否开启:
一般来说在执行了启动nginx的那个命令后,没有报错则说明nginx是启动了的,如果想要确认是否启动,可以通过下面的命令进行查询。
ps -ef | grep nginx
#使用下面的命令来确认端口对应的进程是不是nginx,如果没有安装lsof,则可以通过yum安装先 lsof -i:80
推荐阅读
-
centos7上编译安装php7以php-fpm方式连接apache
-
centos编译安装mysql 5.6及安装多个mysql实例详解
-
MyEclipse中安装了jad反编译插件不能使用该怎么办?
-
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
-
CentOS 6.4下编译安装MySQL5.6.14教程
-
VirtualBox 在Centos 7 中安装增强功能图解 (共享文件夹)
-
如何在CentOS中安装PHP7.4的方法步骤
-
Centos 6.4源码安装mysql-5.6.28.tar.gz教程
-
VMware 12中CentOS 6.5 64位安装配置教程
-
centos下编译安装mysql报错解决方案