nginx编译安装on mac

Posted 一点一滴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx编译安装on mac相关的知识,希望对你有一定的参考价值。

一、编译安装模块

如果是原有包中就有的模块,编译时,
./configure --with-xxx 就可以,
如果是第三方模块,可使用 --add-module,
如果有多个模块的话,只需要多次使用-add-module指令即可.

二、下载源码包image_fliter和echo模块

nginx源码下载
http://nginx.org/en/download.html

echo模块下载
https://github.com/openresty/echo-nginx-module/tags

解压
gzip -d xxx.tar.gz
tar -zvxf xxx.tar  xxx

三.编译

1.安装依赖:

brew install pcre
brew install gd #image filter依赖gd
brew link --force openssl #避免编译openssl时报错

2.cd nginx源码目录

./configure xxx
--prefix 设置编译目录

3.查看原有nginx编译参数

nginx -V

4.添加编译module

./configure \ 
--with-http_image_filter_module --with-debug --add-module=/Users/fanfan/web/software/echo-nginx-module-0.61 原有编译参数,

(注意修改版本目录)

./configure --prefix=/usr/local/Cellar/nginx/1.12.2 --with-http_ssl_module  --with-pcre --sbin-path=/usr/local/Cellar/nginx/1.12.2/bin/nginx --with-cc-opt=‘-I/usr/local/opt/pcre/include -I/usr/local/opt/[email protected]/include‘ --with-ld-opt=‘-L/usr/local/opt/pcre/lib -L/usr/local/opt/[email protected]/lib‘ --conf-path=/usr/local/etc/nginx/nginx.conf --pid-path=/usr/local/var/run/nginx.pid --lock-path=/usr/local/var/run/nginx.lock --http-client-body-temp-path=/usr/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/usr/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/usr/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/usr/local/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/var/run/nginx/scgi_temp --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-http_gzip_static_module --with-http_v2_module --with-http_image_filter_module --with-debug --add-module=/Users/fanfan/web/software/echo-nginx-module-0.61

------------------------------------------------------------------------------

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module --with-http_realip_module --with-http_image_filter_module --with-debug

5.make

四.安装

1.如果之前未安装nginx

make install

2.如果之前通过brew安装过nginx

/usr/local/bin/nginx   /usr/local/Cellar/nginx/xxx/bin/nginx
/usr/local/opt/nginx   /usr/local/Cellar/nginx/xxx
修改软连接,直接指向新的nginx

3.替换编译文件的方式

这种方式,只是替换了bin文件,目录还是原来的

#备份原来的binary
cp /usr/local/opt/nginx/bin/nginx /usr/local/opt/nginx/bin/nginx.bak
#先cd到nginx源码目录
sudo cp objs/nginx /usr/local/opt/nginx/bin/nginx
rm /usr/local/bin/nginx
ln -s /usr/local/opt/nginx/bin/nginx /usr/local/bin/nginx

4.建立版本目录方式

$ cp -r /usr/local/Cellar/nginx/1.8.0 /usr/local/Cellar/nginx/1.9.10
#先cd到nginx源码目录
$ sudo cp objs/nginx /usr/local/Cellar/nginx/1.9.10/bin
#更新/usr/local/opt/nginx
$ rm /usr/local/opt/nginx
$ ln -s /usr/local/Cellar/nginx/xxx /usr/local/opt/nginx
#更新/usr/local/bin/nginx
$ rm /usr/local/bin/nginx
$ ln -s /usr/local/opt/nginx/bin/nginx /usr/local/bin/nginx

5.编辑/Library/LaunchDaemons/homebrew.mxcl.nginx.plist

好像也不用编辑
launchctl load -F /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

五.验证nginx

nginx -V / nginx -v

yld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.8.dylib

nginx版本依赖 jpeg 8d的版本,而brew install jpeg 的时候,安装的是新版9b
可转换成上一版本即可
brew switch jpeg 8d

或者 因为其他版本安装出现此问题,可重新安装,rebuild source,
这样使用的就是最新版本的依赖
brew cleanup //更新cellar
brew reinstall php71 --build-from-source

https://stackoverflow.com/questions/32703296/dyld-library-not-loaded-usr-local-lib-libjpeg-8-dylib-homebrew-php

六.重启nginx

nginx -t //验证配置文件是否正确
有可能会有权限问题,启动时,以root用户启动即可
sudo brew services restart nginx

七.参考链接

https://blog.chionlab.moe/2016/02/02/compile-nginx-on-osx/
https://blog.haohtml.com/archives/12349

 

以上是关于nginx编译安装on mac的主要内容,如果未能解决你的问题,请参考以下文章

mac编译安装nginx及nginx-echo-module

Mac OS X 10.15 编译和安装 Nginx

在mac下用homebrew安装nginx后,怎么添加第三方module

Mac OS下源码编译安装Nginx

sh 从源代码安装Mac OS X nginx

mac如何开放端口