转摘自:http://www.amyangfei.com/2012/05/01/install-nginx-for-mac/

在mac上安装nginx

2012-05-01 By amyangfei

介绍在mac OS X上安装nginx的基本过程

大名鼎鼎的Nginx听说过很久,它有着高性能、高稳定性等优点,国内的很多大型门户也都部署了Nginx,还有淘宝开源的Tengine也是根据Nginx改写。不过自己一直没有使用过,今天白天在新买来的mac上配置了Nginx,这里记录一下配置的过程和遇到的一些问题。配置过程参考了Nginx for Mac OS X Lion in 2 minutes这篇文章。

概述

这篇文章介绍了在Mac OS X 10.7.3 Lion下编译Nginx 1.2.0源码并安装的过程。由于在Lion下默认bash没有gcc的一系列命令,比如make,而我们需要编译Nginx的C源码,一个比较简单的解决方案是安装最新版本的XCode,AppStore里可以免费下载,安装结束后启动XCode,然后到XCode->Preferences->Downloads里,选择component,安装“Command Line Tools”就可以了。这样以后就可以方便地在Terminal里make了。

安装PCRE

Nginx需要PCRE(Perl Compatible Regular Expressions)的支持,需要先进行安装。一开始我按照Nginx for Mac OS X Lion in 2 minutes文章里的步骤,但是在后来编译Nginx时候会出现下面的问题。

Undefined symbols for architecture x86_64:
    "_pcre_free_study", referenced from:
        _ngx_pcre_free_studies in ngx_regex.o

在Nginx官方的问题列表里面有这个问题的具体描述,详细请看这里compilation fails on Mac OS X 10.7.2,其实就是库的位置没有找到。那篇文档中给出了两种解决方案,我使用了第一种,成功解决了问题:

1. Remove the PCRE version installed into /usr/local and reinstall one from macports. This is recommended solution.

2. Force /usr/local/lib to be before /usr/lib in library search path with ./configure --with-ld-opt="-I /usr/local/lib". This may work, but likely you'll be facing the same problem in other places as well.

具体过程首先安装macports,然后利用port安装pcre。安装macports可以编译源码,也可以直接使用dmg安装。Installing MacPorts上有详细的安装说明。安装pcre就很简单了,一行命令。

$ port install pcre

安装Nginx

准备工作做好了,这一步就很简单了,首先将nginx-1.2.0.tar.gz放在/usr/local/src目录下,执行下面的命令即可。相应的一些参数可以按照个人需求修改。

$ tar xvzf nginx-1.2.0.tar.gz
$ cd nginx-1.2.0
$ sudo ./configure --prefix=/usr/local/nginx --with-http_ssl_module
$ sudo make
$ sudo make install

开启Nginx

可以将/usr/local/nginx/sbin加入到环境变量里(注:可以参考 http://www.cnblogs.com/elfsundae/archive/2010/12/01/1893190.html ),那样可以直接使用sudo nginx开启Nginx。如果不加入的话使用绝对路径亦可。在使用Nginx的默认参数情况下,访问地址http://localhost/,看到“Welcome to nginx!”,说明Nginx正常工作。接下来就可以进一步学习Nginx的各种参数配置和相关使用了。

$ sudo /usr/local/nginx/sbin/nginx

声明: 本文采用 BY-NC-SA 协议进行

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐