如何找到PHP的配置文件php.ini的路径?

总是忘记php.ini的位置?修改了php.ini没生效?总结一下在Windows和Centos、Ubuntu等Linux系统中找到PHP配置文件php.ini的几个方法。

一、通过phpinfo查找

如果可以在网页中执行PHP脚本,通过phpinfo()函数可以找到配置文件目录。在网站根目录下创建phpinfo.php,写入PHP代码:

1
2
<?php
phpinfo();

在网页中打开http://127.0.0.1/phpinfo.php,其中Loaded Configuration File就是php.ini的位置:
phpinfo

Loaded Configuration File可能是空的,说明php没有加载php.ini文件,使用的配置是默认的配置。这种情况可以在phpinfo中Configuration File (php.ini) Path指定的目录下创建php.ini文件。

二、使用php --ini命令

如果可以在命令行中执行php脚本,可以执行命令php --ini输出配置文件信息:

1
2
3
4
5
[root@mail ~]# php --ini
Configuration File (php.ini) Path: /usr/local/php7/etc
Loaded Configuration File: /usr/local/php7/etc/php.ini
Scan for additional .ini files in: /usr/local/php7/etc/php.d
Additional .ini files parsed: (none)

其中,Loaded Configuration File的值就是php.ini的位置。

三、locate命令

如果执行php提示命令不存在,说明php安装后没有将php的安装目录放到环境变量中。那么,可以使用locate php.ini命令,查找文件位置:

1
2
3
4
5
[root@mail ~]# locate php.ini
/etc/php.ini
/usr/local/php7/etc/php.ini
/usr/share/doc/php-common-5.4.16/php.ini-development
/usr/share/doc/php-common-5.4.16/php.ini-production

locate是一个保存了文件位置的数据库,可以根据文件名或者正则表达式快速搜索文件。不过这个数据库不是实时更新的,通常每周或每天会更新。所以最近创建的文件可能没有收录到locate数据库中,可以使用命令sudo updatedb来手动更新这个数据库。

四、find命令

如果使用locate命令没有搜索到配置文件,可以使用find命令再整个系统中搜索php.ini的位置:

1
2
3
[root@mail ~]# find / -name php.ini
/etc/php.ini
/usr/local/php7/etc/php.ini

参考