nginx 源码安装方法

源码安装方法:

1:下载nginx源码安装包 当前目录:根目录 / 在nginx官网下载源码安装包 http://nginx.org/en/download.html wget http://nginx.org/download/nginx-1.9.12.tar.gz

2: chomd 修改文件与文件夹读写执行属性 chomd –R 777 nginx 练习,可以不做。-R表示将文件夹中所有文件属性修改为可读 写执行 chown 修改文件和文件夹的用户和用户组属性 chown –R sakia:net /nginx 练习,可以不做 将nginx目录下所有文件的用户与用户组修改为 sakia、net

3:生成nginx安装目录 mkdir /usr/local/nginx mkdir -m 777 /usr/local/nginx

4:将下载的源码安装包mv到指定的安装目录 mv nginx-1.9.12.tar.gz /usr/local/nginx

5: 将下载的源码包解压缩 进入 cd /usr/local/nginx tar -zxvf nginx-1.9.12.tar.gz

然后进入到 cd nginx-1.9.12.tar.gz

6:检查是否已经有了这些安装编译包和一些依赖包 gcc gcc-c++ openssl openssl-devel pcre-devel zlib-devel zlib

若是没有做检查直接安装 可能会出现一些问题 安装方法:直接运行 configure ./configure (1):./configure: error: C compiler cc is not found 解决办法:先更新 yum update yum install gcc gcc-c++ ncurses-devel perl

g++ 亦被称为gcc-c++ gcc 是一套有GNU 开发的编程语言编译器 能够处理 c c++ java 等等语言 gcc 在编译C++源代码的阶段,只能编译 C++ 源文件,而不能自动和 C++ 程 序使用的库链接(编译过程分为编译、链接两个阶段,注意不要和可执行文件这个概念搞混, 相对可执行文件来说有三个重要的概念:编译(compile)、链接(link)、加载(load)。 源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执行文件被加载到内存中运行)。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译 g++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的 __cplusplus宏:实际上,这个宏只是标志着编译器将会把代码按C还

是C++语法来解释,如上所述,如果后缀为.c,并且采用gcc编译器,则该宏就是未定义的,否则,就是已定义。

(2):./configure: error: the http rewrite module requires the pcre library 解决办法: yum -y install pcre-devel

(3):./configure: error the http gzip module requires the zlib library 解决办法: yum -y install zlib-devel

(4):./configure: erro the http cache module requres md5 function from Openssl library

解决办法: yum -y install openssl openssl-devel

(5): checking for C compiler found but is not working Configure 首先会编译一个小测试程序,通过测试其运行结果来判断编译器是否能 正常工作,由于交叉编译器所编译出来的程序无法在编译主机上运行的,故而产生 错误。 解决办法: 编辑auto/cc/name文件 将21行的 “exit 1”注释掉(令测试程序不会报错)

7: 若是没有问题 运行下面命令 make && make install

8: 安装完了后,检查是否安装正确 /usr/local/nginx/sbin/nginx -t || nginx -t -c /usr/loca/nginx/sbin/nginx 启动操作 /usr/local/nginx/sbin/nginx 停止操作 Ps -ef | grep nginx 在进程里面找到master进程。 Kill -QUIT 主进程号 || kill -TERM 主进程号 || pkill -9 nginx 平滑重启 /usr/local/nginx/sbin/nginx -s reload 启动相关信息 /usr/local/nginx/sbin/nginx -h

9: 找到nginx 第一种方法:whereis nginx 第二种方法:find -name nginx

10:若是已经安装nginx,需要卸载 【使用yum安装nginx】 用 yum 安装nginx Yum remove nginx

11:./configure 后面接的参数细解 ./configure –prefix=/usr/local/nginx --sbin-path=/usr/local/nginx --conf-path=/usr/local/nginx.conf –pid-path=/usr/local/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.38 --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1q

Configure命令 用来检查你安装平台的目标特征,它定义了系统的各个方面,包括nginx 的被允许使用的链接处理方法,比如他会检查你是不是有CC或者GCC,并不是需要CC或者GCC ,它是一个shell脚本,执行结束时,会创建一个Makefile文件,nginx的configure命令支持一下参数

–prefix=path 定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。

--sbin-path=path 设置nginx的可执行文件的路径,默认为 prefix/sbin/nginx

--conf-path=path 设置在nginx.conf配置文件的路劲,nginx允许使用不同的配置文件启动,通过命令行中的 –c选项。默认为 prefix/conf/nginx.conf

--pid-path=path 设置nginx.pid文件,存储主进程的进程号,安装完后可以随时更改文件名,在nginx.conf文件中修改。默认情况下,文件名为 prefix/logx/nginx.pid 使用pid指令

--error-log-path=path 设置主错误,警告,和诊断文件的名称,安装完后可以随时修改文件名,在nginx.conf配置文件中修改,默认情况下文件名是 prefix/logs/error.log 使用error_log指令

--http-log-path=path 设置主要请求http服务器日志文件名称,安装完后,可以随时修改文件名,在nginx.conf文件中设置修改,默认情况下,文件名为 prefix/logs/access.log 使用access_log指令

--user=name 设置nginx工作进程的用户组,安装完成后,在nginx.conf文件中可以随时更改名称。默认用户名是 nobody 使用user指令

--group=name 设置nginx工作进程的用户组,安装完成后,在nginx.conf配置文件中可以随时修改名称,使用user指令。默认的为非特权用户

--with-select_module 启用或者叫应用勾践一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持kqueue , epoll , rtsig 或者 /dev/poll

--with-poo_module启用或者禁用一个模块来允许服务器使用poll()方法,该模块将自动建立,如果平台不支持kqueue , epoll , rtsig 或者 /dev/poll

--without-http_gzip_module 不编译压缩的HTTP服务器的相应模块,编译并运行此模块需要zlib库

--without-http_rewrite_module 不编译重写模块,编译并运行此模块需要PCRE库支持。 --with-http_ssl_module 使用https协议模块,默认情况下,该模块没有被构建,建立并运行此模块的OpenSSL库是必需的。

--without-http_proxy_module 不编译http_proxy模块

--with-pcre=path 设置PCRE库的源码路径,PCRE库的源码需要从PCRE网站下载并解压,其余的工作是Nginx的./configure和make来完成。正则表达式使用在location指令 和 ngx_http_rewrite_module模块中

--with-zlib=path 设置zlib库的源码路径,zlib库的源码需要从zlib网站下载并解压,其余的工作是Nginx的./configure和make来完成。Ngx_http_gzip_module模块需要使用zlib

--with-cc-opt=parameters 设置额外的参数将被添加到CFLAGS变量,例如,当你在freeBSD

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4