新买回来的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 nginx
和lsof -i:80
都找不到,可能是因为系统自带的apache启动了所以占用了ngxin80端口。我是修改完端口立马停掉。
sudo apachectl stop
然后执行:
sudo nginx