V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
superwhite
V2EX  ›  PHP

求助,修改 PHP .ini 不生效,关于 phpinfo 中的 local value 和 master value

  •  1
     
  •   superwhite · 2020-05-27 22:30:46 +08:00 · 2225 次点击
    这是一个创建于 859 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.关于 local value 和 master value

    第一个是局部值,第二个是全局值。 局部值将覆盖全局值,局部值常在 php 文件设置或者.htaccess 、.user.ini 或者其他非 php.ini 的文件中设置,而全局值在 php.ini 中或者编译时设置。 局部值优先级较高。

    2.按理说,php.ini 的值应该在 master 里。全局生效,现在出现在 local 里,命令行无效,是因为命令行未加载 php.ini?(现在只能 web 请求生效。)

    2.1 举例:命令行执行 php -r echo ini_get()时还是获取的 master value
    2.2 举例:web 请求 a.com/a.php ,a.php 中写 ini_get(),获取的是 local value

    3.环境:windows,docker,lnmp 一键环境,PHP 7.3.11 (cli) (built: Apr 6 2020 14:03:55) ( NTS )。nginx/1.16.1 。CentOS Linux release 7.7.1908 (Core)

    4.不会贴图,更多详情麻烦各位大佬移步 https://www.jianshu.com/p/4982f4440f3d

    6 条回复    2020-05-28 14:01:20 +08:00
    superwhite
        1
    superwhite  
    OP
       2020-05-27 22:39:15 +08:00
    memory_limit => 129M => 129M
    刚刚用 7.3 版本的 PHP 在 windows 上试了下,修改 php.ini,local value 和 master value 同步更新
    superwhite
        2
    superwhite  
    OP
       2020-05-27 22:49:29 +08:00
    Virtual Directory Support => disabled
    Configuration File (php.ini) Path => /usr/local/php/etc
    Loaded Configuration File => /usr/local/php/etc/php.ini
    Scan this dir for additional .ini files => /usr/local/php/conf.d
    Additional .ini files parsed => /usr/local/php/conf.d/005-memcached.ini,
    /usr/local/php/conf.d/007-redis.ini

    这是 php -ini 打出来的目录,都检查过了,php-fpm 里也没有任何关于 memory_limit 的配置
    superwhite
        3
    superwhite  
    OP
       2020-05-27 22:59:21 +08:00
    解决了,淦!配置有缓存,不知道缓存到哪了!!!我在 php-fpm.conf 最后一行追加编写了 php_value[memory_limit] = 25M 后,貌似是触发了缓存更新机制,php.ini 神奇的生效了,现在 local value 和 master value 一致了。
    memory_limit => 149M => 149M
    seabee
        4
    seabee  
       2020-05-28 06:49:06 +08:00 via Android
    没重启?
    sleepm
        5
    sleepm  
       2020-05-28 10:52:33 +08:00
    php-cli 和 php-fpm 用的是两个 php.ini
    superwhite
        6
    superwhite  
    OP
       2020-05-28 14:01:20 +08:00
    @seabee 重启 n 遍了,包括 php-fpm,和整个 lnmp 环境
    @sleepm 用的是同一个,通过 php -ini 命令行能看到。你说的两个是在编译时设置的
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1358 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 17:32 · PVG 01:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.