CentOS-5 rpm安装yum

CentOS-5 32位:

  1. for file in
  2. gmp-4.1.4-10.el5.i386.rpm
  3. readline-5.1-3.el5.i386.rpm
  4. dbus-python-0.70-9.el5_4.i386.rpm
  5. libxml2-2.6.26-2.1.12.i386.rpm
  6. libxml2-python-2.6.26-2.1.12.i386.rpm
  7. expat-1.95.8-8.3.el5_5.3.i386.rpm
  8. python-elementtree-1.2.6-5.i386.rpm
  9. sqlite-3.3.6-5.i386.rpm
  10. python-sqlite-1.1.7-1.2.1.i386.rpm
  11. elfutils-0.137-3.el5.i386.rpm
  12. rpm-python-4.4.2.3-22.el5.i386.rpm
  13. m2crypto-0.16-8.el5.i386.rpm
  14. python-urlgrabber-3.1.0-6.el5.noarch.rpm
  15. yum-3.2.22-37.el5.centos.noarch.rpm
  16. do rpm -Uvh http://mirror.centos.org/centos-5/5/os/i386/CentOS/$file;
  17. done

CentOS-5 64位:

  1. for file in
  2. gmp-4.1.4-10.el5.x86_64.rpm
  3. readline-5.1-3.el5.x86_64.rpm
  4. dbus-python-0.70-9.el5_4.x86_64.rpm
  5. libxml2-2.6.26-2.1.12.x86_64.rpm
  6. libxml2-python-2.6.26-2.1.12.x86_64.rpm
  7. expat-1.95.8-8.3.el5_5.3.x86_64.rpm
  8. python-elementtree-1.2.6-5.x86_64.rpm
  9. sqlite-3.3.6-5.x86_64.rpm
  10. python-sqlite-1.1.7-1.2.1.x86_64.rpm
  11. elfutils-0.137-3.el5.x86_64.rpm
  12. rpm-python-4.4.2.3-22.el5.x86_64.rpm
  13. m2crypto-0.16-8.el5.x86_64.rpm
  14. python-urlgrabber-3.1.0-6.el5.noarch.rpm
  15. yum-3.2.22-37.el5.centos.noarch.rpm
  16. do rpm -Uvh http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/$file;
  17. done

CentOS一键配置rsync服务器脚本

1、保存下面的代码为一个文件,上传到服务器端,名称为rsync.sh

  1. #!/bin/bash
  2. #rsync Written by zhumaohai
  3. #For more information please visit http://devops.webres.wang
  4. echo “Please input the rsync username:”
  5. read username
  6. echo “Please input the rsync username password:”
  7. read password
  8. echo “Please input the allow ip address:”
  9. read allowip
  10. echo “Please input the path you want to rsync:”
  11. read rsyncpath
  12. echo “==========================input all completed========================”
  13. echo “==========================install rsync========================”
  14. yum -y install rsync
  15. useradd $username
  16. mkdir /etc/rsyncd
  17. cat >/etc/rsyncd/rsyncd.conf<<EOF
  18. # Minimal configuration file for rsync daemon
  19. # See rsync(1) and rsyncd.conf(5) man pages for help
  20.  
  21. # This line is required by the /etc/init.d/rsyncd script
  22. pid file = /var/run/rsyncd.pid   
  23. port = 873
  24. #address = $serverip
  25. #uid = nobody
  26. #gid = nobody   
  27. uid = root   
  28. gid = root   
  29.  
  30. use chroot = yes
  31. read only = yes
  32.  
  33.  
  34. #limit access to private LANs
  35. hosts allow=$allowip
  36. hosts deny=*
  37.  
  38. max connections = 5
  39. motd file = /etc/rsyncd/rsyncd.motd
  40.  
  41. #This will give you a separate log file
  42. #log file = /var/log/rsync.log
  43.  
  44. #This will log every file transferred – up to 85,000+ per user, per sync
  45. #transfer logging = yes
  46.  
  47. log format = %t %a %m %f %b
  48. syslog facility = local3
  49. timeout = 300
  50.  
  51. [home]   
  52. path = $rsyncpath   
  53. list=yes
  54. ignore errors
  55. auth users = $username
  56. secrets file = /etc/rsyncd/rsyncd.secrets 
  57. EOF
  58. echo “$username:$password” > /etc/rsyncd/rsyncd.secrets
  59. chmod 600 /etc/rsyncd/rsyncd.secrets
  60. cat >/etc/rsyncd/rsyncd.motd<<EOF
  61. +++++++++++++++++++++++++++
  62. + webres.wang  rsync  2011-2012 +
  63. +++++++++++++++++++++++++++
  64. EOF
  65. /usr/bin/rsync –daemon  –config=/etc/rsyncd/rsyncd.conf
  66. echo “/usr/bin/rsync –daemon  –config=/etc/rsyncd/rsyncd.conf” >>/etc/rc.d/rc.local
  67. ps -aux | grep rsync

2、赋予脚本权限

  1. chmod +x rsync.sh

3、执行脚本

  1. ./rsync.sh

4、客户端同样需要安装rsync
具体配置见http://devops.webres.wang/2011/06/rsync-server-setup/

Linux php.ini的安全优化配置

(1) PHP函数禁用找到

  1. disable_functions =

该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些CentOS系统级脚本命令,如果允许这些函数执行,当PHP 程序出现漏洞时,损失是非常严重的!以下我们给出推荐的禁用函数设置:

  1. disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status

需注意:如果您的服务器中含有一些CentOS系统状态检测的PHP程序,则不要禁用shell_exec,proc_open,proc_get_status等函数。

(2) PHP脚本执行时间找到

  1. max_execution_time = 30

该选项设定PHP程序的最大执行时间,如果一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能执行完毕,则PHP不再继续执行,直接给客户端返回超时错误。没有特殊需要该选项可保持默认设置30秒,如果您的PHP脚本确实需要长执行时间则可以适当增大该时间设置。

(3) PHP脚本处理内存占用找到

  1. memory_limit = 8M

该选项指定PHP脚本处理所能占用的最大内存,默认为8MB,如果您的服务器内存为1GB以上,则该选项可以设置为12MB以获得更快的PHP脚本处理效率。

(4) PHP全局函数声明找到

  1. register_globals = Off

网络上很多关于PHP设置的文章都推荐将该选项设置为On,其实这是一种及其危险的设置方法,很可能引起严重的安全性问题。如果没有特殊的需要,强烈推荐保留默认设置!

(5) PHP上传文件大小限制找到

  1. upload_max_filesize = 2M

该选项设定PHP所能允许最大上传文件大小,默认为2MB。根据实际应用需求,可以适当增大该设置。
(6) 几个地方的检查
查找:display_errors
如果是On的话改成Off
查找:magic_quotes_gpc
如果是Off的话改成On

Linux查看网卡实时流量软件

nload是个很好用的一个工具,功能也很强.只是相对单一,只能查看总的流量,不能像iptraf那样,可针对IP,协议等
可以实时地监控网卡的流量,分Incoming,Outgoing两部分,也就是流入与流出的流量。同时统计当前,平均,最小,最大,总流量的值,使人看了一目了然。下面是安装步骤:

  1. yum install gcc gcc-c++ ncurses-devel
  2. wget http://www.roland-riegel.de/nload/nload-0.7.3.tar.gz
  3. tar zxvf nload-0.7.3.tar.gz
  4. cd nload-0.7.3
  5. ./configure
  6. make & make install

nload -m即可查看实时流量。
官方网站:http://www.roland-riegel.de/nload/

CentOS-6 64位安装PHP5.2出现error: libjpeg.(a|so),error: libpng.(a|so) not found

昨天测试lamp一键安装脚本时,出现error: libjpeg.(a|so),error: libpng.(a|so) not found等两个错误,根据错误提示,是找不到libjpeg和libpng库文件的意思,找了一下,发现这两个文件在目录/usr/lib64下,而php并不查找这个位置,而是去/usr/lib搜索库文件,所以只能建立两个软链接。

  1. ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so
  2. ln -s /usr/lib64/libpng.so /usr/lib/libpng.so

同是64位,CentOS-5就没有这种问题。

Linux vsftpd编译安装和配置允许本地用户登录FTP

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。下面我们一步一步介绍如何编译安装vsftpd和配置。
1、下载vsftpd源码

  1. wget https://security.appspot.com/downloads/vsftpd-2.3.4.tar.gz

2、编译vsftpd源码
64位的系统编译之前先要执行cp /lib64/libcap.so.1 /lib/libcap.so.1命令:

  1. tar xzvf vsftpd-2.3.4.tar.gz
  2. cd vsftpd-2.3.4
  3. make
  4. make install

3、配置vsftpd

  1. cp vsftpd.conf /etc
  2. cp RedHat/vsftpd.pam /etc/pam.d/ftp
  3. sed i ‘s/anonymous_enable/#anonymous_enable=YES/g’ /etc/vsftpd.conf
  4. sed i ‘s/#local_enable=YES/local_enable=YES/g’ /etc/vsftpd.conf
  5. sed i ‘s/#write_enable=YES/write_enable=YES/g’ /etc/vsftpd.conf
  6. sed i ‘s/#local_umask=022/local_umask=022/g’ /etc/vsftpd.conf
  7. sed i ‘s/#chroot_local_user=YES/chroot_local_user=YES/g’ /etc/vsftpd.conf

4、启动vsftpd并设置开机启动

  1. /usr/local/sbin/vsftpd &
  2. sed -i ‘$a/usr/local/sbin/vsftpd &’ /etc/rc.d/rc.local

5、添加FTP用户(用户名:ftpuser ftp根目录/home/wwwroot/ftpuser)

  1. useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

MySQL manager or server PID file could not be found!

[root@centos var]# service mysqld stop
MySQL manager or server PID file could not be found! [FAILED]
解决办法:
首先查看一下进程
[root@centos mysql]# ps aux |grep mysq*
root 2643 0.0 0.2 4536 1224 ? S 01:09 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/usr/local/mysql/var –pid-file=/usr/local/mysql/var/centos.pid
mysql 2757 0.0 1.2 36976 6608 ? Sl 01:09 0:00 /usr/local/mysql/libexec/mysqld –basedir=/usr/local/mysql –datadir=/usr/local/mysql/var –user=mysql –log-error=/usr/local/mysql/var/centos.err –pid-file=/usr/local/mysql/var/centos.pid –socket=/tmp/mysql.sock –port=3306
root 4788 0.0 0.1 3920 684 pts/2 R+ 11:11 0:00 grep mysq*
如果看到上面的内容,那说明,Mysql的进程卡死了,这时用就要把这些卡死的进程都关闭
[root@centos mysql]# kill 2643
[root@centos mysql]# kill 2757
启动Mysql 就ok了
[root@centos mysql]# service mysqld start
Starting MySQL. [ OK ]

Linux apache日志分割脚本

  1. #!/bin/bash
  2. logpath=/home/wwwlogs/ #日志的路径
  3. expred=7 #保存7天前的日志
  4. pid=/usr/local/apache/logs/httpd.pid #httpd pid路径
  5. datetime=$(date -d yesterday +%Y%m%d) #昨天的日期
  6.  
  7. if [ ! -d ${logpath}oldlog ]; then
  8. mkdir ${logpath}oldlog
  9. fi
  10. mkdir ${logpath}oldlog/${datetime}
  11. mv ${logpath}*.log ${logpath}oldlog/${datetime}/
  12. kill -USR1 $(cat ${pid})
  13. find ${logpath}oldlog -type f -mtime +${expred} -exec rm -f {} ;

保存为apache-log-handle.sh文件,设置crontab执行。

  1. echo ‘1 0 * * *  /root/sh/apache-log-handle.sh’ >> /var/spool/cron/root