工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.51099.com 注册 | 登陆
浏览模式: 标准 | 列表2007年10月的文章

让apache为访问文件加上一个超时时间,expires

apache文件所在目录 modules/metadata/mod_expires.c

编译,使用apxs工具

apachepath/bin/apxs -c -i -a mod_expires.c

 编译完后,自动加了LoadModule

httpd.conf配置

<IfModule expires_module>
    ExpiresActive On
    ExpiresByType image/gif "access plus 300 minutes"
    ExpiresByType image/jpeg "access plus 300 minutes"
    ExpiresByType image/png "access plus 300 minutes"
    ExpiresByType text/css "access plus 3 minutes"
    ExpiresByType application/x-shockwave-flash "access plus 300 minutes"
    #ExpiresByType image/gif "access plus 3 minutes"
    #ExpiresByType image/jpeg "access plus 3 minutes"
    #ExpiresByType image/png "access plus 3 minutes"
    #ExpiresByType text/css "access plus 3 minutes"
    #ExpiresByType application/x-shockwave-flash "access plus 3 minutes"
    #ExpiresDefault "now plus 1 day"
</IfModule>

Linux下让apache支持网址中文名字

今天发现,FTP里的中文名字的文件都不能下载.之前就是win的,后来改到Linux,用NTFS加载,再后来,也转为Linux的格式了.

刚弄好时,好像是能下载的,都不知当时是怎么检查的了.而且,前两天才发现,上次整理的过程中,还丢了很多的文件,唉,可现在全都没了.真可惜,有点欲哭无泪的感觉,同时也发现这些文件都不能下载,怪事了

后在网上搜了下资料,就发现了下面这些.

linux下的apache,不支持中文地址的

http://localhost/下载/     或 http://localhost/下载/电子书.rar

要支持中文名字,安装个 mod_encoding 模块就可以了

wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz

http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

# tar zxfv mod_encoding-20021209.tar.gz
# cp mod_encoding.c.apache2.20020616 mod_encoding-20021209/mod_encoding.c

■ iconv_hook编译和安装

安装mod_encoding前首先需要安装iconv_hook。

$ cd mod_encoding-20021209/lib$ ./configure$ make# make install
完成上面操作后,iconv_hook相关so文件放到/usr/local/lib下面。
要操作系统系统能够搜索到该so文件,需要完成一下几行操作
打开/etc/ld.so.conf文件,添加一行指向iconv_book的所在路径,即"/usr/local/lib"

# vi /etc/ld.so.conf/usr/local/lib
[Esc]、[:]、[w]、[q] 保存退出。

# PATH="$PATH:/sbin"

# ldconfig

■ mod_encoding模块的编译
进入mod_encoding-20021209.tar.gz的解压目录,即mod_encoding-20021209

# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include/iconv_hook/
# make
#ls -l mod_encoding.o
查看是否已经生成了mod_encoding.o文件,如果是,则make成功继续下边的操作。
# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook







生成mod_encoding.so文件,将该文件拷贝到你的模块存放目录,一般为${APACHE_HOME}/modules/
# cp mod_encoding.so /usr/local/apache/modules/mod_encoding.so

■ httpd.confd的设定

LoadModule encoding_module modules/mod_encoding.so

<IfModule mod_encoding.c>
  EncodingEngine    on
  NormalizeUsername on
  SetServerEncoding GBK
  DefaultClientEncoding UTF-8 GBK GB2312
  AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312
  AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312
  AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312
</IfModule>

如顺利完成,上面那些中文都可以下载了

这里只是将所有的中文都转换成UTF-8格式的传输了,我想,如果在加载分区的时候,指定为UTF-8字符来加载,也许可以不用装这个也可以,没测试过,不好下定论.

参考原文 http://blog.51766.com/page/zsc/Weblog/1141808884223?catname=

Can't locate DBI.pm in @INC (@INC contains:

 ./run-all-tests
Can't locate DBI.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr
/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib
/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/per
l5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/s
ite_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/l
ib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/
vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at ./run-all-tests line 36.
BEGIN failed--compilation aborted at ./run-all-tests line 36.

出现这个错误,同上一篇类似,也就是你的DBI模块没装.同样的方法,到ISO文件里找到 perl-DBI-1.40-5.i386.rpm,上传,安装

再次执行,出了新的问题.

 ./run-all-tests
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/lib/perl5/5.8.5/i386-linux-th
read-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.
8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/
i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386
-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /
usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_pe
rl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-mul
ti /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/per
l5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl
.) at (eval 51) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Proxy, Sponge.
 at /www/servers/mysqlclu/sql-bench/server-cfg line 247

这里就是DBD的问题了.再把 perl-DBD-MySQL-2.9004-3.1.i386.rpm 装一下

但时安装时又出了个错.

rpm -ivh /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm
warning: /www/perl-DBD-MySQL-2.9004-3.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
        libmysqlclient.so.14 is needed by perl-DBD-MySQL-2.9004-3.1.i386
    Suggested resolutions:
        mysql-4.1.7-4.RHEL4.1.i386.rpm

这个是程序的依懒关系,也和版本有关.

到这里,可以按照上面的方法,再一个个找出来安装(比较麻烦),或者干脆加个参数 --nodeps 去掉这个依懒关系的检查.就可以安装了,但这样的话,有可能会安装后也不能正常使用.如果这样,那就办法了,只有一个个找出来装了.

install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains:

在装好mysql后,用mysql自身提供一些测试程序时,时常会有这样的错误.这是因为这些测试程序都是用perl写的,也就是用perl连接数据库有些问题.

如提示下面这个错误,是说你的系统里少装了一个DBD的模块.可以用rpm -qa | grep "name"来查找你所有的东东有没装.

 ./run-all-tests
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5
/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-lin
ux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/
perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i38
6-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr
/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_pe
rl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/
perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/
i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
 /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_
perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-t
hread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe
rl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_per
l/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/l
ib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at (eval 51) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ExampleP, Proxy, Sponge.
 at /www/servers/mysqlclu/sql-bench/server-cfg line 247

在网上找了下,但没找到具体的原因和安装方法.但觉得是DBD的模块问题.网上也没找到有这个模块.就在RHEL4的ISO文件里找,在第二张光盘里有一个 perl-DBD-MySQL-2.9004-3.1.i386.rpm ,把这个上传,安装就OK了

 

有些缘份是永远不会有结果

有些缘份是永远不会有结果的

爱一个人不一定要拥有

但拥有一个人一定要珍惜

不要等到伤害的时候才会乞求原谅

不要等到失去时候再去挽回

如果我不小心流下一滴泪水

那是我不愿意忘记你是谁

世界上只有两种可以称之为浪漫的情感

一种叫相濡以沫

一种叫相忘于江湖

我们要做的是争取和最爱的人相濡以沫

和次爱的人相忘于江湖

也许不是不曾心动

不是没有可能

只是有缘无份

情深缘浅

我们爱在不对的时间

回首往事的时候

想起那些如流星般划过生命的爱情

我们常常会把彼此的错地归咎为比缘份

其实说到底

缘份是那么虚幻抽象的一个概念

真正影响我们

往往是那一时三刻相遇与相爱的时机

男女之间的交往

充满了犹疑忐忑的不确定与欲言又止的矜持

一个小小的变数

就可以完全改变选择的方向

这世界有着太多的

这样那样的限制与隐秘的禁忌

又有太多难以预测的变故和身不由已的离合

一个转身

也许就已经一辈子错过

要很多年以后

才会参透所有的争取与努力

也许还抵不过命运开的一个玩笑

上帝只在云端眨了一眨眼

所有的结局

就都已经完全改变

在对的时间,遇到对的人,是一种幸福

在对的时间,遇到错的的,是一种悲伤

在错的时间,遇到对的人,是一声叹息

在错的时间,遇到错的人,是一种无奈

 

回忆的花瓣掠过心湖

泛起片片涟漪

爱不是千言万语

也不是朝朝暮暮

爱是每当午夜梦醒时

发现内心牵挂的依然是你

mysql集群,负载均衡

昨天作了一个mysql的集群测试.用了三台机.一台作管理(实际上是作数据同步用),两个节点.两个节点间的数据,是实时同步的,但在存储引擎里得用ndbcluster.只是简单测试了这个集群效果.因为之前一直不太理解,他这个数据是如何同步.原来是通过管理机来实现实时的同步.这样的话,我觉得,在写数据频繁的应用上,效率不好(网上很多文章也这样说.更多的是说mysql的集群问题太多,限制太多),但在select的应用上,确实有不错的效果,以及达到分流效果.

这里所说的集群,是mysql官方的方法做的.和其它集群应用是不同的.如LVS.在LVS里,管理机是实现分流调度的.而mysql这里的管理机,只不过是起到一个数据同步的作用,没有分流的作用.这样的话,应用上,限制就比较多了

不过,这个数据同步问题解决了.要是再加一层LVS来作分流调度,应该是一个比较理想的mysql集群负载均衡了.至少在读频繁的应用上,会有不错的效果.但在写频繁的应用上,就有待测试了

此次所有的mysql版本是5.0,45

还有,在mysql集群上还有一个问题,就是那些数据都存储在内存上,也就是需要很大的内存.这里也是一个限制了.不过,在5.1版以后的这个问题,会有改善.

接下来,将会作这一系列的测试

 

mysql max 版本的下载相关问题

最近要做mysql集群,今天就准备下载回来装一下.可跑到mysql的官网上看,却怎么也找不到mysql的MAX版本,因为做集群的就要这个版本.奇怪了,以前都有的,怎么现在没有了.难不成mysql不对企业版开源也不发布这个版本了.找了半天都见不到,烦了.网上搜了下也没结果.没办法,只有看官网的说明文档了.只是E文太差,看得比较辛苦

MySQL 5.0 Reference Manual  的 16.3.1. Building MySQL Cluster from Source Code 这一节说明如下:

NDB, the Cluster storage engine, is available in binary distributions for Linux, Mac OS X, and Solaris. We are working to make Cluster run on all operating systems supported by MySQL, including Windows.

If you choose to build from a source tarball or the MySQL 5.0 BitKeeper tree, be sure to use the --with-ndbcluster option when running configure. You can also use the BUILD/compile-pentium-max build script. Note that this script includes OpenSSL, so you must either have or obtain OpenSSL to build successfully, or else modify compile-pentium-max to exclude this requirement. Of course, you can also just follow the standard instructions for compiling your own binaries, and then perform the usual tests and installation procedure. See Section 2.4.15.3, “Installing from the Development Source Tree”.

You should also note that compile-pentium-max installs MySQL to the directory /usr/local/mysql, placing all MySQL Cluster executables, scripts, databases, and support files in subdirectories under this directory. If this is not what you desire, be sure to modify the script accordingly.

(原文http://dev.mysql.com/doc/refman/5.0/en/mysql-cluster-building.html)

可以在编译时加个参数,或是自己编译,这样就爽了.今天又学到新知识了.

之前还在想,如果mysql的社区版不支持这个,那不是很麻烦.想做集群也没得做了,要做也只得花M了.呵呵.看来是多虑了

这几天也看了些文章,有的说mysql做集群不稳定,有的说很稳定.看来是要看具体的应用了.不过,要自己测试过就知道是怎样了.

 

sendmail问题Cannot open /usr/share/sendmail-cf/m4/cf.m4

有时会用mail发邮件,在Linux通常都是sendmail,在系统安装时也默认装有了.通常启动就可以用了

但如要更完美的功能或是定制,就需要修改配置文件了.比如要修改发送邮件的域名.

...

今天就是这样,修改了sendmail.mc

m4 sendmail.mc > sendmail.cf

却提示 sendmail.mc:10: m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory

这是因为没有安装sendmai-cf这个包

于是上网搜,但却搜不到这个文件能下载,烦了,现在又没有光盘

ISO文件倒是有,好在RAR能看,把这个文件拉出来,上传,安装,呵呵,没提示了吧

这里给一下连接,如果需要的可以下载:http://219.129.216.74/soft/sendmail-cf-8.13.1-2.i386.rpm

是RHEL4的

Records:1312