我目前正在尝试找到正确的 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
我也这么做了......
$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
我将它们全部更改为我想要的设置(只是为了确保万无一失)。
我使用重新启动了 apache
sudo service apache2 restart
结果...
* Restarting web server apache2
我重新加载了页面,显示 php.ini 文件尚未更新。
我知道这一点,因为我用过
echo ini_get('post_max_size');
本来应该改为 20M,但实际上只有 2M
我尝试重新启动计算机,想着也许这样可以停止 apache 服务器并使用正确的设置重新加载 php.ini 文件,但遗憾的是这次尝试也失败了。
是否有可能有另一个 php.ini 文件会造成干扰?
答案1
那里的三个文件各自有不同的用途。
/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
处理器,它是与 fastcgi 兼容的 PHP 处理“包装器”(例如从 NGINX 切换到php5-fpm
),并作为系统上的独立进程运行(与 Apache PHP 插件不同)
对于 Ubuntu 版本降低16.04 以上版本中的
/etc/php/5.6/
、/etc/php/7.0/
、/etc/php/7.1/
等将被替换为/etc/php5/
等。否则,这些路径仍然准确。请根据您的环境进行相应调整,将5.6
或 数字替换为您环境中存在的实际版本文件夹。
答案2
要查找php.ini
CLI 正在使用哪个,您可以运行:
php -i | grep 'php.ini'
示例输出:
$ 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
答案3
尝试在浏览器中运行包含此代码片段的脚本<?php phpinfo(); ?>
,然后尝试搜索类似加载配置文件。此条目指定您的 PHP 在 Apache 服务器中使用的 php.ini。
答案4
您可以在终端上运行以下命令找到正在使用的文件:
php --ini