ubuntu Linux 下的 php 配置文件

ubuntu下, 用apt-get安装的php5默认情况下将配置文件保存在/etc/php5/

以下是我的机器上的情况(加粗的是输入的命令):

1
2
cd /etc/php5/
ls -l */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
apache2/:
总计 68
-rw-r–r– 1 root root 67459 2010-04-09 16:35 php.ini
cgi/:
总计 156
lrwxrwxrwx 1 root root 9 2010-02-21 22:00 conf.d -> ../conf.d
-rw-r–r– 1 root root 44789 2010-06-22 13:12 php.ini
-rw-r–r– 1 root root 44789 2010-05-24 12:01 php.ini~
-rw-r–r– 1 root root 67459 2010-04-09 16:35 php.ini.ucf-dist
cli/:
总计 68
lrwxrwxrwx 1 root root 9 2010-03-19 15:17 conf.d -> ../conf.d
-rw-r–r– 1 root root 67457 2010-04-09 16:35 php.ini
conf.d/:
总计 28
-rw-r–r– 1 root root 229 2010-04-30 12:30 memcache.ini
-rw-r–r– 1 root root 57 2010-04-09 16:35 mysqli.ini
-rw-r–r– 1 root root 56 2010-04-09 16:35 mysql.ini
-rw-r–r– 1 root root 52 2010-04-09 16:35 pdo.ini
-rw-r–r– 1 root root 60 2010-04-09 16:35 pdo_mysql.ini
-rw-r–r– 1 root root 122 2010-06-24 11:55 xdebug.ini
-rw-r–r– 1 root root 122 2010-06-24 11:47 xdebug.ini~

如上所示,/etc/php5下有4个文件夹:apache2 cgi cli conf.d
其中:
apache2 cgi cli下都有php.ini文件,且彼此独立;
cgi cli下有conf.d,且均是指向../conf.d(即/etc/php5/conf.d)的符号链接.
再来看phpinfo的部分输出:

1
2
3
4
5
6
7
8
9
10
Server API	CGI/FastCGI
Configuration File (php.ini) Path /etc/php5/cgi
Loaded Configuration File /etc/php5/cgi/php.ini
Scan this dir for additional .ini files /etc/php5/cgi/conf.d
Additional .ini files parsed /etc/php5/cgi/conf.d/memcache.ini,
/etc/php5/cgi/conf.d/mysql.ini,
/etc/php5/cgi/conf.d/mysqli.ini,
/etc/php5/cgi/conf.d/pdo.ini,
/etc/php5/cgi/conf.d/pdo_mysql.ini,
/etc/php5/cgi/conf.d/xdebug.ini

如上所示,以CGI/FastCGI形式执行php时,会使用相应的cgi文件夹下的php.ini文件,并扫描cgi/conf.d获取附加的配置文件;

同理,如果将php作为shell使用就会使用cli文件下的php.ini和cli/conf.d下的配置文件.

conf.d下的文件,相信大家根据文件名也能看出这些都是另外安装的php模块和附加组件的配置,并且在默认情况下这些配置文件是共用的.

因此,该修改哪个配置文件要视具体情况而定,比如作为apache的模块运行web服务就要修改apache2下的php.ini,以FastCGI的形式在lighttpd和nginx下运行就要修改cgi下的,作为shell脚本运行则修改cli下的.

附加组件的配置默认是3种(数量和具体安装的软件有关)方式共用的,如果想独立设置,也可以将它们写到各自的php.ini中.