菜鸟运维笔记:小记编译安装Nginx所遇到的坑

来源:互联网
更新时间:2016/12/9 11:29:32
责任编辑:李志喜
字体:

前言

不管是CentOS,或是Debian/Ubuntu,甚至是Windows。Nginx都有已编译好的安装包可用。通常只需要在终端上潇洒地输入apt-get install ...或是yum install ..就可以了。但是对于我这个源码编译狂来说,那样一键安装,显然无法满足我心理需求。

获取Nginx源码

下载

官网已经出现了1.7了。不过我还是选择了目前稳定的1.6版本。打开你的终端,我们开始吧:

wget http://nginx.org/download/nginx-1.6.2.tar.gz

解压

tar xvf nginx-1.6.2.tar.gz

编译

进入刚才解压的目录下。你会发现,没有其他软件的源码中所包含的INSTALL文件(该文件通常用于指导如何正确编译源码),有一个README,来我们cat一下。!坑爹啊,里面只有一句话!

Documentation is available at http://nginx.org

文档在这个网站上。。。
不过不用管他了,看到目录下绿色的configure文件在,那么我们直接上手吧。

configure

./configure

然后,你可能会收到一个错误,提示你缺少PCRE。不过,如果你之前已经在这台主机上成功安装了Apache的话,那么现在是不会报错的,因为Apache也是需要PCRE的。(我的是新搞的华为云的主机,几乎裸机)

安装PCRE

PCRE是什么呢?简单说来,就是一个Perl的库。那么我们接下来来编译pcre的源码。哈哈。
到官网去看,当前(截至2014/11/09)最新版本是8.36。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz

-DHAVE_CONFIG_H

接下来,同样是用tar xvf解压。解压出一个pcre的目录,我们cd进去。不由分说,直接./configure
貌似没出错,接着make,貌似也没出问题,继续make install。咦,有错误!

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'  

是我没装libtool么,yum install一下。不对啊,装了啊。后来百度发现是缺少了g++编译器。对哦,我现在是裸机。这个我就不自己编译了(快跑题了),敲命令安装:

#CentOS下面
yum install gcc-c++
#Ubuntu下面
apt-get install g++

你应该是root身份,我就不多说了。此时会默认安装一些依赖软件,比如autoconf。

zlib

然后我们再重新./configure一下吧,瓦擦嘞,有问题(装完g++,configure都报错了。。),提示缺少zlib。好吧,继续百度,进官网。复制链接,然后继续wget

wget http://zlib.net/zlib-1.2.8.tar.gz

继续tar xvfo(╯□╰)o解压出一个目录。我这里目录名是zlib-1.2.8。请注意我所有wget的文件都在同一层目录下面,解压路径也是同一层。
来我ls -F一下:

nginx-1.6.2/         pcre-8.36/         zlib-1.2.8/
nginx-1.6.2.tar.gz  pcre-8.36.tar.gz  zlib-1.2.8.tar.gz

接着,我们再进入pcre的目录下面,去configure。加上一个选项。

./configure --with-zlib=../zlib-1.2.8

注意选项后面应该是,你自己的zlib目录的路径。You Know?
此时,应该不报错了,我们来一路高歌猛进,继续敲两个命令,——————>make——————>make install
好了,没错误安装pcre完毕。深呼一口气,恩,费力不少啊,不过终于安装上了,好吧,教程结束。
咦?慢着,我们的教程不是教你安装pcre的啊。我们是Nginx安装教程啊。那好吧,继续。

make

在pcre安装完毕之后,再次进入nginx的目录下面,去./configure应该不会报错了。
轻轻敲下四个字母make。接着观看滚屏。

make install

滚屏完毕,继续敲make install。然后继续看滚屏。。

开启Nginx

前文之中,我们已经安装好了Nginx,现在我们去开启它。因为刚才nginx源码目录下,我们在configure的时候,没有使用选项--prefix(该选项用来指定nginx的安装位置),所以它默认安装到了/usr/local/nginx/目录中。 我们可以cd进去,也可以不进去。下面开启它:

/usr/local/nginx/sbin/nginx

在安装目录下的sbin子目录中有Nginx的可执行文件。不过,很不幸,我的机器上,又报错了:

 error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

提示缺少libpcre.so.1,但是我们刚才明明装了pcre啊。原来是Nginx默认在/lib64/目录下(我是64位机器,32位应该是搜索/lib/),搜索该库文件。显然,我们自己编译的pcre,它的这个库文件不在这个位置。来我们find / -name 'libpcre.so.1'一下,找找看:

/usr/local/lib/libpcre.so.1

好吧,在/usr/local/lib/下面。我们来建立以符号链接吧。

ln -s /usr/local/lib/libpcre.so.1  /lib64/libpcre.so.1

然后,这次应该真得可以了。。。开启nginx:/usr/local/nginx/sbin/nginx。没报错,那我们来检测一下,看谁在监听80端口。

netstat -lpn|grep :80

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      28126/nginx  

好了,打完收工。

www.xue163.com true /5/55172.html report 25430 菜鸟运维笔记:小记编译安装Nginx所遇到的坑,前言不管是CentOS,或是Debian/Ubuntu,甚至是Windows。Nginx都有已编译好的安装包可用。通常只需要在终端上潇洒地输入apt-getinstall...或是yuminstall..就可以了。但是对于我这个源码编译狂来说,那样一...
最近关注
首页推荐
热门图片
最新添加资讯
24小时热门资讯
小记浮生小记游虎丘小记幽窗小记市井小记蓬莱修仙小记菜园小记游虎丘小记阅读答案
精彩资讯
精彩推荐
热点推荐
真视界
精彩图片
社区精粹
关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
Copyright © 2004-2016 Xue163.com All Rights Reserved. 中国学网 版权所有
京ICP备10044368号-1 京公网安备11010802011102号
荐闻 | 学网头条知识问答 | 装修 | 作业 | 荐闻 | 学网头条精彩微信 | 新闻中心 | 软件教室 | 设计大全 | 网络相关 | 英语学习 | 开发编程 | 考试中心 | 参考范文 | 管理文库 | 营销中心 | 站长之家 | IT信息中心 | 商学院 | 数码大全 | 硬件DIY | 企业服务 | 网吧在线 | 问吧 | 百科 | 硬件知识 | 本网视点 | 文库 | 手机 | 平板 | 汽车 | 游戏 | 家电 | 精彩摄影 | 时尚科技 | 现代家居 | IT女人 | 经验 | 每日新闻 | 健康养生 | 图书馆 | 猎奇 | 精彩看点 | 图库 | 新闻中心 | 软件教室 | 设计大全 | 网络相关 | 英语学习 | 开发编程 | 考试中心 | 参考范文 | 管理文库 | 营销中心 | 站长之家 | IT信息中心 | 商学院 | 数码大全 | 硬件DIY | 企业服务 | 网吧在线 | 问吧 | 百科 | 硬件知识 | 本网视点 | 文库 | 手机 | 平板 | 汽车 | 游戏 | 家电 | 精彩摄影 | 时尚科技 | 现代家居 | IT女人 | 经验 | 每日新闻 | 健康养生 | 图书馆 | 精彩微信 | 猎奇 | 精彩看点 | 图库编程 方案 信息windows方案windows answer文档机构教育文档问答中心IT编程数码信息解决方案信息中心IT科技