Rootop 服务器运维与web架构

2011-03-25
发表者 Venus
暂无评论

计算机中数据单位计算 bps byte bit

bits per second   —bps

位/秒,每秒传送位数

Bits per Second,数据传输速率的常用单位。比特是信息技术中的最小单位。文件大小(例如文本或图像文件)通常以字节(千字节,兆字节)为单位。一字节对应八比特。在数据传输中,数据通常是串行传输的,即一个比特接一个比特地传输。数据速率的单位是比特每秒,涵义是每秒串行通过的位数的。

bps 与kb的换算   1mb=1024kb  1kb=1024b;计算机因使用二进制,1k为2的10次方,即1024。   字节byte与位bit的关系   1byte=8bit,1字节=8位;如果安装2Mbps流量的宽带,换算成字节,2048K/8=256K,那么下载速度将   ≤256Kb/秒。   BPS中文名称比特率,又称为位率、码率,是数字信号传输率的单位,也是网络带宽数据流量的单位,它用每秒传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数bit/s(bps)、比特率越高,传送的数据量越多。

1GB=1024MB

1MB=1024kb

1kb=1024b (byte字节)

1b=8bit (二进制信息单位-位)

2011-03-23
发表者 Venus
暂无评论

redhat5.5 安装mcrypt模块

需要安装三个软件包,分别是:

libmcrypt-2.5.8.tar.gz

mhash-0.9.9.9.tar.gz

mcrypt-2.6.8.tar.gz

1.先安装libmcrypt  (说明:libmcript默认安装在/usr/local  )

1. #tar -zxvf libmcrypt-2.5.8.tar.gz
2. #cd libmcrypt-2.5.8
3. #./configure
4. #make
5. #make install
6.

2.安装mhash

1. #tar -zxvf mhash-0.9.9.9.tar.gz
2. #cd mhash-0.9.9.9
3. #./configure
4. #make
5. #make install

3.安装mcrypt

1. #tar -zxvf mcrypt-2.6.8.tar.gz
2. #cd mcrypt-2.6.8
3. #export LD_LIBRARY_PATH=/usr/local/lib // 通过set命令查看环境变量

4. ./configure
5. #make
6. #make install

注意:由于在配置mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/文件夹下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local导入键接库。

# export LD_LIBRARY_PATH=/usr/local/lib  ( 通过whereis libmcrypt查看路径然后配置)

4.安装PHP扩展模块:动态加载

使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,于是可以采用phpize。
方法是:
1).要有与现有php完全相同的php压缩包 展开后进入里面的ext/mcrypt目录 (里面是mcrypt的php扩展)
#cd /smb/php-5.1.6/ext/mcrypt         //我的机器里装的是php-5.1.6.tar.gz

2).执行/usr/local/bin/phpize,执行完后,会发现当前目录下多了一些configure文件,如果没报错,则根据提示运行。
#/usr/local/bin/phpize            //可通过 whereis phpize 查看命令位置

./configure –with-php-config=/usr/bin/php-config

make  && make install

再去/usr/lib64/php/modules/ 查看mcrypt.so文件生成了,配置php.ini 载入拓展即可

2011-03-23
发表者 Venus
暂无评论

编译php configure:error:cannot find output from lex,give up

configure时出现以下错误:
configure:error:cannot find output from lex,give up

此错误是说 缺少flex.rpm,从光盘中找到flex-%.i386.rpm,安装,重新编译php,

本人的解决办法:

configure: error: no acceptable cc found in $PATH

yum -y install gcc-c++

configure: error: cannot find output from lex; giving up flex is not installed, install flex.

yum -y install flex

configure: error: xml2-config not found. Please check your libxml2 installation.

yum -y install libxml2-devel

configure: error: Cannot find OpenSSL’s

yum -y install openssl-devel

configure: error: Please reinstall the BZip2 distribution

yum -y install bzip2-devel

configure: error: Please reinstall the libcurl distribution – easy.h should be in /include/curl/

yum -y install curl-devel

configure: error: libjpeg.(a|so) not found.

yum -y install libjpeg-devel

configure: error: libpng.(a|so) not found.

yum -y install libpng-devel

configure: error: freetype2 not found!

yum -y install freetype-devel

configure: error: Unable to locate gmp.h

yum -y install gmp-devel

configure: error: Cannot find pspell

yum -y install aspell-devel

缺哪一个,运行哪一行命令,装上后重新编辑php即可

2011-03-21
发表者 Venus
暂无评论

修改 mysql数据库root密码的安全方法

# mysql -u root -p    //默认无密码,登陆数据库

# mysql> use mysql;     //使用mysql数据库
#
# mysql> update user set password=PASSWORD(‘newpassword’) where user=’root’;

//更新密码
#
# mysql> flush privileges;    //刷新MySQL系统权限的相关表  也可以理解为刷新缓存
#
# mysql> exit

看见 行匹配 和更改为3说明成功。

之前用的mysqladmin方式更改密码的缺点是:

仅能更改一行记录。这样会导致 root用户在 mysql 表里的3行(localhost {HOSTNAME} 127.0.0.1)记录有不同的密码,会对以后使用root用户操作带来隐患。

2011-03-21
发表者 Venus
暂无评论

child process * still did not exit, sending a SIGTERM

有位同学的apache基本一天挂一次,重启httpd服务后正常。检查日志发现一个错误并且是经常性出现:child process * still did not exit, sending a SIGTERM

猜测问题应该出现在子进程中的MaxRequestsPerChild部分,检查他的工作方式:apachectl -l

是prefork模式,然后检查他的配置文件,发现MaxRequestsPerChild部分参数为0,想到有可能是内存泄露了。

对于他这个问题,继续跟进。淡定···

将MaxRequestsPerChild设置成非零值有两个好处:

可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

今天问题算是解决了:

发现日志说,写入访问日志或者是错误日志意外失败。

df -h 一看/var/logs 使用率已经100%了。那么再次检查httpd.conf文件,确定服务器上挂载的20多个站日志位置都位于此路径下,导致日志无法写入而系统崩溃。

通知它删减日志,运行看看。继续跟进···

过了好几天了,没听见他再反应服务器崩溃,那么可以确定,问题解决了。