博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修改php.ini如何生效,修改php.ini不生效
阅读量:7069 次
发布时间:2019-06-28

本文共 1106 字,大约阅读时间需要 3 分钟。

修改php.ini不生效,后来发现,我修改的php.ini生效的地方是local value,在命令行不生效,但是在web请求中可以生效。

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.phpinfo如图:

我设置的129M出现在了local value中。

4982f4440f3d

image.png

4982f4440f3d

image.png

5.异常情况看图,命令行执行这个文件,和走nginx,完全是两个值:

5.1命令行:

4982f4440f3d

image.png

5.2同样的代码在浏览器:

4982f4440f3d

image.png

6.临时解决方法:

宝藏命令,php -d,可以指定PHP以什么值去执行

php -d memory_limit=512M /usr/local/bin/composer install

6.1实战如图:

4982f4440f3d

image.png

7.永久解决方法:

7.1 解决了,淦!配置有缓存,不知道缓存到哪了!!!

7.2 我在 php-fpm.conf 最后一行追加编写了 php_value[memory_limit] = 25M 后,触发了缓存更新机制,php.ini 神奇的生效了,现在 local value 和 master value 一致了。

memory_limit => 149M => 149M

8.总结

首先执行php -ini查看配置文件位置,修改php.ini不生效后查看php-fpm.conf和www.conf文件是否有覆盖操作。如果都没有,查看nginx.conf有没有相关的fastcgi配置。

转载地址:http://qtqll.baihongyu.com/

你可能感兴趣的文章
jira
查看>>
elasticsearch rpm 安装
查看>>
Python基础总结(字符串常用,数字类型转换,基本运算符与流程控制)
查看>>
数据预处理——剔除异常值,平滑,归一化
查看>>
Visual stuido 项目路径的奇怪问题
查看>>
java局部变量和临时变量
查看>>
返回杨辉三角前 n 层的数字
查看>>
布局(2、相对布局)
查看>>
在 Eclipse 上配置tomcat7.0并创建工程发布
查看>>
腾讯移动分析 签名代码示例
查看>>
重新回归博客园,写在开始的话。
查看>>
JavaScript定义函数
查看>>
AJAX的基础
查看>>
闹心的事
查看>>
mysql 刘道成视频教程1、2课----------大致结构
查看>>
android studio 继续汉化 编译项目 菜单
查看>>
Oracle:存储过程的使用
查看>>
封装第三方支付(支付宝、银联、微信支付)
查看>>
[转]记解决一次“HTTP Error 400. The request URL is invalid”的错误
查看>>
安全使用电子邮件十三法
查看>>