用brew安裝nginx並配置

安裝流程

這裏使用 brew 來安裝軟件。php

  • 安裝
brew install nginx
  • 查看安裝信息(常常用到, 好比查看安裝目錄等)
brew info nginx


安裝後,主要看brew把nginx安裝到哪裏去了,默認是安裝到/usr/local/etc/nginx/nginx.confhtml


經常使用命令記錄

若是很差使,統一在命令前面加上sudo;java

  • 查看nginx版本
nginx -v
  • 啓動nginx服務
brew services start nginx

訪問:http://localhost:8080/後,看到以下內容就是啓動成功了。
nginx

若是沒有啓動成功,查看一下進程,ps -ef|grep nginx
git

# 查看報錯文件的路徑
➜  ~ nginx -V
nginx version: nginx/1.17.9
built by clang 11.0.0 (clang-1100.0.33.17)
built with OpenSSL 1.1.1d  10 Sep 2019 (running with OpenSSL 1.1.1f  31 Mar 2020)
TLS SNI support enabled
configure arguments: --prefix=/usr/local/Cellar/nginx/1.17.9 --sbin-path=/usr/local/Cellar/nginx/1.17.9/bin/nginx --with-cc-opt='-I/usr/local/opt/pcre/include -I/usr/local/opt/openssl@1.1/include' --with-ld-opt='-L/usr/local/opt/pcre/lib -L/usr/local/opt/openssl@1.1/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --pid-path=/usr/local/var/run/nginx.pid --lock-path=/usr/local/var/run/nginx.lock --http-client-body-temp-path=/usr/local/var/run/nginx/client_body_temp --http-proxy-temp-path=/usr/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path=/usr/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path=/usr/local/var/run/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/var/run/nginx/scgi_temp --http-log-path=/usr/local/var/log/nginx/access.log --error-log-path=/usr/local/var/log/nginx/error.log --with-compat --with-debug --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-ipv6 --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module

path=/usr/local/var/log/nginx/error.logweb

tail -f *
  • 從新加載nginx
# 答應我,有任何一丁點修改過nginx的配置文件後,都第一時間從新加載一遍nginx  好嗎!
# 答應我,有任何一丁點修改過nginx的配置文件後,都第一時間從新加載一遍nginx  好嗎!
# 答應我,有任何一丁點修改過nginx的配置文件後,都第一時間從新加載一遍nginx  好嗎!否則你就無法使 你修改的過的功能。

brew services restart nginx
  • 關閉nginx服務
brew services stop nginx


典型配置方式

/usr/local/etc/nginx/nginx.conf主配置文件裏 ,配置一個包含屬性,內容以下:shell

# 省略...
include servers/*;
# 意思是加載當前目錄下 .servers文件夾內的配置文件,都會被加載進來

/usr/local/etc/nginx/servers 路徑下,配置了一個轉發服務,文件叫localhost_80.conf,內容以下:dom

server {
        listen        80;
        server_name  localhost;
        root   "/Users/thoth/program/nginxweb";
        location / {
            index index.php index.html;
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

這個能夠做爲你的模版,你修改一下server_nameroot便可。ide

server_name  www.test.com;
        root   "/Users/thoth/program/testdir";

查看啓動狀態是否有報錯

  1. nginx -t
nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() "/usr/local/Cellar/nginx/1.17.9/logs/error.log" failed (2: No such file or directory)  # 有報錯
nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

➜  ~ nginx -t
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
  1. 查看進程是否都起來了
➜  ~ ps -ef | grep nginx
    0  6419     1   0  6:59下午 ??         0:00.01 nginx: master process /usr/local/opt/nginx/bin/nginx -g daemon off;
   -2  6424  6419   0  6:59下午 ??         0:00.00 nginx: worker process
  501  6474  1018   0  7:03下午 ttys016    0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox nginx
  1. 查看端口是否被佔用
    是否是打開了burp suite的8080攔截。


php 啓動

關閉php-fpmsvn

sudo  killall  php-fpm

啓動php-fpm

sudo  php-fpm

若是用brew安裝的能夠

brew services start php

重啓php-fpm
先關閉php-fpm、再自動php-fpm便可

sudo  killall  php-fpm
sudo  php-fpm

參考

https://www.jianshu.com/p/6c7cb820a020
http://jalan.space/2017/01/12/2017-01-13-mac-os-nginx/
https://blog.csdn.net/weixin_42896137/article/details/88797094
https://blog.csdn.net/leiflyy/article/details/77717524 # mac 啓動php 報錯解決

相關文章
相關標籤/搜索