Monthly Archives: October 2008

应对20号微软正版验证,Office2003通过正版验证的方法


本文给大家介绍了通过Office2003正版验证的方法,其实还是一个方法……


1.开始-运行-regedit
找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration\{90110804-6000-11D3-8CFE-0150048383C9}

删除
ProductID
DigitalProductID


2.运行office,出现安装程序,输入FTYBP-J2B4K-K7JHY-3JG2K-MT9VM(或换个其它序列号)

3.去微软官网看是否通过正版验证:www.microsoft.com/Genuine/diag/default.aspx?displaylang=zh-cn

利用临时表,加快存储过程的执行速度。

利用临时表,加快存储过程的执行速度。


背景:
  一个博客网站访问流量表,每天有大约100万条数据插入,记录每个博客及网站的访问情况。表结构:
mysql> show fields from blog_track;
+—————-+————–+——+—–+———+—————-+
| Field          | Type         | Null | Key | Default | Extra          |
+—————-+————–+——+—–+———+—————-+
| track_id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| track_ip       | char(15)     | YES  |     | NULL    |                |
| track_date     | datetime     | NO   | MUL |         |                |
| track_page     | varchar(256) | YES  |     | NULL    |                |
| track_refferer | varchar(500) | YES  |     | NULL    |                |
| member_id      | int(11)      | NO   | MUL | 0       |                |
| visiter_id     | int(11)      | NO   |     | 0       |                |
| track_type     | tinyint(4)   | NO   | MUL | 0       |                |
+—————-+————–+——+—–+———+—————-+



每隔2小时就会利用存储过程对这个表进行统计,包括统计当天的IP及PV。


CREATE DEFINER=`root`@`%` PROCEDURE `prc_anaylise_track`()
BEGIN


declare time_now datetime;
DROP TABLE IF EXISTS tmp_tables;
CREATE TEMPORARY TABLE tmp_tables (
blog_id int NOT NULL,
count int NOT NULL,
ip char(15) null
) engine = HEAP;
set time_now = now();
insert into tmp_tables(count,blog_id,ip) select count(*) as count,member_id as blog_id,track_ip as ip  from blog_track where track_type=0 and track_date>=date_format(now(),’%Y-%m-%d 00:00:00′) and member_id>0 group by track_ip,member_id;
update blog_info set blog_info.today_ip = (select count(*) as count from tmp_tables where blog_info.member_id=tmp_tables.blog_id);
delete from tmp_tables;
select concat(‘count today ip count need time : ‘,(unix_timestamp(now()) – unix_timestamp(time_now))) as neetTime;
END


使用了一个临时表保存统计结果,执行时间超过15秒。



下面是使用了两个临时表的代码:


CREATE DEFINER=`root`@`%` PROCEDURE `prc_anaylise_user`()
BEGIN


declare time_now datetime;
DROP TABLE IF EXISTS tmp_tables_full;
CREATE TEMPORARY TABLE tmp_tables_full (
blog_id int not null,
count int not null default 0,
ip char(15) null,
index blog_id(blog_id)
)engine = HEAP;


DROP TABLE IF EXISTS tmp_tables;
CREATE TEMPORARY TABLE tmp_tables (
blog_id int NOT NULL,
count int NOT NULL,
ip char(15) null,
index blog_id(blog_id)
) engine = HEAP;


set time_now = now();
insert into tmp_tables_full(blog_id,ip) select member_id,track_ip  from blog_track where track_type=0 and track_date>=date_format(now(),’%Y-%m-%d 00:00:00′) and member_id>0;
insert into tmp_tables(count,blog_id,ip) select count(*) as count,blog_id,ip  from tmp_tables_full group by blog_id,ip;
update blog_info set blog_info.today_ip = (select count(*) as count from tmp_tables where blog_info.member_id=tmp_tables.blog_id);
delete from tmp_tables_full;
delete from tmp_tables;
select concat(‘count today ip count need time : ‘,(unix_timestamp(now()) – unix_timestamp(time_now))) as neetTime;
END


第一个临时表存放今天的访问记录,第一个临时表存放统计结果。这样做的目的是避免统计时间过长,锁表时间过长,导致网站访问不正常。执行时间为2秒。



进一步优化:
定义一个临时变量,
declare p_updatetime datetime;
建立一个tmpupdatetable表,保存上一次执行的时间;
select updatetime into p_updatetime from tmpupdatetable;
把最后执行的时间回到where条件里:
insert into tmp_tables_full(blog_id,ip) select member_id,track_ip  from blog_track where track_type=0 and track_date>=date_format(now(),’%Y-%m-%d 00:00:00′)  and track_date>=p_updatetime and member_id>0;
更新数据时的代码:
update blog_info set blog_info.today_ip =blog_info.today_ip+ (select count(*) as count from tmp_tables where blog_info.member_id=tmp_tables.blog_id);



经过样的修改,执行时间变了120ms左右。已经符合要求了,如果没有达到这个效果的话,请检查一个blog_track表的索引。


DreamCoder for MySQL 4.4.2 crack 破解 Patch KEYGEN

DreamCoder for MySQL。


  本人一直在使用navicat作为Mysql client,不过navicat写存储过程不太方便,每次写存储过程时都切换到mysql administrator,终于给我发现了一个好东东DreamCoder for MySQL,看了看官网的介绍,抱着一试的态度下载了企业版,感觉非常好,特别在写存储过程,很好很强大。哈哈。。分享给大家。

  终于找到破解版了,Thanks god~

下载:

企业版 http://www.sqldeveloper.net/download/installer_dreamcoder_for_mysql_enterprise.exe
专业版 http://www.sqldeveloper.net/download/installer_dreamcoder_for_mysql_professional.exe
标准版 http://www.sqldeveloper.net/download/installer_dreamcoder_for_mysql_standard.exe
免费版 http://www.sqldeveloper.net/download/installer_dreamcoder_for_mysql_free.exe

 

 

破解程序:http://www.strongd.net/dl/DreamCoder_for_MySQL_Enterprise_v4.4.Patch.LaZzy.tPORt.zip

 

 

Mysql日期和时间函数不求人

对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。 

这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: 

mysql> SELECT something FROM table 
WHERE TO_DAYS(NOW()) – TO_DAYS(date_col) <= 30; 

DAYOFWEEK(date) 
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。 
mysql> select DAYOFWEEK(‘1998-02-03’); 
-> 3 

WEEKDAY(date) 
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 
mysql> select WEEKDAY(‘1997-10-04 22:23:00’); 
-> 5 
mysql> select WEEKDAY(‘1997-11-05’); 
-> 2 

DAYOFMONTH(date) 
返回date的月份中日期,在1到31范围内。 
mysql> select DAYOFMONTH(‘1998-02-03’); 
-> 3 

DAYOFYEAR(date) 
返回date在一年中的日数, 在1到366范围内。 
mysql> select DAYOFYEAR(‘1998-02-03’); 
-> 34 

MONTH(date) 
返回date的月份,范围1到12。 
mysql> select MONTH(‘1998-02-03’); 
-> 2 

DAYNAME(date) 
返回date的星期名字。 
mysql> select DAYNAME(“1998-02-05”); 
-> ‘Thursday’ 

MONTHNAME(date) 
返回date的月份名字。 
mysql> select MONTHNAME(“1998-02-05”); 
-> ‘February’ 

QUARTER(date) 
返回date一年中的季度,范围1到4。 
mysql> select QUARTER(’98-04-01′); 
-> 2 

WEEK(date) 
  
WEEK(date,first) 
对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。2个参数形式WEEK()允许
你指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,
从星期一开始。 
mysql> select WEEK(‘1998-02-20’); 
-> 7 
mysql> select WEEK(‘1998-02-20’,0); 
-> 7 
mysql> select WEEK(‘1998-02-20’,1); 
-> 8 

YEAR(date) 
返回date的年份,范围在1000到9999。 
mysql> select YEAR(’98-02-03′); 
-> 1998 

HOUR(time) 
返回time的小时,范围是0到23。 
mysql> select HOUR(’10:05:03′); 
-> 10 

MINUTE(time) 
返回time的分钟,范围是0到59。 
mysql> select MINUTE(’98-02-03 10:05:03′); 
-> 5 

SECOND(time) 
回来time的秒数,范围是0到59。 
mysql> select SECOND(’10:05:03′); 
-> 3 

PERIOD_ADD(P,N) 
增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。 
mysql> select PERIOD_ADD(9801,2); 
-> 199803 

PERIOD_DIFF(P1,P2) 
返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。 
mysql> select PERIOD_DIFF(9802,199703); 
-> 11 

DATE_ADD(date,INTERVAL expr type) 
  
DATE_SUB(date,INTERVAL expr type) 
  
ADDDATE(date,INTERVAL expr type) 
  
SUBDATE(date,INTERVAL expr type) 
这些功能执行日期运算。对于MySQL 3.22,他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。
在MySQL 3.23中,你可以使用+和-而不是DATE_ADD()和DATE_SUB()。(见例子)date是一个指定开始日期的
DATETIME或DATE值,expr是指定加到开始日期或从开始日期减去的间隔值一个表达式,expr是一个字符串;它可以以
一个“-”开始表示负间隔。type是一个关键词,指明表达式应该如何被解释。EXTRACT(type FROM date)函数从日期
中返回“type”间隔。下表显示了type和expr参数怎样被关联: type值 含义 期望的expr格式 
SECOND 秒 SECONDS 
MINUTE 分钟 MINUTES 
HOUR 时间 HOURS 
DAY 天 DAYS 
MONTH 月 MONTHS 
YEAR 年 YEARS 
MINUTE_SECOND 分钟和秒 “MINUTES:SECONDS” 
HOUR_MINUTE 小时和分钟 “HOURS:MINUTES” 
DAY_HOUR 天和小时 “DAYS HOURS” 
YEAR_MONTH 年和月 “YEARS-MONTHS” 
HOUR_SECOND 小时, 分钟, “HOURS:MINUTES:SECONDS” 
DAY_MINUTE 天, 小时, 分钟 “DAYS HOURS:MINUTES” 
DAY_SECOND 天, 小时, 分钟, 秒 “DAYS HOURS:MINUTES:SECONDS” 

MySQL在expr格式中允许任何标点分隔符。表示显示的是建议的分隔符。如果date参数是一个DATE值并且你的计算仅仅
包含YEAR、MONTH和DAY部分(即,没有时间部分),结果是一个DATE值。否则结果是一个DATETIME值。 

mysql> SELECT “1997-12-31 23:59:59” + INTERVAL 1 SECOND; 
-> 1998-01-01 00:00:00 
mysql> SELECT INTERVAL 1 DAY + “1997-12-31”; 
-> 1998-01-01 
mysql> SELECT “1998-01-01” – INTERVAL 1 SECOND; 
-> 1997-12-31 23:59:59 
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”, 
INTERVAL 1 SECOND); 
-> 1998-01-01 00:00:00 
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”, 
INTERVAL 1 DAY); 
-> 1998-01-01 23:59:59 
mysql> SELECT DATE_ADD(“1997-12-31 23:59:59”, 
INTERVAL “1:1” MINUTE_SECOND); 
-> 1998-01-01 00:01:00 
mysql> SELECT DATE_SUB(“1998-01-01 00:00:00”, 
INTERVAL “1 1:1:1” DAY_SECOND); 
-> 1997-12-30 22:58:59 
mysql> SELECT DATE_ADD(“1998-01-01 00:00:00”, 
INTERVAL “-1 10” DAY_HOUR); 
-> 1997-12-30 14:00:00 
mysql> SELECT DATE_SUB(“1998-01-02”, INTERVAL 31 DAY); 
-> 1997-12-02 
mysql> SELECT EXTRACT(YEAR FROM “1999-07-02”); 
-> 1999 
mysql> SELECT EXTRACT(YEAR_MONTH FROM “1999-07-02 01:02:03”); 
-> 199907 
mysql> SELECT EXTRACT(DAY_MINUTE FROM “1999-07-02 01:02:03”); 
-> 20102 

如果你指定太短的间隔值(不包括type关键词期望的间隔部分),MySQL假设你省掉了间隔值的最左面部分。例如,
如果你指定一个type是DAY_SECOND,值expr被希望有天、小时、分钟和秒部分。如果你象”1:10″这样指定值,
MySQL假设日子和小时部分是丢失的并且值代表分钟和秒。换句话说,”1:10″ DAY_SECOND以它等价于”1:10″ MINUTE_SECOND
的方式解释,这对那MySQL解释TIME值表示经过的时间而非作为一天的时间的方式有二义性。如果你使用确实不正确的日期,
结果是NULL。如果你增加MONTH、YEAR_MONTH或YEAR并且结果日期大于新月份的最大值天数,日子在新月用最大的天调整。 

mysql> select DATE_ADD(‘1998-01-30’, Interval 1 month); 
-> 1998-02-28 

注意,从前面的例子中词INTERVAL和type关键词不是区分大小写的。 
TO_DAYS(date) 
给出一个日期date,返回一个天数(从0年的天数)。 
mysql> select TO_DAYS(950501); 
-> 728779 
mysql> select TO_DAYS(‘1997-10-07’); 
-> 729669 

TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。 

FROM_DAYS(N) 
给出一个天数N,返回一个DATE值。 
mysql> select FROM_DAYS(729669); 
-> ‘1997-10-07’ 

TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。 

DATE_FORMAT(date,format) 
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) 
%W 星期名字(Sunday……Saturday) 
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) 
%Y 年, 数字, 4 位 
%y 年, 数字, 2 位 
%a 缩写的星期名字(Sun……Sat) 
%d 月份中的天数, 数字(00……31) 
%e 月份中的天数, 数字(0……31) 
%m 月, 数字(01……12) 
%c 月, 数字(1……12) 
%b 缩写的月份名字(Jan……Dec) 
%j 一年中的天数(001……366) 
%H 小时(00……23) 
%k 小时(0……23) 
%h 小时(01……12) 
%I 小时(01……12) 
%l 小时(1……12) 
%i 分钟, 数字(00……59) 
%r 时间,12 小时(hh:mm:ss [AP]M) 
%T 时间,24 小时(hh:mm:ss) 
%S 秒(00……59) 
%s 秒(00……59) 
%p AM或PM 
%w 一个星期中的天数(0=Sunday ……6=Saturday ) 
%U 星期(0……52), 这里星期天是星期的第一天 
%u 星期(0……52), 这里星期一是星期的第一天 
%% 一个文字“%”。 

所有的其他字符不做解释被复制到结果中。 

mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, ‘%W %M %Y’); 
-> ‘Saturday October 1997’ 
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, ‘%H:%i:%s’); 
-> ’22:23:00′ 
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, 
‘%D %y %a %d %m %b %j’); 
-> ‘4th 97 Sat 04 10 Oct 277’ 
mysql> select DATE_FORMAT(‘1997-10-04 22:23:00’, 
‘%H %k %I %r %T %S %w’); 
-> ’22 22 10 10:23:00 PM 22:23:00 00 6′ 
MySQL3.23中,在格式修饰符字符前需要%。在MySQL更早的版本中,%是可选的。 

TIME_FORMAT(time,format) 
这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。
其他修饰符产生一个NULL值或0。 
CURDATE() 
  
CURRENT_DATE 
以’YYYY-MM-DD’或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。 
mysql> select CURDATE(); 
-> ‘1997-12-15’ 
mysql> select CURDATE() + 0; 
-> 19971215 

CURTIME() 
  
CURRENT_TIME 
以’HH:MM:SS’或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。 
mysql> select CURTIME(); 
-> ’23:50:26′ 
mysql> select CURTIME() + 0; 
-> 235026 

NOW() 
  
SYSDATE() 
  
CURRENT_TIMESTAMP 
以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间,取决于函数是在一个字符串还是在数字的
上下文被使用。 
mysql> select NOW(); 
-> ‘1997-12-15 23:50:26’ 
mysql> select NOW() + 0; 
-> 19971215235026 

UNIX_TIMESTAMP() 
  
UNIX_TIMESTAMP(date) 
如果没有参数调用,返回一个Unix时间戳记(从’1970-01-01 00:00:00’GMT开始的秒数)。如果UNIX_TIMESTAMP()用一
个date参数被调用,它返回从’1970-01-01 00:00:00′ GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME
字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。 
mysql> select UNIX_TIMESTAMP(); 
-> 882226357 
mysql> select UNIX_TIMESTAMP(‘1997-10-04 22:23:00’); 
-> 875996580 

当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。 

FROM_UNIXTIME(unix_timestamp) 
以’YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串
还是或数字上下文中被使用。 
mysql> select FROM_UNIXTIME(875996580); 
-> ‘1997-10-04 22:23:00’ 
mysql> select FROM_UNIXTIME(875996580) + 0; 
-> 19971004222300 

FROM_UNIXTIME(unix_timestamp,format) 
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条
目同样的修饰符。 
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(), 
‘%Y %D %M %h:%i:%s %x’); 
-> ‘1997 23rd December 03:43:30 x’ 

SEC_TO_TIME(seconds) 
返回seconds参数,变换成小时、分钟和秒,值以’HH:MM:SS’或HHMMSS格式化,取决于函数是在一个字符串还是在数字
上下文中被使用。 
mysql> select SEC_TO_TIME(2378); 
-> ’00:39:38′ 
mysql> select SEC_TO_TIME(2378) + 0; 
-> 3938 

TIME_TO_SEC(time) 
返回time参数,转换成秒。 
mysql> select TIME_TO_SEC(’22:23:00′); 
-> 80580 
mysql> select TIME_TO_SEC(’00:39:38′); 
-> 2378

利用samba备份文件。

利用samba备份文件。


首先安装samba
# yum install samba


增加用户backupuser
#adduser backupuser -g users
然后修改backupuser的密码xxxxxx
#passwd backupuser


[backupfile]
    comment = file backup dir.it will auto backup per hour.
    valid users= backupuser
    path=/data/backupfile
    browseable=no
    writable=yes


增加smbuser
#smbpasswd -a backupuser
输入密码,直接按回车就可以了。


#mount -t cifs -o username=strong,password=strongkiller -v //mysqlhost/1363file /backupdir


如果出现错,如权限等,请确认backupuser有读写/data/backupfile的权限,如果还不行就把seLinux关闭。


#vi backup_file_per_hour.sh


#!/bin/sh
time_year_month=”$(date +”%Y%m”)”
time_day=”$(date +”%d”)”
need_backup_folder=”/data2/album/$time_year_month/$time_day”
backup_year_folder=”/backupdir/album/$time_year_month”
if [ ! -d $backup_year_folder ]
        then
       mkdir $backup_year_folder
fi


backup_current_folder=”/backupdir/album/$time_year_month/$time_day”
if [ ! -d $backup_current_folder ]
        then
                mkdir $backup_current_folder
fi


cp -rfu $need_backup_folder/*.* $backup_current_folder/


#crontab -e


59 * * * * sh /home1/software/backup_file_per_hour.sh


求助:Unknown collation ‘gbk_chinese_ci’ in table

将数据库文件打包成zip形式之后,传到linux服务器上
访问页面时,出现这样的问题
Unknown collation ‘gbk_chinese_ci’ in table ‘law_homepageset.frm’ definition – Execute Query False! Select * From law_homepageset limit 0,1;

请问这是怎么了 ?未知校队字符集? 等高手帮忙解决

 

 

解决办法:

重新编译一遍mysql,加上参数:–with-extra-charsets=gbk,gb2312,utf8即可

lighttpd 1.4.20发布

9月30日lighttpd 1.4.20版本发布了。lighttpd不用多介绍了,现在非常流行的轻量级Web服务器,提供良好的Ruby on Rails,PHP和Python的FastCGI/SCGI运行方式的支持。 

lighttpd1.4.20版本是1.4.x系列的最新的维护版本,修复了从1.4.19以来大量的小bug,也是目前lighttpd最稳定最好的版本,推荐升级。这个版本比较关注的bug修复是一些HTTP不规范的400请求造成的内存泄漏问题以及SSL处理的问题造成的DOS攻击。以下是详细更新记录: 

引用
    *  Fix mod_compress to compile with old gcc version (#1592) 
    * Fix mod_extforward to compile with old gcc version (#1591) 
    * Update documentation for #1587 
    * Fix #285 again: read error after SSL_shutdown (thx marton.illes@balabit.com) and clear the error queue before some other calls (CVE-2008-1531) 
    * Fix mod_magnet: enable “request.method” and “request.protocol” in lighty.env (#1308) 
    * Fix segfault for appending matched parts if there was no regex matching (just give empty strings) (#1601) 
    * Use data_response_init in mod_fastcgi x-sendfile handling for response.headers, fix a small “memleak” (#1628) 
    * Don’t send empty Server headers (#1620) 
    * Fix conditional interpretation of core options 
    * Enable escaping of % and $ in redirect/rewrite; only two cases changed their behaviour: “%” => “”, ”$$” => ”$” 
    * Fix accesslog port (should be port from the connection, not the “server.port”) (#1618) 
    * Fix mod_fastcgi prefix matching: match the prefix always against url, not the absolute filepath (regardless of check-local) 
    * Overwrite Content-Type header in mod_dirlisting instead of inserting (#1614), patch by Henrik Holst 
    * Handle EINTR in mod_cgi during write() (#1640) 
    * Allow all http status codes by default; disable body only for 204,205 and 304; generate error pages for 4xx and 5xx (#1639) 
    * Fix mod_magnet to set con->mode = p->id if it generates content, so returning 4xx/5xx doesn’t append an error page 
    * Remove lighttpd.spec* from source, fixing all problems with it 😉 
    * Do not rely on PATH_MAX (POSIX does not require it) (#580) 
    * Disable logging to access.log if filename is an empty string 
    * Implement a clean way to open /dev/null and use it to close stdin/out/err in the needed places (#624) 
    * merge spawn-fcgi changes from trunk (from @2191) 
    * let spawn-fcgi propagate exit code from spawned fcgi application 
    * close connection after redirect in trigger_b4_dl (thx icy) 
    * close connection in mod_magnet if returned status code 
    * fix bug with IPv6 in mod_evasive (#1579) 
    * fix scgi HTTP/1.* status parsing (#1638), found by met@uberstats.com 
    * [tests] fixed system, use foreground daemons and waitpid 
    * [tests] removed pidfile from test system 
    * [tests] fixed tests needing php running (if not running on port 1026, search php in env[PHP] or /usr/bin/php-cgi) 
    * fixed typo in mod_accesslog (#1699) 
    * replaced buffer_{append,copy}_string with the _len variant where possible (#1732) (thx crypt) 
    * case insensitive match for secdownload md5 token (#1710) 
    * Handle only HEAD, GET and POST in mod_dirlisting (same as in staticfile) (#1687) 
    * fixed mod_secdownload problem with unsigned time_t (#1688) 
    * handle EAGAIN and EINTR for freebsd sendfile (#1675) 
    * Use filedescriptor 0 for mod_scgi spawn socket, redirect STDERR to /dev/null (#1716) 
    * fixed round-robin balancing in mod_proxy (#1715) 
    * fixed EINTR handling for waitpid in mod_fastcgi 
    * mod_{fast,s}cgi: overwrite environment variables (#1722) 
    * inserted many con->mode checks; they should prevent two modules to handle the same request if they shouldn’t (#631) 
    * fixed url encoding to encode more characters (#266) 
    * allow digits in [s]cgi env vars (#1712) 
    * fixed dropping last character of evhost pattern (#161) 
    * print helpful error message on conditionals in global block (#1550) 
    * decode url before matching in mod_rewrite (#1720) 
    * fixed conditional patching of ldap filter (#1564) 
    * Match headers case insensitive in response (removing of X-{Sendfile,LIGHTTPD-*}, catching Date/Server) 
    * fixed bug with case-insensitive filenames in mod_userdir (#1589), spotted by “anders1” 
    * fixed format string bugs in mod_accesslog for SYSLOG 
    * replaced fprintf with log_error_write in fastcgi debug 
    * fixed mem leak in ssi expression parser (#1753), thx Take5k 
    * hide some ssl errors per default, enable them with debug.log-ssl-noise (#397) 
    * do not send content-encoding for 304 (#1754), thx yzlai 
    * fix segfault for stat_cache(fam) calls with relative path (without ’/’, can be triggered by x-sendfile) (#1750) 
    * fix splitting of auth-ldap filter 
    * workaround ldap connection leak if a ldap connection failed (restarting ldap) 
    * fix auth.backend.ldap.bind-dn/pw problems (only read from global context for temporary ldap reconnects, thx ruskie) 
    * fix memleak in request header parsing (#1774, thx qhy) 
    * fix mod_rewrite memleak/endless loop detection (#1775, thx phy – again!) 
    * use decoded url for matching in mod_redirect (#1720)