找到正确的 php.ini 文件

Mic*_*ael 196 php apache2

我目前正在尝试找到正确的 php.ini 文件来编辑它并重新启动 apache,这样更改就会发生,我很难过。

我找到了三个不同的 php.ini 文件(不知道为什么有三个)这就是我找到这些文件的方式

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
Run Code Online (Sandbox Code Playgroud)

我也做过....

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Run Code Online (Sandbox Code Playgroud)

我将所有这些(只是为了确定)更改为我想要的设置。

我使用重新启动了apache

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

结果...

* Restarting web server apache2
Run Code Online (Sandbox Code Playgroud)

我重新加载了页面,它显示 php.ini 文件没有更新。

我知道这是因为我用过

echo ini_get('post_max_size');
Run Code Online (Sandbox Code Playgroud)

本来应该改成20M的,结果还是只有2M

我尝试重新启动计算机,认为这可能会停止 apache 服务器并使用正确的设置重新加载 php.ini 文件,但可惜这种尝试也失败了。

是否有可能存在另一个可能干扰的 php.ini 文件?

Tho*_*ard 328

您拥有的三个文件分别用于不同的用途。

/etc/php/5.6/cli/php.ini用于 CLI PHP 程序,您可以通过php在终端上运行找到该程序。

/etc/php/5.6/cgi/php.ini 用于在此设置中未专门使用的 php-cgi 系统。

/etc/php/5.6/apache2/php.ini用于 Apache 使用的 PHP 插件。 这是您需要编辑以将更改应用于 Apache 设置的更改,该设置使用内置的 PHP 模块到 Apache。

/etc/php/5.6/fpm/php.ini用于php5-fpm处理器,它是用于 PHP 处理的 fastcgi 兼容的“包装器”(例如从 NGINX 切换到php5-fpm)并作为系统上的独立进程运行(与 Apache PHP 插件不同)

对于低于16.04的 Ubuntu 版本,/etc/php/5.6//etc/php/7.0//etc/php/7.1/、 等替换为/etc/php5/等。否则,这些路径将保持准确。根据您的环境进行相应调整,将5.6或 编号替换为您环境中存在的实际版本文件夹。

  • 在 /etc/php5/apache2 目录中找不到 php.ini。但它在 cli 目录中可用。 (2认同)
  • @anujsharma9196 出现这种情况的唯一原因是您没有使用 Apache 为 PHP 构建的插件。直到今天,文件路径仍然按照此处列出的方式工作(在我的 15.04 VM 上确认) (2认同)

小智 27

要查找php.ini正在使用的 CLI,您可以运行:

php -i | grep 'php.ini'
Run Code Online (Sandbox Code Playgroud)

示例输出:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Run Code Online (Sandbox Code Playgroud)

  • 这很好,但只会为 php 提供 cli 加载的配置。要获取 apache 加载的配置,它需要在网页上执行 phpinfo()。 (3认同)

Jus*_*año 25

尝试在浏览器中运行包含此代码段的脚本<?php phpinfo(); ?>,然后尝试搜索类似Loaded Configuration File 的内容。此项指定您的 PHP 在您的 Apache 服务器中使用的 php.ini。


小智 15

对于 php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

  • 我缺少那个文件。哪个包提供该文件? (2认同)

小智 7

您可以通过在终端上运行以下命令来找到正在使用的文件:

php --ini
Run Code Online (Sandbox Code Playgroud)