如何在mac下安装Nginx
装这个ngnix折磨了我一个上午时间。发现很多教程都是用homebrew安装的,但是我的macOS版本是10.12的,又懒的去升级版本。
看了几个源码安装的版本都不是太全,索性把出现的问题全部写到一起。
下载所需资源
下载zlib, 我下载的是zlib-1.2.11.tar.gz;
下载pcre, 我下载的 pcre-8.41.tar.gz;
下载nginx, 我下载的nginx-1.12.2.tar.gz;
下载openssl, 我下载的是 openssl-1.0.2t.tar.gz;
依次执行以下步骤
1. 解压上面的源码包到同一新建的文件夹下面(我的是Nginx);
2. 进入解压后的nginx-1.12.2文件夹。
$ cd Nginx/nginx-1.12.2
3. 为了防止报错,先执行
$ export KERNEL_BITS=64
4. 自己根据自己的版本更改后执行
$ ./configure --prefix=/Library/Nginx --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2t
5.编译 有permission denied的时候使用sudo make,持续时间可能比较就
$ make
安装 # 有permission denied的时候使用sudo make install
$ make install
出现以下表示安装成功
/Library/Developer/CommandLineTools/usr/bin/make -f objs/Makefile install
test -d '/Library/Nginx' || mkdir -p '/Library/Nginx'
test -d '/Library/Nginx/sbin' \
|| mkdir -p '/Library/Nginx/sbin'
test ! -f '/Library/Nginx/sbin/nginx' \
|| mv '/Library/Nginx/sbin/nginx' \
'/Library/Nginx/sbin/nginx.old'
cp objs/nginx '/Library/Nginx/sbin/nginx'
test -d '/Library/Nginx/conf' \
|| mkdir -p '/Library/Nginx/conf'
cp conf/koi-win '/Library/Nginx/conf'
cp conf/koi-utf '/Library/Nginx/conf'
cp conf/win-utf '/Library/Nginx/conf'
test -f '/Library/Nginx/conf/mime.types' \
|| cp conf/mime.types '/Library/Nginx/conf'
cp conf/mime.types '/Library/Nginx/conf/mime.types.default'
test -f '/Library/Nginx/conf/fastcgi_params' \
|| cp conf/fastcgi_params '/Library/Nginx/conf'
cp conf/fastcgi_params \
'/Library/Nginx/conf/fastcgi_params.default'
test -f '/Library/Nginx/conf/fastcgi.conf' \
|| cp conf/fastcgi.conf '/Library/Nginx/conf'
cp conf/fastcgi.conf '/Library/Nginx/conf/fastcgi.conf.default'
test -f '/Library/Nginx/conf/uwsgi_params' \
|| cp conf/uwsgi_params '/Library/Nginx/conf'
cp conf/uwsgi_params \
'/Library/Nginx/conf/uwsgi_params.default'
test -f '/Library/Nginx/conf/scgi_params' \
|| cp conf/scgi_params '/Library/Nginx/conf'
cp conf/scgi_params \
'/Library/Nginx/conf/scgi_params.default'
test -f '/Library/Nginx/conf/nginx.conf' \
|| cp conf/nginx.conf '/Library/Nginx/conf/nginx.conf'
cp conf/nginx.conf '/Library/Nginx/conf/nginx.conf.default'
test -d '/Library/Nginx/logs' \
|| mkdir -p '/Library/Nginx/logs'
test -d '/Library/Nginx/logs' \
|| mkdir -p '/Library/Nginx/logs'
test -d '/Library/Nginx/html' \
|| cp -R html '/Library/Nginx'
test -d '/Library/Nginx/logs' \
|| mkdir -p '/Library/Nginx/logs'
编译安装完成, 测试启动、重启、停止;
cd /Library/Nginx
启动
sudo sbin/nginx #浏览器访问 127.0.0.1 测试是否成功启动
重启
sudo sbin/nginx -s reload
停止
sudo sbin/nginx -s stop
如出现以下错误
WARNING! If you wish to build 64-bit library, then you have to
invoke './Configure darwin64-x86_64-cc' *manually*.
You have about 5 seconds to press Ctrl-C to abort.
中间的编译信息省略...
ld: symbol(s) not found for architecture x86_64 collect2: ld
returned 1 exit status make[2]: *** [objs/nginx]
Error 1 make[1]: *** [build]
Error 2 make: ***
[all] Error 2
是因为没有执行
$ export KERNEL_BITS=64