转载请注明出处: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. JavaSE基础之double数据类型的格式化

    JavaSE基础之double数据类型的格式化 1.double 数据类型的格式化工具类:DoubleFormatUtil.java package cn.com.zfc.util; import j ...

  2. [POI2000]病毒 --- AC自动机

    [POI2000]病毒 题目描述: 二进制病毒审查委员会最近发现了如下的规律: 某些确定的二进制串是病毒的代码. 如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的. 现在委员会已经找 ...

  3. ShellExecuteA函数

    原型: ShellExecuteA(, , , );//最大化打开记事本 第一个参数//系统启动第二个参数//open打开第三个参数//指令第四个参数//默认0第五个参数//默认0第六个参数//0隐藏 ...

  4. linux中的文件编码及编码修改

    查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想 ...

  5. java的反射机制(第二篇)

    本文转载自:http://c.biancheng.net/cpp/html/1781.html 要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class ...

  6. TCP的建立和终止 图解

    前言 在没有理解TCP连接是如何建立和终止之前,我想你可能并不会使用connect,accept,close这三个函数并且使用netstat程序来调试应用.所以掌握TCP连接的建立和终止势在必行. 三 ...

  7. Codeforces Round #358 (Div. 2) A. Alyona and Numbers 水题

    A. Alyona and Numbers 题目连接: http://www.codeforces.com/contest/682/problem/A Description After finish ...

  8. CF 277.5 B.BerSU Ball 二分图的最大匹配 模版题

    题意:求二分图的最大匹配数量 模版如下: //二分图匹配(匈牙利算法的DFS实现) //初始化:g[][]两边顶点的划分情况 //建立g[i][j]表示i->j的有向边就可以了,是左边向右边的匹 ...

  9. Git_Bug分支

    软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除. 当你接到一个修复一 ...

  10. 图解vim常用命令

    VI 即 Visual Interface,可视化接口,VIM是VI的增强版 (improved),两张图总结vim常用命令. 图片来自 https://www.cnblogs.com/yangjig ...