mac下安装homebrew-nginx及系列问题

新买回来的mac【mac系统环境是最新版本10.13.2或更新】需要使用nginx,那么需要做以下事情:

第一步:

在appstore里面搜索xcode,先安装下载xcode,有8g多,比较大,下载完成后点开xcode应用继续安装直到完成出现这个界面;


第二步:

安装homebrew工具(必须要安装的):

打开mac自带的iterm2终端,ctrl+v粘贴运行下面的自动脚本,这是国内的地址亲测成功:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装成功会有提示。如果没有第一步没有做,会安装不成功,根据提示安装成功后继续执行上面的脚本直到homebrew安装成功。

第三步:

3.1、在iterm2终端执行脚本:

brew update
//结果:Already up-to-date.

3.2、终端继续执行命令:

brew search nginx   //查询要安装的软件是否存在

3.3、这里我们多执行一步“废”命令,不过有利于我们后面的配置:

brew info nginx

我们可以看到,nginx在本地还未安装(Not installed),nginx的来源(From),Docroot默认为/usr/local/var/www,在/usr/local/etc/nginx/nginx.conf配置文件中默认端口被配置为8080从而使nginx运行时不需要加sudo,nginx将在/usr/local/etc/nginx/servers/目录中加载所有文件,以及我们可以通过最简单的命令 ‘nginx’ 来启动nginx。

3.4、正式开始安装:

brew install nginx

3.5、查看nginx安装目录(是否如info所说):

open /usr/local/etc/nginx/

成功打开nginx目录,也可以看到如info所说servers目录以及nginx.conf的配置文件(后面会用到这个配置文件)。但我们并没有找到nginx被安装到了哪里。

3.6、终端继续执行:

open /usr/local/Cellar/nginx  //其实这个才是nginx被安装到的目录

会看到一个以当前安装的nginx的版本号为名称的文件夹,这个就是我们安装的nginx根目录啦。进入1.17.10/bin 目录,会看到nginx的可执行启动文件。

同样的,我们在1.17.10录下还可以看到一个名字为html的快捷方式文件夹(暂且就这么叫吧),进入该目录我们会发现其实它指向的就是/usr/local/var/www目录,这个在上面我们查看的info信息中有提到(Dcroot)。

3.7、启动nginx,终端输入如下命令:

nginx

没有报错即为启动成功。

3.8、访问验证:

打开浏览器访问localhost:8080,看到nginx欢迎界面即成功。


以上引用自:https://www.cnblogs.com/meng1314-shuai/p/8335140.html


第四步:修改8080端口为80端口

执行open /usr/local/etc/nginx/,找到nginx.conf,拖文件到sublime里,修改8080为80(vim的修改文件

sudo vi /usr/local/etc/nginx/nginx.conf

的话按i编辑文字,esc键 -> 再:wq保存并退出,:q是不保存退出)

管理员权限重启nginx:

sudo nginx -s  reload  // 修改配置后重新加载生效
sudo nginx -s  reopen   // 重新打开日志文件
sudo nginx -s stop  // 快速停止nginx
sudo nginx -s quit  // 完整有序的停止nginx/优雅关闭(先服务完已打开的连接)
sudo nginx -t     // 判断配置文件是否有问题
sudo nginx -h     //查看帮助

 

Q-遇到问题1: nginx80端口被占用[error] invalid PID number "" in "/usr/local/var/run/nginx.pid"

Q-Step1 先查看端口占用情况:

lsof -i:80

Q-Step2 删除80端口占用进程

kill -9:4054

Q-Step3 重新启动nginx

sudo nginx -c /usr/local/etc/nginx/nginx.conf
sudo nginx -s reload

Q-遇到问题2: 如果发现80端口被占用,用ps -ef | grep nginxlsof -i:80都找不到,可能是因为系统自带的apache启动了所以占用了ngxin80端口。我是修改完端口立马停掉。

sudo apachectl stop

然后执行:

sudo nginx

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值