openssl undefined reference to `SSLv2_client_method’

今天在Ubuntu 11.10编译php-5.2.17的时候出现如下的错误:

  1. php-5.2.17/ext/openssl/xp_ssl.c:357: undefined reference to `SSLv2_server_method’
  2. php-5.2.17/ext/openssl/xp_ssl.c:337: undefined reference to `SSLv2_client_method’
  3. collect2: ld returned 1 exit status
  4. make: *** [sapi/cgi/php-cgi] 错误 1

这个需要一个补丁禁用openssl的SSLv2_client_method,方法如下:

  1. cd php-5.2.17/
  2. wget http://devops.webres.wang/wp-content/uploads/2012/06/debian_patches_disable_SSLv2_for_openssl_1_0_0.patch
  3. patch -p1 < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch

然后再重新编译php

  1. make clean
  2. make && make install

U盘安装CentOS系统

下面来简单说下使用U盘安装CentOS系统,这里以centos-6.2 i386 minimal为例安装。
使用到的材料:
1、centos-6.2 i386 minimal
下载地址:http://mirrors.163.com/centos/6.2/isos/i386/CentOS-6.2-i386-minimal.iso
2、UltraISO
下载地址:http://www.crsky.com/soft/1134.html
3、U盘一个
开始安装:
1、打开UltraISO,依次点击“文件”》“打开”,选择“CentOS-6.2-i386-minimal.iso”文件。
2、“启动”》“写入硬盘映像”,在“硬盘驱动器选择u盘”,写入方式默认即可,点击“格式化”格式u盘,最后“写入”即可完成。
3、完成写入后,只保留“images”和“isolinux”两个文件夹,其余的全部删除,然后复制CentOS-6.2-i386-minimal.iso到u盘根目录。
4、重启以u盘启动,选”Install or upgrade an existing system”回车,语言选择“Chinese(Simplified)”回车,选择键盘模式,默认,然后回车。在下一步“Installation Method”选择“Hard drive”,然后选择u盘所在的分区(不确定的可以一个个尝试)。下面就是常规的系统安装了。

更改MySQL数据文件目录位置

有时候我们需要更改mysql数据文件的所在位置,下面以yum安装的mysql为例,把默认的data目录/var/lib/mysql更改为/home/mysql。
1、停止mysqld

  1. service mysqld stop

2、修改my.cnf
在[mysqld]中,把datadir=/var/lib/mysql更改为datadir=/home/mysql,把socket=/var/lib/mysql.sock更改为socket=/home/mysql/mysql.sock,最终修改如下:

  1. [mysqld]
  2. datadir=/home/mysql
  3. socket=/home/mysql/mysql.sock

在[mysql]中添加socket路径:

  1. socket=/home/mysql/mysql.sock

3、移动data目录

  1. mv /var/lib/mysql  /home

4、修改启动文件/etc/init.d/mysqld
把get_mysql_option mysqld datadir “/var/lib/mysql”更改为get_mysql_option mysqld datadir “/home/mysql”。

CentOS系统安装过程中配置软RAID-0或RAID-1

什么是RAID-0

RAID-0 (等量模式, stripe):效能最佳。这种模式如果使用相同型号与容量的磁碟来组成时,效果较佳。这种模式的 RAID 会将磁碟先切出等量的区块 (举例来说, 4KB), 然后当一个文件要写入 RAID 时,该文件会依据区块的大小切割好,之后再依序放到各个磁碟里面去。由於每个磁碟会交错的存放数据, 因此当你的数据要写入 RAID 时,数据会被等量的放置在各个磁碟上面。举例来说,你有两颗磁碟组成 RAID-0 , 当你有 100MB 的数据要写入时,每个磁碟会各被分配到 50MB 的储存量。RAID-0 的示意图如下所示:
存储
上图的意思是,在组成 RAID-0 时,每颗磁碟 (Disk A 与 Disk B) 都会先被区隔成为小区块 (chunk)。 当有数据要写入 RAID 时,数据会先被切割成符合小区块的大小,然后再依序一个一个的放置到不同的磁碟去。 由於数据已经先被切割并且依序放置到不同的磁碟上面,因此每颗磁碟所负责的数据量都降低了!照这样的情况来看, 越多颗磁碟组成的 RAID-0 效能会越好,因为每颗负责的数据量就更低了! 这表示我的数据可以分散让多颗磁碟来储存,当然效能会变的更好啊!此外,磁碟总容量也变大了! 因为每颗磁碟的容量最终会加总成为 RAID-0 的总容量喔!

只是使用此等级你必须要自行负担数据损毁的风险,由上图我们知道文件是被切割成为适合每颗磁盘分区区块的大小, 然后再依序放置到各个磁碟中。想一想,如果某一颗磁碟损毁了,那么文件数据将缺一块,此时这个文件就损毁了。 由於每个文件都是这样存放的,因此 RAID-0 只要有任何一颗磁碟损毁,在 RAID 上面的所有数据都会遗失而无法读取。

另外,如果使用不同容量的磁碟来组成 RAID-0 时,由於数据是一直等量的依序放置到不同磁碟中,当小容量磁碟的区块被用完了, 那么所有的数据都将被写入到最大的那颗磁碟去。举例来说,我用 200G 与 500G 组成 RAID-0 , 那么最初的 400GB 数据可同时写入两颗磁碟 (各消耗 200G 的容量),后来再加入的数据就只能写入 500G 的那颗磁碟中了。 此时的效能就变差了,因为只剩下一颗可以存放数据嘛!

什么是RAID-1

RAID-1 (映射模式, mirror):完整备份。这种模式也是需要相同的磁碟容量的,最好是一模一样的磁碟啦!如果是不同容量的磁碟组成 RAID-1 时,那么总容量将以最小的那一颗磁碟为主!这种模式主要是『让同一份数据,完整的保存在两颗磁碟上头』。举例来说,如果我有一个 100MB 的文件,且我仅有两颗磁碟组成 RAID-1 时, 那么这两颗磁碟将会同步写入 100MB 到他们的储存空间去。 因此,整体 RAID 的容量几乎少了 50%。由於两颗硬盘内容一模一样,好像镜子映照出来一样, 所以我们也称他为 mirror 模式罗~
存储
如上图所示,一份数据传送到 RAID-1 之后会被分为两股,并分别写入到各个磁碟里头去。 由於同一份数据会被分别写入到其他不同磁碟,因此如果要写入 100MB 时,数据传送到 I/O 汇流排后会被复制多份到各个磁碟, 结果就是数据量感觉变大了!因此在大量写入 RAID-1 的情况下,写入的效能可能会变的非常差 (因为我们只有一个南桥啊!)。 好在如果你使用的是硬件 RAID (磁盘阵列卡) 时,磁盘阵列卡会主动的复制一份而不使用系统的 I/O 汇流排,效能方面则还可以。 如果使用软件磁盘阵列,可能效能就不好了。

由於两颗磁碟内的数据一模一样,所以任何一颗硬盘损毁时,你的数据还是可以完整的保留下来的! 所以我们可以说, RAID-1 最大的优点大概就在於数据的备份吧!不过由於磁碟容量有一半用在备份, 因此总容量会是全部磁碟容量的一半而已。虽然 RAID-1 的写入效能不佳,不过读取的效能则还可以啦!这是因为数据有两份在不同的磁碟上面,如果多个 processes 在读取同一笔数据时, RAID 会自行取得最佳的读取平衡。
以上文字转自:http://vbird.dic.ksu.edu.tw/linux_basic/0420quota_2.php

系统安装过程配置raid

下面我们以centos 5.8,两块硬盘/dev/sda和/dev/sdb为例进行操作。

1、自定义分区

在“安装需要对您的硬盘进行分区”的步骤中,选择“建立自定义分区结构”

2、创建RAID分区

2.1 为/boot创建raid分区
点击“RAID”按钮,选择“创建软件RAID分区”,“确定”进行一步。在“允许的驱动器”中只选择“sda”,大小100M即可,之后点击确定。重复之前的步骤,在“允许的驱动器”中只选择”sdb”,其它的与之前的操作相同。如图:
存储
存储
2.2 为swap创建raid分区
根据2.2的步骤,只是大小不同,如内存2G的机器,可以创建2G的swap。
2.3 为 根目录 /创建raid分区
根据2.2的步骤,把剩下的空间全部分配给根目录。
最终状态如下:
存储
存储

3、创建RAID设备

3.1 boot raid设备
点击“RAID”,选择“创建RAID设备”,点击“确定”。挂载点选择“/boot”,文件系统类型“ext3”,raid设备“md0”,raid级别“RAID1”,RAID成员选择“sda1和sdb1”(可以根据大小判断是刚才创建的boot)。点击“确定”完成boot raid设备的创建。
存储
3.2 swap raid设备
点击“RAID”,选择“创建RAID设备”,点击“确定”。文件系统类型“swap”,raid设备“md1”,raid级别“RAID0或RAID1”,RAID成员选择“sda2和sdb2”(可以根据大小判断是刚才创建的swap)。点击“确定”完成swap raid设备的创建。
存储
3.3 root raid设备
点击“RAID”,选择“创建RAID设备”,点击“确定”。挂载点选择“/boot”,文件系统类型“ext3”,raid设备“md2”,raid级别“RAID0或RAID1”,RAID成员选择“sda3和sdb3”(可以根据大小判断是刚才创建的swap)。点击“确定”完成root raid设备的创建。
存储
此时就创建好了RAID,最终状态如下:
存储
存储
存储

更改pureftpd vsftpd与proftpd的默认端口

ftp的默认端口是21,但如果启用ftp且开放21端口,经常会受到各种工具尝试破解ftp密码,且说你的ftp密码非常的强大,几乎不能暴力破解,但是工具暴力破解ftp密码时需要消耗系统资源,所以我们干脆更改下ftp的端口,这样就可以防止了各种暴力破解工具的侵扰。
下面devops.webres.wang把21端口更改为2121。
对于pureftpd:
打开pure-ftpd.conf文件,找到:

  1. # Bind                      127.0.0.1,21

更改为

  1. Bind                      0.0.0.0,2121

对于vsftpd:
在vsftpd.conf中增加:

  1. listen_port=2121

对于proftpd:
在文件/etc/proftpd.conf找到:

  1. Port                            21

更改为:

  1. Port                            2121

如果开启了iptables,iptables限制了所有的出站端口,加载模块ip_conntrack_ftp,这时在加载ip_conntrack_ftp模块时需要更改代理端口为2121。
打开/etc/sysconfig/iptables-config,保证此文件定义加载了ip_conntrack_ftp,如:

  1. IPTABLES_MODULES="ip_conntrack_ftp"

然后在文件/etc/modprobe.conf增加此模块的参数:

  1. options ip_conntrack_ftp ports=2121

如果需要手动加载,则可以执行以下命令:

  1. /sbin/modprobe ip_conntrack_ftp ports=2121

使用cacti监控服务器流量

上次devops.webres.wang已经详细介绍如何安装cacti了,这次我们来学习如何简单地配置cacti来监控服务器流量。
下面是cacti的工作流程图:
监控
1、登录cacti,点击“Devices”,然后点击”Add”创建设备,如图:
监控
2、然后输入Description,Hostname,Host Template选择“Generic SNMP-enabled Host”,SNMP Version一般选择“Version 1”(当然得根据你具体的snmp如何配置)。完成后点击”create”创建设备,如图:
监控
3、接着在顶部点击“Create Graphs for this Host”创建图表,如图:
监控
4、在“SNMP – Interface Statistics”下面会显示你的网卡,选择其中一个监控即可,我们这里选”eth0″,之后单击“create”。
监控
5、现在已经成功创建图表,我们点击左侧的“Graph Management”查看图表列表,此时已经可以看到刚才创建的图表,点击相应的图表标题进去查看。
监控
6、现在可能图表还没开始生成,最多等待5分钟,5分钟后图表是创建了,但图表没有数据,需要等待一段时间程序收集数据。
监控