Category Archives: Other

安装配置一台 apache+php+mysql 的rh el4服务器

系统 rh el4 是四张盘,用第一张启动电脑。前面没啥好说的了,后面选择软件的时候,不要选x界面的东西,开发工具全选上,别的好像默认就行了,大概需要2G好像是。 Apache apache的下载地址:http://httpd.apache.org/download.cgi,选一个mirror,下载就行了。 编译选项: ./configure –prefix=/usr/local/apache/ –enable-rewrite –enable-so rewrite还是很有必要装上的,enable so让apache可以加载php模块。 Mysql mysql 的下载地址(以5.0为例):http://mysql.org/downloads/mysql/5.0.html#source 注意我们这里下载的是 source,要自己来编译。这样可以控制mysql默认的字符集是什么。 编译选项: ./configure –prefix=/data/mysql –with-charset=gbk –with-extra-charsets=all 这里设置的字符集是gbk,根据需要自己来设计自己的。别的安装的过程可以参考源码目录里面的INSTALL文件,基本按照那个一步一步来就行了。 libjpeg 安装php之前,先需要自己编译一个 libjpeg 和 libpng,系统安装的少东西,php编译不过去。 libjpeg 的下载地址:ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz 编译选项:./configure –enable-static –enable-shared –prefix=/usr/local/libjpeg libpng libpng的下载地址:http://prdownloads.sourceforge.net/libpng/libpng-1.2.20.tar.bz2?download 编译选项:./configure –prefix=/usr/local/libpng php php的下载地址(目前的最新版):http://cn.php.net/get/php-5.2.4.tar.bz2/from/this/mirror 编译选项: ./configure –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/data/mysql/  –prefix=/usr/local/php5/ –with-config-file-path=/usr/local/php5/etc –with-openssl –enable-mbstring –with-iconv –with-curl –with-gd –with-zlib  –with-png-dir=/usr/local/libpng –with-jpeg-dir=/usr/local/libjpeg

gdm登陆窗口的方块乱码

这几天一直有个问题解决不了,gdm的登陆窗口上面的字体是方块。我一般都是使用home下面的.fonts.conf 来配置字体的。不过gdm启动的时候好像也不会读取你home的下吧,所以还是把他放到了/etc/fonts/local.conf 里面。 使用gdm的时候,配置为theme的时候,gdm会起不了,不停的尝试,最后出一个提示窗口,全是方块。不过应该是提示没办法启动welcome窗口的。配置为简介模式的话,gdm至少能起来,虽然上面的字体全是方块,连我输入的字也是方块,就算是英文。 开始以为是字体设置的问题,把我的自定义设置全部去掉也不行。locale改成英文就正常了。不过还是不爽,搜了半天没找到解决办法,后来有篇文章提示了一下,会不会是字体权限的问题?我才想起来自己添加的雅黑字体,去看了一下,果然只有root可读。修改权限之后,方块的现象没了。

给ibm server设置raid

昨天去给一台没拆封的ibm server装系统,头一次弄了raid,发现操作起来也不难。之前心里没底,就去yahoo搜索了一下,发现图解的都是使用server guide 那个光盘安装windows的(其实就一篇文章,n多人转载了),这次装就顺便拍了一下,呵呵。 server guide 光盘的图,用serverguide安装也挺简单的,光盘启动之后按照提示一步一步来就行了。

涉及到linux系统安全的几个文件

部分内容转自这里 1 cron.allow,cron.deny If the cron.allow file exists, then you must be listed therein in order to be allowed to use this command. If the cron.allow file does not exist but the cron.deny file does exist, then you must not be listed in the cron.deny file in order to use this command. If neither of [...]

smsd 发送中文短信乱码

smsd是使用mysql数据库的,所以这个乱码很容易把人搞晕。我之前写过gnokii发送短信是和locale有关系的,只要在utf8的locale下面就可以正常发送中文短信了。而smsd也和这个类似,也需要utf8的locale。但是还需要注意的一点就是mysql也是有编码设置的。所以可能会认为,文本插入数据库之前是不是也需要对数据库做utf8的设置呢?其实是不需要的,这么做反而会造成乱码。 smsd连接mysql用的是mysql默认的字符集,那么我们插入文本的时候,也同样需要使用这个字符集,需要注意的是,这个文本也需要是utf8编码的。mysql默认的字符集通常是 “default-character-set             latin1”。 我写的一个python的用来插入数据库要发送的信息的程序。 #!/usr/bin/env python2.3 #coding=utf-8 import sys import MySQLdb   # inbox #+————+——————+——+—–+———————+—————-+ #| Field | Type | Null | Key | Default | Extra | #+————+——————+——+—–+———————+—————-+ #| id | int(10) unsigned | | PRI | NULL | auto_increment | #| number | varchar(20) | | | | | #| smsdate | [...]

oracle 的 job 又遇到问题了

还是高级复制的问题,这次可能是因为job执行过程中,对方机器刚好重启导致的。反正job是卡在那里了,都10多天了。 查看 dba_jobs_running 表,可以看到卡住的job的 job_id 和 sid 。查看 dba_jobs 表,可以看到相应 job 的信息,this_date 如果有数据的话,表示的是 job 开始执行的时间,next_date 是下次执行 job 的时间,如果 job 正常执行完毕,那么 this_date 应该是空的。根据 sid 还可以查看 v$session_wait 和 v$session 里面的这个 job 的一些状态。 尝试了下面的方法来重新运行job,当时好像不好用,不过今天来看的时候,job是执行了。现在也不清楚是不是我这个操作起作用了,真晕。 SQL> exec dbms_job.broken(109,true);   PL/SQL procedure successfully completed.   SQL> commit;   Commit complete.   SQL> select job,sid from dba_jobs_running;   JOB SID ———- [...]

稍微深入了解了一下cacti的thold插件的邮件通知

通过cacti的thold插件,可以做到snmp抓取到的数值低于你规定的值的时候进行邮件通知,例如我用他来监控磁盘空间,当磁盘空间低于某个数的时候就会给指定的email发邮件。但是有一点郁闷的是,有时候,可能是由于网络原因,抓取会超时,这样就会导致触发trigger,给你发送邮件。5分钟抓取一次,我这里的情况是几乎每个小时总会有2,3封这种邮件,很烦人,而且根本没意义。早就想屏蔽掉这种情况了,看了代码挺复杂就懒得弄,今天实在受不了了,深入了解了一下。 其实thold本身已经考虑到了这种情况,在 thold 的设置里面,就有一项 Default Trigger Count (Number of consecutive times the data source must be in breach of the threshold for an alert to be raised),就是连续触发几次才认为他真的低于 thold 了,才发送邮件。我尝试过修改这个设置,发现不管用。看了代码才了解,每个 Thresholds 都有自己的 trigger 值,那个 default trigger count 只对新建的 thresholds 才有用。所以针对现有的,需要逐个去修改才行。如果不设置这个选项,那么使用的就是上面设置的那个默认的,所以没特殊需要,还是不要针对每个 thresholds 设置自己的 trigger 值比较好,这样方便修改。我通过修改数据库的方法,直接把这些都修改了。 UPDATE thold_data SET thold_fail_trigger = NULL; 修改了之后还没有收到,这下应该清净了吧?

为resin配置oracle连接池

resin 2.x 的配置方法和 3.x 的方法有区别。按照官方文档,做下面的配置。 <database> <jndi-name>oraPool</jndi-name> <driver> <type>oracle.jdbc.pool.OracleConnectionPoolDataSource</type> <url>jdbc:oracle:thin:@localhost:1521:dbname</url> <user>username</user> <password>password</password> </driver> #…. </database>  在上面的 …. 这里还可以添加其他的配置信息。配置好之后启动resin,会发现提示类似下面的信息。 conf/resin.conf:218: java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleConnectionPoolDataSource 提示没有找到连接oracle数据库的jdbc驱动。这个驱动在oracle的安装目录里面有。比如我这里是在 /db/oracle/10.1.0/product/10g/jdbc/lib/ 。里面好多文件,具体都什么作用可以看这里。 复制这个目录里面的 classes12.jar 和 nls_charset12.jar 到resin的 lib 目录下面,重新启动 resin 就可以了。本文完成过程中参考了这篇文章。如何使用这个pool,官方文档也有说明。

resin 的安装步骤

resin目前已经到了3.1版本,从resin网站上面下载的resin不带jdk,需要自己去下载。resin的下载页面在这里。下载最新的 Resin Pro 3.1.1 版本。 jdk的下载地址在 这里 ,resin 3.1需要1.5及以上版本的jdk。 先来安装resin: tar zxvf resin-pro-3.1.1 cd resin-pro-3.1.1 ./configure –prefix=/usr/local/resin #安装的目的地址 make &amp;&amp; make install 安装完resin之后,安装jdk: cd /usr/local chmod +x /root/jdk-6u1-linux-i586.bin /root/jdk-6u1-linux-i586.bin 此后会在/usr/local/下面建立一个jdk1.6.0_01目录,jdk就安装完毕了。 resin 的配置文件在 /usr/loca/resin/conf 下面,主要是 resin.conf 。默认的端口是8080。 <http port="8080" address="*"> 然后就是添加自己的应用地址了。 <host id="" root-directory="."> <web-app id="/" root-directory="webapps/ROOT"> 在这下面添加一行 <web-app id="/test" root-directory="/www/test/"> 此后呢,访问 http://ip:8080/test 就可以访问到你的应用了。

linux tuning

地址 http://www.enigma.id.au/linux_tuning.txt # Linux kernel tweaking for performance and security on a busy Linux # server with a decent amount of memory. # # This file should be saved as /etc/sysctl.conf # You can source it manually if your system has booted by using: # sysctl -e -p /etc/sysctl.conf # # Paul Day, paul (at) [...]