对于访问量稍大的站点,Apache的这些默认配置是无法满足需求的,我们仍需调整Apache的一些参数,使Apache能够在大访问量环境下发挥出更好的性能.以下我们对Apache配置文件httpd.conf中对性能影响较大的参数进行一些说明.
(1) Timeout 该参数指定Apache在接收请求或发送所请求内容之前的最长等待时间(秒),若超过该时间Apache则放弃处理该请求,并释放连接.该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30.
(2) KeepAlive 该参数控制Apache是否允许在一个连接中有多个请求,默认打开.但对于大多数论坛类型站点来说,通常设置为off以关闭该支持.
(3) MPM – prefork.c 在默认情况下Apache使用Prefork(进程)工作模式,可以说这部分的参数设置是对Apache性能影响的核心和关键.
用户可以在配置文档中找到以下配置段:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 15
MaxRequestsPerChild 0
修改为推荐配置配置:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1024
MaxClients 768
MaxRequestsPerChild 0
完成了上述对Apache的调整,Apache已经获得了较大的性能改善.记住,在修改任何参数后都需要重启Apache才能生效的.
对于PHP的优化主要是对php.ini中的相关主要参数进行合理调整和设置,以下我们就来看看php.ini中的一些对性能影响较大的参数应该如何设置.
vi /etc/php.ini
(1) PHP函数禁用找到:
disable_functions =
该选项可以设置哪些PHP函数是禁止使用的,PHP中有一些函数的风险性还是相当大的,可以直接执行一些系统级脚本命令,如果允许这些函数执行,当PHP程序出现漏洞时,损失是非常严重的!以下我们给出推荐的禁用函数设置:
disable_functions = phpinfo,passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status
需注意:如果您的服务器中含有一些系统状态检测的PHP程序,则不要禁用shell_exec,proc_open,proc_get_status等函数.
(2) PHP脚本执行时间找到:
max_execution_time = 30
该选项设定PHP程序的最大执行时间,如果一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能执行完毕,则PHP不再继续执行,直接给客户端返回超时错误.没有特殊需要该选项可保持默认设置30秒,如果您的PHP脚本确实需要长执行时间则可以适当增大该时间设置.
(3) PHP脚本处理内存占用找到:
memory_limit = 8M
该选项指定PHP脚本处理所能占用的最大内存,默认为8MB,如果您的服务器内存为1GB以上,则该选项可以设置为12MB以获得更快的PHP脚本处理效率.
(4) PHP全局函数声明找到:
register_globals = Off
网络上很多关于PHP设置的文章都推荐将该选项设置为On,其实这是一种及其危险的设置方法,很可能引起严重的安全性问题.如果没有特殊的需要,强烈推荐保留默认设置!
(5) PHP上传文件大小限制找到:
upload_max_filesize = 2M
该选项设定PHP所能允许最大上传文件大小,默认为2MB.根据实际应用需求,可以适当增大该设置. (6) Session存储介质找到:
session.save_path
如果你的PHP程序使用Session对话,则可以将Session存储位置设置为 /dev/shm
,/dev/shm
是Linux系统独有的TMPFS 文件系统,是以内存为主要存储方式的文件系统,比RAMDISK更优秀,因为可以使用DISKSWAP作为补充,而且是系统自带的功能模块,不需要另行配置.想想看,从磁盘IO操作到内存操作,速度会快多少?只是需要注意,存储在 `/dev/shm`的数据,在服务器重启后会全部丢失.不过这对于 Session来说是无足轻重的.