Mac Nginx 安装(源文件安装)

1. 获取 Nginx,在 http://nginx.org/en/download.html 上可以获取当前最新的版本(稳定版)。

2. 解压缩 nginx-xx.tar.gz 包。

3. 使用Mac 终端进入解压缩目录,执行

$ ./configure

$ sudo make

$ sudo make install

nginx启动文件 保存到了: /usr/local/nginx/sbin/nginx

nginx配置文件保存到了:/usr/local/etc/nginx/nginx.conf

4. 启动nginx:

 $ sudo  /usr/local/nginx/sbin/nginx,

5. 浏览器访问:http://localhost,就会出现nginx的欢迎界面

6. 补充一些东西,每次使用sudo  /usr/local/nginx/sbin/nginx  对nginx操作比较麻烦,如何可以直接使用sudo nginx 该多好,开整,需要做一个/usr/local/nginx/sbin/nginx 的替身到/usr/local/bin/nginx(为啥是这个路径,因为mac终端所有快捷命令都在这个下面,至于怎么改这个路径我也不会),做替身就需要用到一个叫软链接的东西(至于啥叫软链接,就相当于windows桌面的那些快捷方式),命令是 ln -s,终端输入         

$ sudo ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin/nginx

$sudo nginx

快捷方式也做好了,以后就可以直接使用以下命令启动nginx

7. 启动nginx

$sudo nginx

8. 重启nginx

$sudo nginx -s reload

9. 关闭nginx

$sudo nginx -s stop

 至于为啥要用 -s 我也不知道,你们知道可以告诉我

一些常见的问题整理

问题1. 重启nginx 报错

localhost:~ wany$ sudo nginx -s reload

Password:

nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

出现该问题的原因是没有nginx.pid 这个文件,这里先讲一个小知识

$sudo nginx  (执行该命令之后,nginx 会在 /usr/local/var/run/ 路径下创建一个名为nginx.pid 的文件 )

$sudo nginx -s stop  (执行该命令之后,nginx 会将 /usr/local/var/run/ 路径下名为nginx.pid 的文件删除掉。但前提是/usr/local/var/run/ 路径下必须存在 nginx.pid 文件)

$sudo nginx -s reload  (执行该命令之后,nginx会重新启动,但前提是/usr/local/var/run/ 路径下必须存在 nginx.pid 文件)

所以在执行$sudo nginx -s stop 或者 $sudo nginx -s reload 命令时,如果nginx.pid 文件不存在自然也就会报以上的错误喽

解决方法:

启动一下nginx就好了

$sudo nginx

问题2. 启动nginx报错

localhost:run wany$ sudo nginx

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)

nginx: [emerg] still could not bind()

出现该问题的原因是/usr/local/var/run/nginx.pid  文件已经存在,也就是说nginx已经启动了,再次执行启动nginx,就会出现这种问题了,接口被占用了

解决方法:

重启nginx,而不是启动nginx

$sudo nginx -s reload   (重启nginx)

重点是要理解其中的原理,而不是局限于这几行命令

欢迎关注我的公众号

推荐阅读更多精彩内容