502 Bad Gateway : upstream prematurely closed connection while reading response header from upstream #1450
Description
Description
[error] 8240#0: 1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: .test, request: "POST /login HTTP/2.0", upstream: "fastcgi://unix:/Users//.config/valet/valet82.sock:", host: ".test", referrer: "https://*.test/login"
Steps To Reproduce
- install nginx (v1.25.2) independently using brew, execute command "brew install nginx"
- install php (php@8.2) independently using brew, execute command "brew install php"
- run php artisan serve, it works!
- install valet, execute command "composer global require laravel/valet"
- then execute command "valet install"
- then go to "Sites" folder, execute command "valet park"
- then go to project directory folder, execute command "valet link", "valet secure", and "valet isolate php"
- then access the site ***.test, error 502 appear
Diagnosis
sw_vers
ProductName: macOS ProductVersion: 13.2.1 BuildVersion: 22D68
valet --version
Laravel Valet 4.3.0
cat ~/.config/valet/config.json
{ "tld": "test", "loopback": "127.0.0.1", "paths": [ "/Users/***/.config/valet/Sites", "/Users/***/Sites" ] }
cat ~/.composer/composer.json
{ "require": { "laravel/installer": "^4.5", "laravel/valet": "^4.3" } }
composer global diagnose
Changed current directory to /Users/***/.composer Checking composer.json: WARNING No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license. Checking platform settings: OK Checking git settings: OK git version 2.39.2 Checking http connectivity to packagist: OK Checking https connectivity to packagist: OK Checking github.com rate limit: OK Checking disk free space: OK Checking pubkeys: FAIL Missing pubkey for tags verification Missing pubkey for dev verification Run composer self-update --update-keys to set them up Checking composer version: You are not running the latest stable version, run `composer self-update` to update (2.5.8 => 2.6.3) Composer version: 2.5.8 PHP version: 8.2.10 PHP binary path: /opt/homebrew/Cellar/php/8.2.10/bin/php OpenSSL version: OpenSSL 3.1.2 1 Aug 2023 cURL version: 8.3.0 libz 1.2.11 ssl (SecureTransport) OpenSSL/3.1.3 zip: extension present, unzip present, 7-Zip not available
composer global outdated
Changed current directory to /Users/***/.composer Legend: ! patch or minor release available - update recommended ~ major release available - update possibleDirect dependencies required in composer.json:
laravel/installer v4.5.1 ~ v5.1.1 Laravel application installer.Transitive dependencies not required in composer.json:
Everything up to date
ls -al /etc/sudoers.d/
total 0 drwxr-xr-x 2 root wheel 64 Feb 9 2023 . drwxr-xr-x 82 root wheel 2624 Sep 26 05:46 ..
brew config
HOMEBREW_VERSION: 4.1.13 ORIGIN: https://github.com/Homebrew/brew HEAD: a8519f78fb63f2f2266950bdd8141037da69f8bd Last commit: 11 hours ago Core tap JSON: 25 Sep 23:16 UTC HOMEBREW_PREFIX: /opt/homebrew HOMEBREW_CASK_OPTS: [] HOMEBREW_MAKE_JOBS: 8 Homebrew Ruby: 2.6.10 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby CPU: octa-core 64-bit arm_firestorm_icestorm Clang: 14.0.3 build 1403 Git: 2.39.2 => /Library/Developer/CommandLineTools/usr/bin/git Curl: 7.86.0 => /usr/bin/curl macOS: 13.2.1-arm64 CLT: 14.3.1.0.1.1683849156 Xcode: N/A Rosetta 2: false
brew services list
Name Status User File dnsmasq none root mysql none nginx none root php none root postgresql@14 started *** ~/Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist
brew list --formula --versions | grep -E "(php|nginx|dnsmasq|mariadb|mysql|mailhog|openssl)(@\d\..*)?\s"
dnsmasq 2.89 mysql 8.1.0 nginx 1.25.2 php 8.2.10
brew outdated
brew tap
homebrew/services
php -v
PHP 8.2.10 (cli) (built: Aug 31 2023 18:52:55) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.10, Copyright (c) Zend Technologies with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies
which -a php
/opt/homebrew/bin/php
php --ini
Configuration File (php.ini) Path: /opt/homebrew/etc/php/8.2 Loaded Configuration File: /opt/homebrew/etc/php/8.2/php.ini Scan for additional .ini files in: /opt/homebrew/etc/php/8.2/conf.d Additional .ini files parsed: /opt/homebrew/etc/php/8.2/conf.d/error_log.ini, /opt/homebrew/etc/php/8.2/conf.d/ext-opcache.ini, /opt/homebrew/etc/php/8.2/conf.d/php-memory-limits.ini
nginx -v
nginx version: nginx/1.25.2
curl --version
curl 7.86.0 (x86_64-apple-darwin22.0) libcurl/7.86.0 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.47.0 Release-Date: 2022-10-26 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL threadsafe UnixSockets
php --ri curl
curlcURL support => enabled
cURL Information => 8.3.0
Age => 10
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => No
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => Yes
SPNEGO => Yes
SSL => Yes
SSPI => No
TLS-SRP => Yes
HTTP2 => Yes
GSSAPI => Yes
KERBEROS5 => Yes
UNIX_SOCKETS => Yes
PSL => No
HTTPS_PROXY => Yes
MULTI_SSL => Yes
BROTLI => Yes
ALTSVC => Yes
HTTP3 => No
UNICODE => No
ZSTD => Yes
HSTS => Yes
GSASL => No
Protocols => dict, file, ftp, ftps, gopher, gophers, http, https, imap, imaps, ldap, ldaps, mqtt, pop3, pop3s, rtmp, rtmpe, rtmps, rtmpt, rtmpte, rtmpts, rtsp, scp, sftp, smb, smbs, smtp, smtps, telnet, tftp
Host => aarch64-apple-darwin22.6.0
SSL Version => (SecureTransport) OpenSSL/3.1.3
ZLib Version => 1.2.11
libSSH Version => libssh2/1.11.0Directive => Local Value => Master Value
curl.cainfo => no value => no value
/opt/homebrew/bin/ngrok version
sudo: /opt/homebrew/bin/ngrok: command not found
ls -al ~/.ngrok2
ls: /Users/***/.ngrok2: No such file or directory
brew info nginx
==> nginx: stable 1.25.2 (bottled), HEAD HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server https://nginx.org/ /opt/homebrew/Cellar/nginx/1.25.2 (26 files, 2.4MB) * Poured from bottle using the formulae.brew.sh API on 2023-09-26 at 05:48:26 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb License: BSD-2-Clause ==> Dependencies Required: openssl@3, pcre2 ==> Options --HEAD Install HEAD version ==> Caveats Docroot is: /opt/homebrew/var/wwwThe default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.nginx will load all files in /opt/homebrew/etc/nginx/servers/.
To start nginx now and restart at login:
brew services start nginx
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/nginx/bin/nginx -g daemon\ off;
==> Analytics
install: 14,070 (30 days), 46,169 (90 days), 109,876 (365 days)
install-on-request: 14,036 (30 days), 46,085 (90 days), 109,703 (365 days)
build-error: 1 (30 days)
brew info php
==> php: stable 8.2.10 (bottled), HEAD General-purpose scripting language https://www.php.net/ /opt/homebrew/Cellar/php/8.2.10 (521 files, 83.5MB) * Poured from bottle using the formulae.brew.sh API on 2023-09-26 at 05:49:15 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/p/php.rb License: PHP-3.01 ==> Dependencies Build: httpd, pkg-config Required: apr, apr-util, argon2, aspell, autoconf, curl, freetds, gd, gettext, gmp, icu4c, krb5, libpq, libsodium, libzip, oniguruma, openldap, openssl@3, pcre2, sqlite, tidy-html5, unixodbc ==> Options --HEAD Install HEAD version ==> Caveats To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.htmlThe php.ini and php-fpm.ini file can be found in:
/opt/homebrew/etc/php/8.2/To start php now and restart at login:
brew services start php
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/php/sbin/php-fpm --nodaemonize
==> Analytics
install: 57,073 (30 days), 149,262 (90 days), 326,665 (365 days)
install-on-request: 53,269 (30 days), 138,941 (90 days), 303,259 (365 days)
build-error: 31 (30 days)
brew info openssl
==> openssl@3: stable 3.1.3 (bottled) Cryptography and SSL/TLS Toolkit https://openssl.org/ /opt/homebrew/Cellar/openssl@3/3.1.3 (6,495 files, 28.4MB) * Poured from bottle using the formulae.brew.sh API on 2023-09-25 at 22:46:33 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openssl@3.rb License: Apache-2.0 ==> Dependencies Required: ca-certificates ==> Caveats A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /opt/homebrew/etc/openssl@3/certsand run
/opt/homebrew/opt/openssl@3/bin/c_rehash
==> Analytics
install: 358,981 (30 days), 1,137,637 (90 days), 1,707,199 (365 days)
install-on-request: 35,453 (30 days), 111,951 (90 days), 312,438 (365 days)
build-error: 1,379 (30 days)
openssl version -a
OpenSSL 3.1.3 19 Sep 2023 (Library: OpenSSL 3.1.3 19 Sep 2023) built on: Tue Sep 19 13:01:49 2023 UTC platform: darwin64-arm64-cc options: bn(64,64) compiler: clang -fPIC -arch arm64 -O3 -Wall -DL_ENDIAN -DOPENSSL_PIC -D_REENTRANT -DOPENSSL_BUILDING_OPENSSL -DNDEBUG OPENSSLDIR: "/opt/homebrew/etc/openssl@3" ENGINESDIR: "/opt/homebrew/Cellar/openssl@3/3.1.3/lib/engines-3" MODULESDIR: "/opt/homebrew/Cellar/openssl@3/3.1.3/lib/ossl-modules" Seeding source: os-specific CPUINFO: OPENSSL_armcap=0x187d
openssl ciphers
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:RSA-PSK-AES256-GCM-SHA384:DHE-PSK-AES256-GCM-SHA384:RSA-PSK-CHACHA20-POLY1305:DHE-PSK-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:AES256-GCM-SHA384:PSK-AES256-GCM-SHA384:PSK-CHACHA20-POLY1305:RSA-PSK-AES128-GCM-SHA256:DHE-PSK-AES128-GCM-SHA256:AES128-GCM-SHA256:PSK-AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:ECDHE-PSK-AES256-CBC-SHA384:ECDHE-PSK-AES256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:SRP-AES-256-CBC-SHA:RSA-PSK-AES256-CBC-SHA384:DHE-PSK-AES256-CBC-SHA384:RSA-PSK-AES256-CBC-SHA:DHE-PSK-AES256-CBC-SHA:AES256-SHA:PSK-AES256-CBC-SHA384:PSK-AES256-CBC-SHA:ECDHE-PSK-AES128-CBC-SHA256:ECDHE-PSK-AES128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:SRP-AES-128-CBC-SHA:RSA-PSK-AES128-CBC-SHA256:DHE-PSK-AES128-CBC-SHA256:RSA-PSK-AES128-CBC-SHA:DHE-PSK-AES128-CBC-SHA:AES128-SHA:PSK-AES128-CBC-SHA256:PSK-AES128-CBC-SHA
sudo nginx -t
nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in /Users/***/.config/valet/Nginx/***.test:10 nginx: [warn] the "http2_push_preload" directive is obsolete, ignored in /Users/***/.config/valet/Nginx/***.test:16 nginx: the configuration file /opt/homebrew/etc/nginx/nginx.conf syntax is ok nginx: configuration file /opt/homebrew/etc/nginx/nginx.conf test is successful
which -a php-fpm
/opt/homebrew/sbin/php-fpm
/opt/homebrew/opt/php/sbin/php-fpm -v
PHP 8.2.10 (fpm-fcgi) (built: Aug 31 2023 18:52:57) Copyright (c) The PHP Group Zend Engine v4.2.10, Copyright (c) Zend Technologies with Zend OPcache v8.2.10, Copyright (c), by Zend Technologies
sudo /opt/homebrew/opt/php/sbin/php-fpm -y /opt/homebrew/etc/php/8.2/php-fpm.conf --test
[26-Sep-2023 06:17:09] NOTICE: configuration file /opt/homebrew/etc/php/8.2/php-fpm.conf test is successful
ls -al ~/Library/LaunchAgents | grep homebrew
-rw-r--r-- 1 *** staff 929 Sep 26 04:40 homebrew.mxcl.postgresql@14.plist
ls -al /Library/LaunchAgents | grep homebrew
ls -al /Library/LaunchDaemons | grep homebrew
-rw-r--r-- 1 root admin 797 Sep 26 05:54 homebrew.mxcl.dnsmasq.plist -rw-r--r-- 1 root admin 685 Sep 26 05:57 homebrew.mxcl.nginx.plist -rw-r--r-- 1 root admin 781 Sep 26 05:57 homebrew.mxcl.php.plist -rw-r--r-- 1 root admin 789 Jul 18 12:57 homebrew.mxcl.php@7.3.plist
ls -al /Library/LaunchDaemons | grep "com.laravel.valet."
ls -aln /etc/resolv.conf
lrwxr-xr-x 1 0 0 22 Feb 9 2023 /etc/resolv.conf -> ../var/run/resolv.conf
cat /etc/resolv.conf
# # macOS Notice # # This file is not consulted for DNS hostname resolution, address # resolution, or the DNS query routing mechanism used by most # processes on this system. # # To view the DNS configuration used by this system, use: # scutil --dns # # SEE ALSO # dns-sd(1), scutil(8) # # This file is automatically generated. # nameserver 192.168.8.1
ifconfig lo0
lo0: flags=8049 mtu 16384 options=1203 inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201
sh -c 'echo "------\n/opt/homebrew/etc/nginx/valet/valet.conf\n---\n"; cat /opt/homebrew/etc/nginx/valet/valet.conf | grep -n "# valet loopback"; echo "\n------\n"'
------ /opt/homebrew/etc/nginx/valet/valet.conf ---3: #listen VALET_LOOPBACK:80; # valet loopback
------
sh -c 'for file in ~/.config/valet/dnsmasq.d/*; do echo "------\n~/.config/valet/dnsmasq.d/$(basename $file)\n---\n"; cat $file; echo "\n------\n"; done'
------ ~/.config/valet/dnsmasq.d/tld-test.conf ---address=/.test/127.0.0.1
listen-address=127.0.0.1------
sh -c 'for file in ~/.config/valet/nginx/*; do echo "------\n~/.config/valet/nginx/$(basename $file)\n---\n"; cat $file | grep -n "# valet loopback"; echo "\n------\n"; done'
------ ~/.config/valet/nginx/***.test ---4: #listen 127.0.0.1:80; # valet loopback
11: #listen 127.0.0.1:443 ssl http2; # valet loopback
55: #listen 127.0.0.1:60; # valet loopback------