问题描述
我目前正在尝试找到正确的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文件?
最佳解决方法
你在那里的三个文件都是用于不同的用途。
/etc/php/5.6/cli/php.ini
适用于通过在终端上运行php
发现的CLI PHP程序。
/etc/php/5.6/cgi/php.ini
适用于php-cgi系统,该系统未在此设置中特别使用。
/etc/php/5.6/apache2/php.ini
用于Apache使用的PHP插件。这是您需要编辑的变更以应用于您的Apache设置。
/etc/php/5.6/fpm/php.ini
用于php5-fpm
处理器,该处理器是用于PHP处理的fastcgi-compatible ‘wrapper'(例如从NGINX切换到php5-fpm
),并作为系统上的独立进程运行(与Apache PHP插件不同)
For versions of Ubuntu lower than 16.04,
/etc/php/5.6/
,/etc/php/7.0/
,/etc/php/7.1/
, and so on, are replaced by/etc/php5/
and so on. Otherwise, these paths remain accurate. Adapt this accordingly for your environment, replacing the5.6
or number with the actual version folder that exists on your environment.
次佳解决方法
尝试在浏览器<?php phpinfo(); ?>
中运行包含此代码段的脚本,然后尝试搜索Loaded Configuration File之类的内容。此条目指定您的PHP在您的Apache服务器中使用的php.ini。
第三种解决方法
为php7 ubuntu 16.4
/etc/php/7.0/apache2/php.ini
第四种方法
要找到CLI正在使用哪个php.ini
,您可以运行:
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