【问题标题】:Differences between `phpinfo()` and `php -i` for same php.ini对于相同的 php.ini,`phpinfo()` 和 `php -i` 之间的区别
【发布时间】:2018-01-15 09:32:55
【问题描述】:

控制台上通过php -i 显示的内容与apache 通过phpinfo() 显示的内容有很多不同。

例如:

  • pdo_mysql 存在于第一种情况,而不是第二种情况。
  • include 指令仅适用于第一种情况。

PHP.INI 文件相同:

控制台php -i:

配置文件 (php.ini) 路径 => /usr/local/etc/php/7.1

加载的配置文件 => /usr/local/etc/php/7.1/php.ini

扫描此目录以获取其他 .ini 文件 => /usr/local/etc/php/7.1/conf.d

解析的其他 .ini 文件 => /usr/local/etc/php/7.1/conf.d/ext-xdebug.ini

PDO 驱动程序 => mysql、odbc、sqlite

VS 网络phpinfo():

配置文件(php.ini)路径/usr/local/lib

加载的配置文件/usr/local/etc/php/7.1/php.ini

扫描此目录以获取其他 .ini 文件(无)

已解析的其他 .ini 文件(无)

PDO 驱动程序 sqlite


更多信息,这里是我的 apache 配置:

LoadModule php7_module /usr/libexec/apache2/libphp7.so

PHPINIDir /usr/local/etc/php/7.1/

AddHandler 应用程序/x-httpd-php .php

和 /usr/local/etc/php/7.1/php.ini 中的 include 指令

include=/usr/local/etc/php/7.1/conf.d/*.ini

每次修改 php.ini 后我都重新启动了 apache。


任何想法,任何线索?

【问题讨论】:

  • 因为某些服务器使用cli-php.ini 文件作为命令行。换句话说,您可能有单独的配置文件,一个用于 Apache,一个用于命令行。
  • @ArtisticPhoenix 正如您在给出的数据中所见,似乎并非如此。加载的php.ini也是一样的。
  • 但是在第二个你错过了这个额外的,ext-xdebug.ini
  • @ArtisticPhoenix 你是对的,这就是我创建这个帖子的原因之一......

标签: php apache configuration php-7


【解决方案1】:

已解决,虽然 php.ini 相同,但在 CLI 和 Apache 上运行了 2 个不同的 PHP7 构建。棘手但解决了!

【讨论】:

  • 要么卸载所有 PHP 实例并重新安装一个,要么确保您的 PHP Apache 模块 (LoadModule php7_module [dir]/libphp7.so) 指向与命令行 PHP (which php) 相同的 PHP 跨度>
  • 就我而言,我用自制软件 (OSX) 重新安装了所有东西
猜你喜欢
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2012-09-01
  • 2020-02-26
  • 2021-12-21
  • 1970-01-01
相关资源
最近更新 更多