记录一个 Nginx 的操作错误
环境是 Nginx+PHP,错误是这样的:PHP 各个常见函数、语法均可正常使用,但用 $GET 时,Nginx 却始终没有收到 GET 参数。如下测试代码:
<?php $id = $_GET['id']; echo $id; ?>
通过 http://localhost/index.php?id=1 访问,正常情况下浏览器会显示一个 1,但此时却未显示 1。首先不会是浏览器的问题,即便是浏览器的问题,也不会两个浏览器均出问题,PHP 程序本身的问题也基本可以排除,那么就只有 Nginx 的问题,Nginx 我使用的是稳定的版本,所以这个不会是 bug 所致,那就八成是配置问题了。Nginx 的参数是定义在 fastcgiparams 文件里的。仔细看了看该文件的内容,第一行本应该是:
fastcgi_param QUERY_STRING $query_string;
但可能因为我在修改的时候不小心多摁了一下回车,于是第一行是空行,所以导致了问题。我把空行删了,重启 Nginx,恢复正常了。