eAccelerator 配置参数详解

  1. eaccelerator.shm_size="32"

eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0” 是指操作系统的默认值. 默认值是 “0”.可根据服务器的实际情况来调整,16,32,64,128都是可以的。

  1. eaccelerator.cache_dir="/home/php/tmp"

这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator”.

  1. eaccelerator.enable="1"

开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1”。

  1. eaccelerator.optimizer="1"

启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1”。
eaccelerator.check_mtime=”1″
打开或者关闭 PHP 的文件修改检查. “1” 是指打开, “0” 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1”. 默认值是 “1”.

  1. eaccelerator.debug="0"

开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0”。会将缓存命中得记录写入日志。

  1. eaccelerator.filter=""

判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)
如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件都将被缓存。

  1. eaccelerator.shm_max="0"

当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。”0″ 为不限制。默认值为 “0”。

  1. eaccelerator.shm_ttl="0"

当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

  1. eaccelerator.shm_prune_period="0"

当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于”shm_prune_period” 秒的缓存脚本。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

  1. eaccelerator.shm_only="0"

允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 “0”,即:使用磁盘和共享内存进行缓存。

  1. eaccelerator.compress="1"

允许或禁止压缩内容缓存。默认值为 “1”,即:允许压缩。

  1. eaccelerator.compress_level="9"

指定内容缓存的压缩等级。默认值为 “9”,为最高等级。

  1. eaccelerator.keys = "disk_only"
  2. eaccelerator.session = "disk_only"
  3. eaccelerator.content = "disk_only"

设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 “eaccelerator.shm_max” 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据

  1. eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"

这是控制面板的地址
安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错
最后,来看一下我的 eAccelerator 设置

  1. ; eaccelerator
  2. [eaccelerator]
  3. zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
  4. eaccelerator.shm_size="128"
  5. eaccelerator.cache_dir="/tmp/eaccelerator"
  6. eaccelerator.enable="1"
  7. eaccelerator.optimizer="1"
  8. eaccelerator.check_mtime="1"
  9. eaccelerator.debug="0"
  10. eaccelerator.filter=""
  11. eaccelerator.shm_max="0"
  12. eaccelerator.shm_ttl="3600"
  13. eaccelerator.shm_prune_period="3600"
  14. eaccelerator.shm_only="0"
  15. eaccelerator.compress="1"
  16. eaccelerator.compress_level="9"
  17. eaccelerator.keys = "disk_only"
  18. eaccelerator.sessions = "disk_only"
  19. eaccelerator.content = "disk_only"
  20. eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"

另外,再说下 eAccelerator 的安装

  1. # wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
  2. # tar -jxvf eaccelerator-0.9.6.tar.bz2
  3. # cd eaccelerator-0.9.6
  4. # /usr/local/php/bin/phpize
  5. # ./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
  6. # make && make install

文章来源:http://www.21andy.com/blog/20100207/1646.html

Linux vsftpd启动,停止,重启脚本

yum安装vsftpd后启动脚本也安装好了,管理vsftpd进程非常方便。但编译安装vsftpd的话,修改配置文件需要重启,就有点麻烦了,需要用kill杀掉进程,再键入/usr/local/sbin/vsftpd &启动。下面提供一个vsftpd启动脚本,让管理vsftpd也像yum安装管理vsftpd一样轻松。

  1. #!/bin/bash
  2.  
  3. #chkconfig: 345 60 50
  4. #description:vsftpd
  5. . /etc/rc.d/init.d/functions
  6. if [ -f /etc/init.d/functions ] ; then
  7. . /etc/init.d/functions
  8. elif [ -f /etc/rc.d/init.d/functions ] ; then
  9. . /etc/rc.d/init.d/functions
  10. else
  11. exit 0
  12. fi
  13. vsftpd=/usr/local/sbin/vsftpd      //vsftp启动脚本中配置vsftpd安装的路径
  14. prog=vsftpd
  15. RETVAL=0
  16. start() {
  17.         if [ -n "`/sbin/pidof $prog`" ]
  18.         then
  19.                 echo "$prog: already running"       
  20.                 echo
  21.                 return 1
  22.         fi
  23.         echo "Starting $prog:"
  24.         base=$prog
  25.         $vsftpd &
  26.         RETVAL=$?
  27.         usleep 5000000
  28.         if [ -z "`/sbin/pidof $prog`" ]
  29.         then
  30.                 RETVAL=1
  31.         fi
  32.         if [ $RETVAL -ne 0 ]       
  33.         then
  34.         echo "Startup failure"     //vsftp启动脚本启动失败提示
  35.         else
  36.         echo "Startup success"     //vsftp启动脚本启动成功提示
  37.         fi
  38.         echo
  39.         return $RETVAL
  40. }
  41.  
  42. stop() {
  43.         echo "Stopping $prog:"
  44.         killall $vsftpd
  45.         RETVAL=$?
  46.         if [ $RETVAL -ne 0 ]
  47.         then
  48.         echo "Shutdown failure"     //vsftp启动脚本停止失败提示
  49.         else
  50.         echo "Shutdown success"     //vsftp启动脚本停止成功提示
  51.         fi
  52.         echo
  53. }
  54.  
  55. case "$1" in
  56. start)
  57.         start     //vsftp启动脚本服务启动操作
  58.         ;;
  59. stop)
  60.         stop     //vsftp启动脚本服务停止操作
  61.         ;;
  62. status)
  63.         status $vsftpd
  64.         RETVAL=$?    //vsftp启动脚本服务状态
  65.         ;;
  66. restart)
  67.         stop
  68.         usleep 5000000    //vsftp启动脚本服务重启操作
  69.         start
  70.         ;;
  71. *)
  72.         echo "Usage: $prog {start|stop|restart|status}"
  73.         exit 1
  74. esac
  75. exit $RETVAL

使用Apache Mod_Layout模块向网页动态插入内容

什么是Mod_Layout

Mod_Layout能在文档的头部和底部(或者一个标签的之前或之后)放置信息。使用Layout指令你可以动态地向文档的任何地方插入代码。你可以利用它把标准的免责声明增加到服务器上的所有页面,或者在所有页面的顶部放置横幅广告。Mod_Layout能处理很多种类型的文档,如html,text, CGI, Java, PHP or Perl。更多的功能需要你去挖掘。

如何安装

Mod_Layout适用于Apache 1.3 Apache 2 Apache 2.2,对于这三个版本都有对应的Mod_Layout版本下载。
mod_layout-3.1适用Apache 1.3
mod_layout-4.1适用Apache 2
mod_layout-5.1适用Apache 2.2
这三个版本都可以在http://download.tangent.org/下载。
不同的版本安装方式有些许区别,下面以Apache 2.2为例。
1、下载适合的Mod_Layout版本

  1. wget http://download.tangent.org/mod_layout-5.1.tar.gz
  2. tar xvfz mod_layout-5.1.tar.gz
  3. cd mod_layout-5.1

2、编辑Makefile文件

  1. APXS=apxs
  2. APACHECTL=apachectl
  3. CC=`apxs -q CC`
  4. INC=-I`apxs -q INCLUDEDIR` `$(APXS) -q CFLAGS` #-DLAYOUT_FILEOWNER_NAME
  5. LD_SHLIB=`apxs -q LDFLAGS_SHLIB`

主要是保证APXS和APACHECTL的路径有效。
3、开始安装

  1. make
  2. make install

如何使用

在使用之前,请确认你想插入代码的网页是否启用gzip压缩,如果启用,Mod_layout将不能正常工作。
下面是启用mod_layout的一个例子

  1. <virtualHost *:80> 
  2.     AllowOverride None 
  3.     Order allow,deny 
  4.     Allow from all 
  5. <Directory /home/foo/public_html>
  6.        AllowOverride None
  7.        Options SymLinksIfOwnerMatch
  8.        AddOutputFilter LAYOUT html
  9.        LayoutFooter /menu.html
  10.        LayoutIgnoreURI /diary/*
  11.        LayoutIgnoreURI /linux/*
  12. </Directory>
  13. </VirtualHost>

说明:
AddOutputFilter LAYOUT html:启动mod_layout的网页类型为html,你也可以添加php,shtml等
LayoutFooter /menu.html:添加到文档尾的文件menu.html。
LayoutIgnoreURI /diary/*:排除diary目录下的文档。
更多指令:http://www.musc.edu/webserver/mod_layout.html#_1_9

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就没有这种问题。