我遇到了同样的问题,无法像在Apache中那样轻松地在nginx中设置环境变量。
实际上,您的第一个解决方案不起作用,因为内容“指令的附加参数”放置在MAMP生成的此指令之后。location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_php7.2.1.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
您的位置指令随后被nginx忽略,因为它位于MAMP在同一位置(.php $)生成的位置指令之后。
这是解决方法。 MAMP在每次服务器启动时重新创建nginx.conf文件。这是使用模板创建的。您实际上可以修改模板以生成适合您需要的conf文件。
我编辑了nginx.cenf模板,以在由MAMP创建位置之前,立即添加“指令的附加参数”框的内容。在MAMP中编辑nginx.conf。文件>编辑模板> nginx
找到关键字MAMP_VirtualHost_AdditionalCustom_MAMP并将其删除
将相同的指令放在此块的前面MAMP_VirtualHost_AdditionalCustom_MAMP
MAMP_Nginx_ReverseProxy_IF_MAMP
# proxy the PHP scripts to Apache
location ~ \.php$ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://MAMP_Apache_IP_MAMP:MAMP_Apache_Port_MAMP;
}
MAMP_Nginx_ReverseProxy_ELSE_MAMP
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/Applications/MAMP/Library/logs/fastcgi/nginxFastCGI_phpMAMP_PhpHost_MAMP.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /Applications/MAMP/conf/nginx/fastcgi_params;
}
MAMP_Nginx_ReverseProxy_END_MAMP
重新启动后对我有效。您可以摆弄更复杂的解决方案。