了解 php.ini

简介: php.ini 有点复杂首先php运行有命令行模式(比如 composer安装模块依赖)和 web模式(就是打开页面时正常模式)两种模式加载的php.ini可能不一样。

php.ini 有点复杂
首先php运行有命令行模式(比如 composer安装模块依赖)和 web模式(就是打开页面时正常模式)
两种模式加载的php.ini可能不一样。

Windows

在Windows,如果你是用的wamp。命令行模式用到的php.ini在apache2目录下,正常模式,如果你使用的php版本是7.2。则用到的php.ini在php7.2目录下。

MacOS

如果是用brew安装的PHP。跑的是fpm。
新建个test.php。内容 <?php phpinfo() ?>。浏览器运行。
会看到如下信息:
主配置文件是: /usr/local/etc/php/7.1/php.ini
额外的配置文件: /usr/local/etc/php/7.1/conf.d

img_75354350a87389833c1f354270073612.png
image.png

你还可以在 /usr/local/etc/php/7.1/php-fpm.d/www.conf 此文件下面定义配置项。这个文件被 [php-fpm.conf] 包含

  ######设置错误日志的路径
  error_log = /var/log/php-fpm/error.log
  ######引入www.conf文件中的配置
  include=/usr/local/php7.1/etc/php-fpm.d/*.conf
  • www.conf 这是php-fpm进程服务的扩展配置文件 (php-fpm.d目录下)
img_9f117ea0b2c0927b84990ad00c9ffede.png
image.png

可修改范围

img_849206cbf6965000826db3b4ac40c6a7.png
image.png

核心配置选项说明

针对项目使用配置项

在项目入口目录新建 .user.ini

查看命令行模式下加载哪些ini文件

img_4dcba33c644d193a899b822075a02611.png
image.png

参考

http://php.net/configuration.file
https://typecodes.com/web/php7configure.html

问题

mac下如何重启php-fpm?,我在

  1. /usr/local/etc/php/7.1/php-fpm.d/www.conf
  2. 项目入口目录下新建了 .user.ini
  3. /usr/local/etc/php/7.1/conf.d/php-memory-limits.ini
  4. /usr/local/etc/php/7.1/php.ini
  5. /usr/local/etc/php/7.1/conf.d/user.ini

上述5个配置文件都添加了 memory_limit 配置项,值分别是111M 到 555M

  • 生效的是www.conf,然后去掉 www.conf 中的 memory_limit = 111M,重启 brew services restart php71
    值依然是111,非常纳闷。要么不是这么重启,要么还有缓存?
  • 重启电脑后显示memory_limit = 555M, 因为加载顺序。 user.ini 在 php-memory-limits.ini 后面把前面的覆盖了。

监测配置项是否被加载

var_dump(ini_get('curl.cainfo'));

相关文章
|
4月前
|
小程序 前端开发 Linux
PHP代码审计(一)常见ini配置
我这里大概看了一下常见的重要的php.ini配置。 具体详细配置请参照官方网站:
67 0
|
PHP Windows
PHP面试题:PHP.ini路径?
PHP面试题:PHP.ini路径?
89 0
|
网络协议 Memcache
|
安全 PHP
|
Web App开发 PHP Apache