在Nginx服务器上使用init_get()从php脚本中读取PHP_VALUE,总是返回php.ini默认值


Reading PHP_VALUE from within php script using init_get() on Nginx server always returning php.ini default

我知道,这不是一个与编程问题直接相关的问题,但我理解它是为了匹配程序员常用的规则软件工具,因为我的开发环境依赖于这个软件的工作部分。我在Nginx论坛的Nginx Wiki中找不到任何有用的信息,所以我希望在这个专业平台上找到答案。由于这里有许多其他Nginx相关的问题,我想,这可能不是一个离题的问题。我来自apache背景,并试图将我的服务器迁移到Nginx。在我的网站的配置文件中,我定义了一些fastcgi值来覆盖php.ini文件,我想保持不变,像这样:

fastcgi_param PHP_VALUE "post_max_size = 15M";
fastcgi_param PHP_VALUE "upload_max_filesize = 5M";

还有几个。现在我想知道,我怎么能得到他们从我的PHP脚本。与Apache一样,使用ini_get()不起作用,或者返回php.ini默认值。我在Nginx文档和网页上搜索了一个答案,但是找不到一个。

有人会告诉我,如何实现这一点,请问?

要在nginx上声明多个php_value,您应该像下面这样将单个fastcgi_param PHP_VALUE指令中的值组合起来。否则,只有最后一个被传递给php-fpm进程。

location ~ '.php$ {
    [...]
    fastcgi_param PHP_VALUE "
        post_max_size=15M
        upload_max_filesize=5M
        ";
    [...]
}

我相信这就是为什么你看到默认值或值设置在php.ini,如果你尝试ini_get("post_max_size")