当前位置:论坛首页 > Linux面板 > 求助

站点配置里添加fastcgi_param 无效

发表在 Linux面板2019-12-14 18:05 [复制链接] 7 6520

  1.     location ~ .*\.(php|php5)?$
  2.     {
  3.     try_files $uri =404;
  4.     fastcgi_pass  unix:/tmp/php-cgi-73.sock;
  5.     fastcgi_index index.php;
  6.     include fastcgi.conf;
  7.     fastcgi_param TEST_DB_NAME 'testdata';
  8.     }
复制代码

我在站点配置里加了以上代码,但是在php里用echo getenv(TEST_DB_NAME); 会报错,

报错内容:

Warning:  Use of undefined constant TEST_DB_NAME - assumed 'TEST_DB_NAME' (this will throw an Error in a future version of PHP)

大佬们 求解!

使用道具 举报 只看该作者 回复
发表于 2019-12-14 18:27:44 | 显示全部楼层
版本不对?
使用道具 举报 回复
发表于 2019-12-14 18:59:45 | 显示全部楼层

sock么?应该没问题呀 我从 /www/server/php/73/etc/php-fpm.conf 找到sock路径的,版本也是PHP 7.3
使用道具 举报 回复 支持 反对
发表于 2019-12-14 21:00:27 | 显示全部楼层
上面的 Warning 是说要用 getenv('TEST_DB_NAME') 而不是 getenv(TEST_DB_NAME)。
另外,如果你需要传递这个变量的话,首先需要先修改一下 /www/server/nginx/conf/fastcgi.conf 这个文件,在里面增加
  1. if ($test_db_name = false) {
  2.     set $test_db_name "";
  3. }
  4. fastcgi_param  TEST_DB_NAME       $test_db_name;
复制代码
批注 2019-12-14 195115.png
增加上面代码后,现在查看 phpinfo(); 会看到多了一个未赋值的环境变量
批注 2019-12-14 195220.png
接下来,将需要对这个变量进行传递,使用 set $test_db_name 'testdata'; 写入伪静态或者配置文件中。
批注 2019-12-14 195509.png
现在你就可以通过 getenv('TEST_DB_NAME'); 获取到这个变量的结果,为了方便演示,这边也是提供 phpinfo(); 截图
批注 2019-12-14 195858.png
另外 getenv 和 $SERVER 超级全局变量是一样的。
使用道具 举报 回复 支持 反对
发表于 2019-12-14 23:49:04 | 显示全部楼层
只是一个警告而已,并不是错误,调整php设置,关闭 display_errors 即可。
使用道具 举报 回复 支持 反对
发表于 2019-12-17 05:12:26 | 显示全部楼层
Xeath 发表于 2019-12-14 21:00
上面的 Warning 是说要用 getenv('TEST_DB_NAME') 而不是 getenv(TEST_DB_NAME)。
另外,如果你需要传递这 ...

谢谢大神!!!!大神6666!好人一生平安!
使用道具 举报 回复 支持 反对
发表于 2019-12-17 10:23:20 | 显示全部楼层
只是一个提示,提示未来的PHP版本可能不会支持
使用道具 举报 回复 支持 反对
发表于 2023-2-14 17:02:36 | 显示全部楼层
依然不起作用
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表