C:\wamp\bin\apache\apache2.4.17\bin\php.ini 用于web访问时的配置文件,
C:\wamp\bin\php\php5.6.15\php.ini 用于cli [command-line interface命令行界面,win下配置环境变量]命令行使用时的配置文件
当server上有两个PHP.ini时,
一个作用于cli,另一个作用于Apache,
在扩展php共享库时一定要将两个php.ini都配置好,
否则可能出现同样的方法通过cli可以正常执行,但接口调用就找不到。
=======================================================================================================================
通过apt-get方式安装PHP和自己手动编译两种方式的配置文件有些差异。这里只说下通过apt-get方式安装的情况(我没自己编译过)。
配置文件默认放在/etc/php5目录下。
以下是我机器中/etc/php5目录详情:
--------------------------------
/etc/php5$>ls -l */
apache2/:
总计 68
lrwxrwxrwx 1 root root 9 2010-11-22 23:21 conf.d -> ../conf.d
-rw-r--r-- 1 root root 67547 2010-10-15 22:33 php.ini
cli/:
总计 68
lrwxrwxrwx 1 root root 9 2010-11-22 23:21 conf.d -> ../conf.d
-rw-r--r-- 1 root root 67545 2010-10-15 22:33 php.ini
conf.d/:
总计 8
-rw-r--r-- 1 root root 54 2010-10-15 22:33 curl.ini
-rw-r--r-- 1 root root 52 2010-10-15 22:33 pdo.ini
-----------------------------------
可以看出,在etc/php5目录下有三个文件夹:apache2,cli,conf.d。
其中
apache2,cli下都有php.ini文件,且彼此独立;
apache2,cli下有conf.d,且均是指向../conf.d(即/etc/php5/conf.d)的符号链接。
不同的SAPI【sapi介绍 http://www.phpddt.com/php/php-sapi.html】使用不同的配置文件。如果是apache,则使用etc/php5/apache2目录下的配置文件,如果是命令行(CLI)则使用/etc /php5/cli目录下的配置文件。而/etc/php5/conf.d目录下的*.ini文件是针对某一扩展的额外配置文件,且是通用的(所以其他俩 个目录都有到这个目录的符号链接)。
由此我们可以知道php的配置文件被分割成了俩部分,一部分是主配置文件(php.ini),另一部分是额外的配置文件(如配置某个扩展的配置文件curl.ini)。另外不同的SAPI有各自独立的主配置文件(php.ini)。
以上是通过apt-get方式安装的情况。通常情况下,PHP配置文件只有一个,即php.ini。所有配置信息都在这一个文件里。然而分开配置使配置信息更加清晰和模块化。
通过phpinfo()可以找到配置文件路径的相关信息。
--------------
<?php phpinfo(); ?>
------------------
在浏览器中打开showinf.php,会看相关信息,下面是节选:
可以看到系统会自动扫描conf.d下的*.ini文件。
因此,该修改哪个配置文件要视具体情况而定,比如作为apache的模块运行web服务就要修改apache2下的php.ini,作为shell脚本运行则修改cli下的.
附加组件的配置信息写到各自的×.ini中.