ubuntu Linux 下的php配置文件

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

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

$ cd /etc/php5/
$ ls -l */
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的部分输出:
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中.

Posted in tip | Tagged | Leave a comment

MySQL LOAD DATA LOCAL INFILE Skipped

使用MySQL的LOAD DATA LOCAL INFILE载入文件时可能会遇到部分记录没有导入(在执行结果反馈的信息中显示为Skipped: n)的情况.
如果你想知道哪些记录被跳过了,请使用LOAD DATA INFILE,它不会跳过那些记录,而是提示错误和出错的原因.
以下是MySQL文档中关于这个问题的tips.
Posted by Clive le Roux on February 2 2009 12:20am [Delete] [Edit]

If you get “Skipped records” using “LOAD DATA LOCAL INFILE” copy the data file to the actual database server and do the load without the “LOCAL” keyword.
This will then stop when an error occurs, 9 times out of 10 it will be index issues and you will know why there are skipped records.

e.g. LOAD DATA LOCAL INFILE ‘myinfile.txt’;
Query OK, 288168 rows affected (1 min 44.49 sec)
Records: 494522 Deleted: 0 Skipped: 206354 Warnings: 0

LOAD DATA INFILE ‘/data/input/myinfile.txt’;
Query OK, 252243 rows affected (0.02 sec)
ERROR 1062 (23000): Duplicate entry ’5935009001-2008-08-03 04:19:18′ for key 1

Posted in tip | Leave a comment

MySQL ; SUBSTR()与CHAR_LENGTH()

SUBSTR()是SUBSTRING()的别名;最常用的,,)形式和PHP等语言很类似,不过pos是从1开始的,len不能为负,如果负则返回空字符串;multi-byte safe(多字节安全)也就是不会在取子字符串时把汉字等截断,造成乱码;由于长度不能使用负值来表示倒数的位置,所以有时需要用CHAR_LENGTH()来计算字符串的总长度,CHAR_LENGTH()把多字节字符也看成基本单位,一个汉字也是按1计算的。

更多信息http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr

Posted in tip | Leave a comment

G1,2.1ROM,OPENVPN

前几天刷了CM5.07-test7,结果没过几天就出了正式版,等我想去下的时候CM的论坛正好挂了,结果拖到昨天睡觉前才刷上。

以前不怕死刷了SPL,现在终于派上用场了,这个ROM直接吃掉了/system下97%的空间,看来将来想用2.2难度很大。

OpenVPN已经集成在网络设置里,以后不用再折腾了……

Posted in Android, OpenVPN | 1 Comment

base 标签,所有链接在新页面中打开

实用的html标签<base>

<base href=”…” target=”…”>

能定义超链接等的基本行为,有人喜欢所以链接都在新页面中打开,让我改……差点冲动去一个个改,结果发现了这个标签,只要

<base target=”_blank”>

那么所有没有特别指定target属性的超链接都会在新页面中打开。

这个标签能做的不止这个,href属性可以定义默认的路径,如果指定此属性则页面中所有相对路径(对图片路径也有效)都会以此为参考。

更多细节请参考:http://www.w3schools.com/tags/tag_base.asp

Posted in 页面设计 | Tagged | Leave a comment

vim gvim & “+

+寄存器:vim中的 +寄存器,可以和操作系统的剪贴板互通,比如从浏览器里复制了东西,到vim中可以用”+p粘贴,vim中用”+y复制的内容也能用粘贴功能贴到其他程序中去。

“+ 失效:一般,在vim中依次按下 ” 和 + 会在右下角提示 “+ 并等待下一个按键,但实际上vim.basic本身是不支持 +寄存器的,vim.gnome或vim.gtk等才支持。因此在 Linux中如果移除了gvim而保留了vim就可能使 +寄存器变得不可用。

Posted in tip | Leave a comment

IE6 CSS注释bug

中文注释偶尔会在IE6中产生莫名其妙的错误。总之,不要在css里使用中文注释就对了。

Posted in tip | Leave a comment

PHP中“数据库和页面编码相同仍乱码”的解决方法

这种情况通常出现在网页服务器和数据库服务器分别运行在两台不同的机器上时。

数据库中的数据读出来后传给网页服务器时也是按照一定的编码规则来的,把这个编码也设成一致的就能解决这个问题:

比如数据库和页面编码都是utf8,则在数据库连接后执行:

mysql_set_charset("utf-8");

mysql_query("set names 'utf-8'");

参:http://www.php.net/manual/en/function.mysql-set-charset.php

Posted in tip | Tagged , | Leave a comment

早起…

小雨…还没伞
昨天一晚没睡好。今天早上6点半就出门了。经过一家网吧门口,看到七八个人还在那上网,感觉更困了…
等公交,站牌旁停了一队接新娘子的车,旁边一小伙子精神不错,蹬三轮的也已经开工了。
美好的早晨,只是我的公交怎么还不来…

要不是下雨,我不会坐一站公交。
长途车站里安检的机器都还没开,难道现在还真那么早?
估计到宁波还能赶上上班高峰…

Posted in Uncategorized | 2 Comments

要死,对ie有偏见导致看不清楚事实……

今天的车票钱没白费……

有一页面,编码utf-8,设置了<meta charset=utf-8>,使用了iframe,内部的编码也是utf-8;在ie中,页面主体显示正常,iframe内乱码;FireFox等中全部正常;结果草率的下结论认为是ie的bug。

事实是ie虽然比较弱,但只要在iframe包含的页面中也添加<meta>标签设置编码,ie也是能正确显示的。

Posted in 页面设计 | Tagged | Leave a comment