转载请注明出处:http://blog.csdn.net/guodongxiaren/article/details/40950249 谢谢合作

前言

无论是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

好了,打完收工。

菜鸟运维笔记:小记编译安装Nginx所遇到的坑的更多相关文章

  1. 菜鸟运维笔记:安装MySQL,PHP及phpMyAdmin

    转载请注明出处:http://blog.csdn.net/guodongxiaren/article/details/40684799 阿里云提示我备案,挺烦人的.前天通过github的学生开发包. ...

  2. 菜鸟运维笔记:安装与配置Apacheserver

    前几天在在阿里花了49.5买了一个月的主机. 试着好用再续费吧. 地域:青岛 可用区:青岛可用区A CPU:1核 内存:512MB 带宽:1Mbps 操作系统:CentOS 6.5 64位 云盾:是 ...

  3. 运维笔记--Ubuntu离线安装jdk1.8(JDK8)Java环境

    Ubuntu离线环境安装jdk1.8 系统版本:Ubuntu16.04 其他Ubuntu版本安装类似 Jdk版本:8 1. 下载相应离线软件包 Jdk oracle官方下载地址:https://www ...

  4. 菜鸟运维笔记:配置Apache二级域名及WWW訪问

    事实上www訪问也能够理解为二级域名的一种. 域名 比方.com..org..edu..gov..info..net等等都是一级域名,或称顶级域名. 其详细格式是 *.顶级域名,比方csdn.net. ...

  5. Linux系统运维笔记(四),CentOS 6.4安装Nginx

    Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...

  6. Linux系统运维笔记(五),CentOS 6.4安装java程序

    Linux系统运维笔记(五),CentOS 6.4安装java程序 用eclipse编译通的java程序,现需要实施到服务器.实施步骤: 一,导出程序成jar包. 1,在主类编辑界面点右健,选  ru ...

  7. Linux系统运维笔记(四),CentOS 6.4安装 MongoDB

    Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6 ...

  8. Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Mariadb 10.1.20 + Nginx 1.10.2 + PHP 7.1.0 + Laravel 5.3 )

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...

  9. CentOS7 编译安装 Nginx (实测 笔记 Centos 7.0 + nginx 1.6.2)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

随机推荐

  1. android view surfaceView GLSurfaceView

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 表面视图 SurfaceView 是 视图 的子类, 刷新界面速度比 视图 块, 因为它 ...

  2. [BZOJ3560]DZY Loves Math V(欧拉函数)

    https://www.cnblogs.com/zwfymqz/p/9332753.html 由于欧拉函数是积性函数,可以用乘法分配律变成对每个质因子分开算最后乘起来.再由欧拉函数公式和分配律发现就是 ...

  3. 51Nod 快速傅里叶变换题集选刷

    打开51Nod全部问题页面,在右边题目分类中找到快速傅里叶变换,然后按分值排序,就是本文的题目顺序. 1.大数乘法问题 这个……板子就算了吧. 2.美妙的序列问题 长度为n的排列,且满足从中间任意位置 ...

  4. vijos p1882 智力题

    题意: 清晨, Alice与Bob在石阶上玩砖块.他们每人都有属于自己的一堆砖块.每人的砖块都由N列组成且N是奇数.Alice的第i列砖块有m[i]个.而Bob的第i列砖块有s[i]个. 他们想建造城 ...

  5. Codeforces Round #355 (Div. 2) D. Vanya and Treasure 分治暴力

    D. Vanya and Treasure 题目连接: http://www.codeforces.com/contest/677/problem/D Description Vanya is in ...

  6. Codeforces Round #287 (Div. 2) C. Guess Your Way Out! 水题

    C. Guess Your Way Out! time limit per test 1 second memory limit per test 256 megabytes input standa ...

  7. linux基础环境部署

    Content 0.序 1.更新安装库 2.安装基础库 0.序 本文主要是记录php在 Centos下的安装配置 .文中如无特别说明.表示php-5.6.31代码目录. 1.更新安装库 $ yum u ...

  8. Syncovery : Google Docs protocol completely replaced with Google Drive

    Google Docs protocol completely replaced with Google Drive In May 2015, the older Google Docs API wa ...

  9. 数据是企业的无价財富——爱数备份存储柜server的初体验(图文)

    非常早就像上这样一套数据备份系统,每天採用原来的软件备份加手动备份的方式,总有些不是太方便的地方. 加上企业规模的不断扩大,系统的增多,业务数据也日显重要.容不得半点中断和数据丢失.这不,出于对系统数 ...

  10. crontab运行shell失败解决办法

    1 首先检查crontab服务是否运行 可在crontab -e 中加入   */1 * * * * 123 >test.txt 可查看crontab服务是否启动,如果没有启动,请想办法启动 2 ...