我目前正在尝试查找正确的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


我将所有它们(只是为了确定)都更改为所需的设置。

我使用

sudo service apache2 restart


结果...

* Restarting web server apache2


我重新加载了页面,结果表明php.ini文件未更新。

我知道这是因为我使用过

echo ini_get('post_max_size');


本应更改为20M,但仍然只有2M

我尝试重新启动计算机思维也许那会停止apache服务器并以正确的设置重新加载php.ini文件,但是可惜尝试也失败了。

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

评论

“正确”的是在apache2子目录中

使用updateb;找到php.ini而不是find。

@Michael在Ubuntu 16.04 LTS Xenial Xerus中,文件为/etc/php/5.6/apache2/php.ini,其中5.6 /是安装的php版本。首先将文件复制到php.original.ini,然后使用sudo gedit打开编辑/etc/php/5.6/apache2/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设置,该更改利用Apache的内置PHP模块。

/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或编号替换为您环境中存在的实际版本文件夹。


评论


在/ etc / php5 / apache2目录中找不到php.ini。但可以在cli目录中找到。

– Anuj TBE
2015年6月5日下午6:15

@ anujsharma9196唯一的原因是,如果您没有使用Apache构建的PHP插件。到目前为止,文件路径仍按此处列出的方式工作(已在我的15.04 VM上确认)

–托马斯·沃德♦
2015年6月5日在10:53



并且,如果您安装了多个PHP版本,请使用ll / etc / apache2 / mods-enabled / php *检查活动的PHP版本,这将为您提供有关该版本的提示。

–马修
20 Mar 27 '20 at 12:08

是的,但是重启php的命令是什么-不只是sudo service apache2 restart ...

– NoBugs
20/12/23在6:38

@NoBugs是另一个问题。这取决于PHP的安装方式(PHP组件的Apache插件,FPM或CGI安装都使用不同的重启调用)

–托马斯·沃德♦
20/12/23在6:50

#2 楼

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

#3 楼

要查找正在使用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


评论


这应该是公认的答案!

– MarceloÁgil
18年7月4日在13:49

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

– Dipu Raj
19年7月9日在6:16

#4 楼

适用于php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini


评论


我缺少该文件。哪个软件包提供了该文件?

– Galmok
16-09-7在7:21

适用于Ubuntu 16.4上的php7

– Softmixt
16-10-3在7:04

#5 楼

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

php --ini


#6 楼

我在Amazon Lightsail的LAMP堆栈上,适用于我的Ubuntu服务器的正确php.ini文件的位置是:
/opt/bitnami/php/etc/php.ini