两个php.ini; ubuntu下配置文件

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中.

上一篇:org.hibernate.hql.ast.QuerySyntaxException: tb_voteoption is not mapped [from tb_voteoption where voteID=?]


下一篇:Android对方向感应器的封装调用