Ubuntu环境下安装配置Nginx

时间:2021-01-18 06:32:40

首先需要依赖的包:

l  gzip模块需要 zlib 

l  rewrite模块需要 pcre 

l  ssl 功能需要openssl

1.1.安装pcre

1.         获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

2.         解压缩pcre-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

1.2.安装openssl

1.         获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

2.         解压缩openssl-xx.tar.gz包。

3.         进入解压缩目录,执行./config

4.         make & make install

1.3.安装zlib

1.         获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

2.         解压缩zlib-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

1.4.安装nginx

1.         获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。

2.         解压缩nginx-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

以上执行make之后,查询提示信息是否报错,make install 尽量使用sudo去执行。

注意:

先执行./configure后别急着往下执行、看看配置不是有有错了、如果不看清楚的话、执行make肯定会出问题、如果迩在make的时候看到出现

make: *** No rule to make target `build', needed by `default'.  Stop.这种现象、迩回头看看./configure的出错信息是不是没装某个组件、比如没装

伪静态模块需要pcre库、这是相常见的问题、没装就装上吧、目前pcre最新版本为8.12、如果迩想下载的话最好选择tar.gz的、当然官网也提供了压缩率更高的

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

搞定咯、再运行一次./configure、再make、make install、问题不大、注意make install要root权限、如果是ubuntu的话可以用sudo暂时调用root权限、

nginx算是安装好了、不过还不能用、进入nginix目录、一般来说./configure不指定目录安装的话是安装在/usr/local/nginx、如果迩想指定其它目录用上--prefix=xxx目录、如果迩是安装在默认目录的话、执行个软链接命令把nginx连去/usr/bin目录下、

sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

注意啦、root权限、相信也没多大问题了、然后在哪里都可以运行nginx了、执行一下nginx -v如果看到版本号就算是安装完成了、

 

然后是启动nginx

 

如果运行nginx的话启动出错、遇到error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory

那么又是系统找不到某某库、把/usr/local下做个软链接搬过来就是了

sudo ln -s /usr/local/lib/libpcre.so.0 /usr/lib/libpcre.so.0

好了、启动nginx吧、想验证一下、用浏览器打开localhost:80咯、看看是否看到了nginx的欢迎页面、如果行就OK啦

 

启动nginx  

/usr/local/nginx/sbin/nginx

  

如果启动出错、像这样的信息

Nov 19 22:06:09 fedora nginx[17850]: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:10 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:10 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:11 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:11 fedora nginx[17850]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nov 19 22:06:12 fedora nginx[17850]: nginx: [emerg] still could not bind()

那么狠有可能是端口被占用了、看看迩是不是启动了apache的服务占用了80端口、把它停掉就可以了

sudo /etc/init.d/apache2 stop

若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

启动nginx之后,浏览器中输入http://localhost:80可以验证是否安装启动成功。

源代码安装的启动过程

      $cd /usr/local/nginx

      $sbin/nginx

      然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先不要继续,看看是什么原因,

解决之后再继续。

      如果你的机器同时安装了Apache,那上面的访问方式就不能使用了,而且nginx都可能启动不了,这是

因为它们都是用了80这个端口。我们这里将nginx的端口修改为8080,

这里主要修改nginx的配置文件nginx.conf,将一下这一行

       listen 80;

    修改为

       listen 8080;

    然后就可以访问了,http://localhost:8080/ 。