This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please upgrade to a browser that supports web standards. It's free and painless.

JD Space


[miRRor aT soHu]      [miRRor aT msn]
首页 | 资源中心 | 管理控制台

Lighttpd应用补充:关于日志

jimmy | 28 十二月, 2007 10:05

补充一下关于日志:

1,设置日志文件

accesslog.filename="/SOHU/LOG/apachelogs/c_access_log"

2,使用cronolog

accesslog.filename="|/usr/local/sbin/cronolog /SOHU/LOG/apachelogs/c_access_log.%w"

3,定义记录格式:

accesslog.format="%h %l %u %t "%r" 200 %b "%{Referer}i" "%{User-Agent}i""

4,文件过滤,对部分访问不记录:

$HTTP["url"] !~ "click.php" {
accesslog.filename = "|/usr/local/sbin/cronolog /SOHU/LOG/apachelogs/c_access_log.%w"
}

5,记录特殊内容。

A-SQUID传来的用户IP

accesslog.format = "%{X-Forwarded-For}i %v %u %t "%r" %s %b "%{User-Agent}i" "%{Referer}i""

B-自定义的Header段

PHP程序:header("X-LIGHTTPD-jimmy","100")

accesslog.format="%h %l %u %t "%r" %b %>s "%{Referer}i" "%{User-Agent}i" "%{X-LIGHTTPD-jimmy}o""

注意:X-LIGHTTPD-为前缀的Header不会被实际发往用户端。

~~呵呵~~


Apache重启失败:name-based shared memory failure

jimmy | 20 十一月, 2007 20:59

当重新编译apache的module,在make install的时候没有停止apache,可能会导致apache重启失败。

典型错误信息:File exists: unable to create scoreboard "/usr/local/apache/logs/httpd.scoreboard" (name-based shared memory failure)

如果将错误定位在httpd.scoreboard文件上,删除或者改名往往并不能解决问题。其实错误的重点在于:shared memory。

真正的原因是:因为替换了正在工作的so文件,造成关闭时无法正常释放内部共享内存,再次启动时检查到错误导致apache无法启动。

解决办法:

ipcs -m -p

检查占用共享内存的进程,返回数据格式:

shmid owner cpid lpid

一般cpid和lpid是一致的,在ps中查找,如果cpid和lpid都不存在,那么说明这块共享内存是没有被释放的。

ipcrm -m <shmid>

用上面查出的pid的shmid,通过上面的命令释放共享内存

然后再检查一遍是否释放了:ipcs -m -p

再次启动apache就OK了。

~~呵呵~~


补充: openvpn的多客户应用

jimmy | 23 十月, 2007 09:35

按照 http://www.jimmydong.com/blog/post/1/117 介绍的快速应用进行安装,

多客户与简单应用所不同是:1,要为每一个用户准备一个认证文件;2,修改配置文件为多用户;3,修改客户端配置文件

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/147

编写PHP扩展(Extension): 再用30分钟进阶

jimmy | 15 十月, 2007 09:03

在上一篇30分钟入门中,介绍了扩展的基本编写方法,但是再做一个应用的时候会发现问题还很多。这里我们要解决的问题:

1,必须了解的几个事项

2,参数的传入与传出

3,PHP动态调用模式

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/146

编写PHP扩展(Extension)三十分钟入门

jimmy | 14 十月, 2007 16:36

上周遇到一个编码问题,当遇到非法字符(比如: 0x01, 0xA228),用XML解析的时候会报错。尝试了下iconv,遇到这种字符就截断了,不能满足需要。于是按照gbk编码表写了一个c的程序来处理。但是命令行调用收到长度限制,而且影响系统整体配置,于是写成了php扩展,当作内置函数来用。

很多PHPer都把写扩展当作很高深的东西,一步一步来,其实很easy。

这里有两个很好的帮助:

http://talks.somabo.de/200510_zend_conf_php_extension_development.pps

http://www.php.net/~wez/extending-php.pdf

先用二十分钟看一看,然后10分钟写一个自己的扩展。

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/145

Lighttpd应用(其他)

jimmy | 08 十月, 2007 13:35

一些其他零碎应用:

1,日志。格式兼容Apache,也能用cronolog

accesslog.format = "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i""
accesslog.filename = "|/usr/local/sbin/cronolog /SOHU/LOG/apachelogs/c_access_log.%w"

2,配置文件中打开status后,可以用

http://yoursite/server-status 查看服务运行状况

3,配置fastcgi后,如果html显示异常(不显示任何内容),在配置文件中加入:

server.network-backend = "writev"

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/144

Lighttpd应用(二)

jimmy | 29 九月, 2007 18:51

对(一)补充一下:

1,启动和控制

/etc/rc.d/init.d/lighttpd start [stop] [restart]

2,如果没有启动起来,手工命令行敲一下:

/usr/local/lighttpd/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

根据提示处理。

3,如果是提示关于{ 之类符号的,很可能是perl没有起作用。configure的--with-pcre,如果找不到pcre-devel是不报错的。rpm -q pcre-devel 看一下就知道了。

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/143

Lighttpd应用(一)

jimmy | 29 九月, 2007 17:58

几年前刚出来的时候就火了一阵,装了试试,跟PHP配合很不稳定,也没太细研究到底是lighttpd的问题还是php的问题。现在lighttpd和php都发展的很完善了,因为几个著名网站的应用重新成为热点。

特点不讲了,到处都是。安装过程记录一下备案。

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/142

对扩大MyISAM的补充

jimmy | 14 九月, 2007 11:32

之前曾经提到过MySQL表4G限制的解决 http://www.jimmydong.com/blog/post/1/31 , 但是没有详细记录。

这里补充一下操作细节:

1,查看表实际情况

show table status like 'your_table_name';
结果类似
Name Type Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Create_options Comment
historybbsfollow MyISAM Dynamic 14462089 296 4294967208 4294967295 247026688 0 NULL 2006-04-25 12:04:01 2007-07-20 02:51:07 NULL
注意其中两个数据:Rows 和 Avg_row_length
将Avg_row_length适当放大作为新值。如上例近似为300
将Rows按未来可能的需求进行扩大。如上例扩大10倍取整为200000000
2,调整表设置:
alter table historybbsfollow max_rows = 200000000 avg_row_length = 300;
3,完成后检查一下是否可以继续插入数据了。如果还不行,检查文件系统,看是否文件系统的限制。
4,需要注意: 调整前最好先check一下,看是否有错误,否则可能导致数据丢失。
如果有错误,可能repair是不行的,因为到最后可能会报错。
应该复制一个当前表的结构到新的表,然后在新表上执行调整语句。然后 insert into new_table select * from old_table 把数据灌过去。
~~呵呵~~

 ... ...
 ... ...
 查看全文 :http://www.jimmydong.com/blog/post/1/141

Linux下乱码解决

jimmy | 07 八月, 2007 16:36

几种常见的:


1,中文

export LANG=zh_CN.GB2312

OR zh_CN.GB18030

2,非中文

export LC_ALL=en.US

OR LC_ALL=POSIX

如果不需要变,可写入到/etc/sysconfig/目录下的i18n

3,SSH客户端

比如运行setup。设置客户端编码方式为utf8

4,命令相关

有的命令提供ANSI及ASC的开关

~~呵呵~~


Valid XHTML 1.0 Strict and CSS.

搜索WWW 搜索www.jimmydong.com
Powered by LifeType
Design by Book of Styles