前言
- 最近使用Mac系统,从新预习一下nginx,所以写了这篇博客,以便以后和广大好友减少麻烦。
- 安装启动完会发现,在Mac下安装nginx,和Linux下安装nginx,其实没有区别。就是先安装三个依赖包,最后安装nginx即可。唯一的区别可能是三个依赖包的安装方式不同罢了。
- 注意下最后的bug,很简单,手动创建文件夹即可,原因是因为没有权限创建文件夹而已~
一、homebrew
1、介绍
Mac下包管理工具:homebrew
2、下载安装
安装开始的截图,接着跟着流程执行即可
二、安装nginx
1、安装前准备
nginx 依赖于 pcre、zlib、openssl
- nginx的http模块使用pcre来解析正则表达式,需要在linux上安装
pcre
库 - nginx使用zlib对http包的内容进行gzip,需要在linux上安装安装
zlib
库 - 安装
openssl
库,让 nginx 支持 https(即在ssl协议上传输http)
缺少依赖会报错如下错误
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
a、安装pcre
- 执行命令
brew install pcre
命令执行如下:
(base) C02ZT6HWLVDL:nginx-1.22.1 alsc$ brew install pcre Running `brew update --auto-update`... ==> Homebrew has enabled anonymous aggregate formula and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics No analytics have been recorded yet (nor will be during this `brew` run). ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: https://github.com/Homebrew/brew#donations ==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/pcre-8.45.big_sur.bottle.tar.gz ######################################################################## 100.0% ==> Pouring pcre-8.45.big_sur.bottle.tar.gz 🍺 /usr/local/Cellar/pcre/8.45: 204 files, 5.8MB ==> Running `brew cleanup pcre`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
b、安装zlib
- 执行命令
brew install zlib
命令执行如下:
(base) C02ZT6HWLVDL:nginx-1.22.1 alsc$ brew install zlib ==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/zlib-1.2.13.big_sur.bottle.tar.gz ######################################################################## 100.0% ==> Pouring zlib-1.2.13.big_sur.bottle.tar.gz ==> Caveats zlib is keg-only, which means it was not symlinked into /usr/local, because macOS already provides this software and installing another version in parallel can cause all kinds of trouble. For compilers to find zlib you may need to set: export LDFLAGS="-L/usr/local/opt/zlib/lib" export CPPFLAGS="-I/usr/local/opt/zlib/include" ==> Summary 🍺 /usr/local/Cellar/zlib/1.2.13: 13 files, 424.9KB ==> Running `brew cleanup zlib`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
c、安装openssl
执行命令
brew install openssl
命令执行如下:
(base) C02ZT6HWLVDL:nginx-1.22.1 alsc$ brew install openssl ==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/ca-certificates-2022-10-11.all.bottle.tar ######################################################################## 100.0% ==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/openssl%403-3.0.7.big_sur.bottle.tar.gz ######################################################################## 100.0% ==> Installing dependencies for openssl@3: ca-certificates ==> Installing openssl@3 dependency: ca-certificates ==> Pouring ca-certificates-2022-10-11.all.bottle.tar.gz ==> Regenerating CA certificate bundle from keychain, this may take a while... 🍺 /usr/local/Cellar/ca-certificates/2022-10-11: 3 files, 225.4KB ==> Installing openssl@3 ==> Pouring openssl@3-3.0.7.big_sur.bottle.tar.gz ==> Caveats A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl@3/certs and run /usr/local/opt/openssl@3/bin/c_rehash openssl@3 is keg-only, which means it was not symlinked into /usr/local, because macOS provides LibreSSL. If you need to have openssl@3 first in your PATH, run: echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> /Users/alsc/.bash_profile For compilers to find openssl@3 you may need to set: export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export CPPFLAGS="-I/usr/local/opt/openssl@3/include" ==> Summary 🍺 /usr/local/Cellar/openssl@3/3.0.7: 6,454 files, 28.4MB ==> Running `brew cleanup openssl@3`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ==> Caveats ==> openssl@3 A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl@3/certs and run /usr/local/opt/openssl@3/bin/c_rehash openssl@3 is keg-only, which means it was not symlinked into /usr/local, because macOS provides LibreSSL. If you need to have openssl@3 first in your PATH, run: echo 'export PATH="/usr/local/opt/openssl@3/bin:$PATH"' >> /Users/alsc/.bash_profile For compilers to find openssl@3 you may need to set: export LDFLAGS="-L/usr/local/opt/openssl@3/lib" export CPPFLAGS="-I/usr/local/opt/openssl@3/include"
2、下载nginx
3、安装
- 我这里下载的是1.22.1的包,将你下载的
nginx-1.22.1.tar.gz
放在你想放的路径, - 解压:
tar -zxvf nginx-1.22.1.tar.gz
- 编译:
sudo ./configure
,sudo
是 super user do 的简称,使用管理员执行命令,主要是为辅助超级管理员完成一些超级管理员不能登录下的操作 - 安装:
sudo make && make install
- 安装完成
4、 安装的异常:Permission denied
最后执行流程截图,发现异常:
/Library/Developer/CommandLineTools/usr/bin/make -f objs/Makefile install
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
mkdir: /usr/local/nginx: Permission denied
make[1]: *** [install] Error 1
make: *** [install] Error 2
(base) C02ZT6HWLVDL:nginx-1.22.1 alsc$ ls
意思应该是创建文件夹没有权限,导致make install错误,安装错误。所以手动创建,并改权限即可
sudo mkdir -p /usr/local/nginx
sudo chmod -R 777 /usr/local/nginx
sudo make && make install
执行完安装命令,则显示如下,无报错信息,能发现 /usr/local/nginx/
已经有了数据,则success
然后:
cd /usr/local/nginx/sbin
./nginx
输入地址 http://localhost:80
看到如图内容,即nginx部署成功
补充说明:每次启动会麻烦可以建立全局变量
方案一:ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
方案二:
vi /etc/profile
export NGINX_HOME=/usr/local/nginx
export PATH= P A T H :NGINX_HOME/sbin
source /etc/profile
配置后启动:
nginx