摘要:昨天晚上忘記對開發環境做了什么改動,導致今天來了在進行接口調試的時候提示這個大多數情況下來說是一個很簡單的問題配置里面的錯誤。然而我檢查了我的配置,發現并沒有什么問題。
昨天晚上忘記對開發環境做了什么改動,導致今天來了在進行接口調試的時候nginx提示"Primary script unknown",這個大多數情況下來說是一個很簡單的問題:nginx配置里面的script_filename錯誤。然而我檢查了我的nginx配置,發現并沒有什么問題。
location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php5-fpm.sock; try_files $uri =404; }
同時,我也對這個配置進行了驗證,在http模塊的access日志格式配置里面加入請求文件名,并在sever模塊里面使用這個配置
log_format main "$remote_addr - $remote_user [$time_local] "$request" " "$status $body_bytes_sent "$http_referer" " ""$http_user_agent" "$http_x_forwarded_for" $document_uri $request_filename";
access_log "logs/frontapi.access.log" main;
下面是打印的日志,經過驗證,這個配置確實是沒有問題的。
127.0.0.1 - - [18/Mar/2019:12:40:40 +0800] "GET /v1/product/search?category=2 HTTP/1.1" 404 27 "-" "PostmanRuntime/7.6.1" "-" /index.php /Users/xubandit/Documents/www/mmt/mmt-mall-php/frontapi/web/index.php ^C xubanditdeMacBook-Pro:logs xubandit$ ll /Users/xubandit/Documents/www/mmt/mmt-mall-php/frontapi/web/index.php -rwxr-xr-x 1 xubandit staff 570 3 9 16:39 /Users/xubandit/Documents/www/mmt/mmt-mall-php/frontapi/web/index.php
然后又查了php代碼,發現請求根本就沒有到php代碼這邊來,也就是說問題出在了php-fpm,然后就想怎么對php-fpm進行調試,查看了php-fpm的日志,發現日志里面只記錄了php-fpm master進程的信息,子進程里面進行php處理的內容是沒有日志的。
只能進行進程調試了,然而發現macos下面并沒有strace這個工具,好在有個替代品dtruss
xubanditdeMacBook-Pro:php-fpm.d xubandit$ sudo dtruss -p 13735 dtrace: system integrity protection is on, some features will not be available SYSCALL(args) = return poll(0x7FFEE3A437B0, 0x1, 0x1388) = 1 0 getrusage(0x0, 0x7FFEE3A43670, 0x0) = 0 0 getrusage(0xFFFFFFFFFFFFFFFF, 0x7FFEE3A43670, 0x0) = 0 0 dtrace: error on enabled probe ID 2174 (ID 159: syscall::read:return): invalid kernel access in action #12 at DIF offset 68 dtrace: error on enabled probe ID 2174 (ID 159: syscall::read:return): invalid kernel access in action #12 at DIF offset 68 dtrace: error on enabled probe ID 2174 (ID 159: syscall::read:return): invalid kernel access in action #12 at DIF offset 68 dtrace: error on enabled probe ID 2174 (ID 159: syscall::read:return): invalid kernel access in action #12 at DIF offset 68 dtrace: error on enabled probe ID 2174 (ID 159: syscall::read:return): invalid kernel access in action #12 at DIF offset 68 lstat64("/Users/xubandit/Documents/www/mmt/mmt-mall-php/frontapi/web/index.php