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.
| « | 一月 2009 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |
Lighttpd应用补充:关于日志
Apache重启失败:name-based shared memory failure
补充: openvpn的多客户应用
编写PHP扩展(Extension): 再用30分钟进阶
编写PHP扩展(Extension)三十分钟入门
Lighttpd应用(其他)
Lighttpd应用(二)
Lighttpd应用(一)
对扩大MyISAM的补充
Linux下乱码解决
转: HTTP协议头
各种古怪的windows共享文件夹问题
eclipse在PHP开发上的应用:安装
Apache配置中,LogFormat可用变量
(转)Web服务器调查
识别搜索引擎的User-Agent
PHP不同版本的效率
memcached的应用实例(结合Apache PHP实现快存服务)
top命令多CPU显示及其他
网站/网页的图标-favicon:动态、自定义、自动生成
补充一下关于日志:
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的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了。
~~呵呵~~
按照 http://www.jimmydong.com/blog/post/1/117 介绍的快速应用进行安装,
多客户与简单应用所不同是:1,要为每一个用户准备一个认证文件;2,修改配置文件为多用户;3,修改客户端配置文件
... ...
在上一篇30分钟入门中,介绍了扩展的基本编写方法,但是再做一个应用的时候会发现问题还很多。这里我们要解决的问题:
1,必须了解的几个事项
2,参数的传入与传出
3,PHP动态调用模式
... ...
上周遇到一个编码问题,当遇到非法字符(比如: 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分钟写一个自己的扩展。
... ...
一些其他零碎应用:
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"
... ...
对(一)补充一下:
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 看一下就知道了。
... ...
几年前刚出来的时候就火了一阵,装了试试,跟PHP配合很不稳定,也没太细研究到底是lighttpd的问题还是php的问题。现在lighttpd和php都发展的很完善了,因为几个著名网站的应用重新成为热点。
特点不讲了,到处都是。安装过程记录一下备案。
... ...
之前曾经提到过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 把数据灌过去。
~~呵呵~~... ...
几种常见的:
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的开关
~~呵呵~~
十二月 2007
十一月 2007
十月 2007
九月 2007
八月 2007
七月 2007
六月 2007
五月 2007
四月 2007
三月 2007
二月 2007
一月 2007
十二月 2006
十一月 2006
十月 2006
九月 2006
八月 2006
七月 2006
六月 2006
五月 2006
四月 2006
三月 2006
二月 2006
十月 2005
九月 2005
八月 2005
Apache+PHP [31]

操作系统,Linux [27]

(X)HTML,JS [17]

数据库,MySQL [18]

工作生活 [33]

触类旁通 [6]

影音娱乐 [3]

待分类内容 [7]

顶置内容 [0]

资源中心
奇客新闻
暂未分类
个人站
王建硕
短歌行
车东
JAN's
KLogs
因思而变
一个藏袍
亲朋好友
Some CCFer
张楠