64MB VPS 上优化 PHP

php

PHP 默认会有很多扩展模块自动启动,这里优化 PHP 的主要思路就是禁止那些用不着的模块去节省内存资源。

提高安全

一般来说,通过隐藏版本等信息来提高安全性的方法不是很管用。但在有些情况下,尽可能的多增加一点安全性是值得的。在 php.ini 文件里设置 expose_php = off 可以帮助隐藏 PHP 信息,这样就增加了一点点攻击者发现系统漏洞的难度。

expose_php = Off

提高性能

register_globals 既关系到安全问题也关系到性能问题,register_globals = On 的话容易导致变量滥用,给攻击者控制判断变量。不过现在的 PHP 版本都把这个参数默认设置为 Off。

register_globals = Off


禁用 $HTTP_GET_VARS 和 $HTTP_POST_VARS,现在盛行 $_GET和$_POST,不太可能使用这些过时的特性,屏蔽它们可以提高性能。

register_long_arrays = Off

禁用 $argc 和 $argv,这两个变量的作用就像 C 语言里面的一样,用来传递参数数量和参数值。如果不使用这些变量,建议关闭此选项。

register_argc_argv = Off

Magic quotes for incoming GET/POST/Cookie data.

magic_quotes_gpc = Off

Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.

magic_quotes_runtime = Off

Use Sybase-style magic quotes (escape ‘ with ” instead of \’).

magic_quotes_sybase = Off

每个 PHP 脚本在被强制性中断之前可以等待的最长时间。当脚本陷入一个无限循环时,这个就很有用。但是,如果有一个需要等待很长时间才需要完成的程序,那么把这个值设的过小可能会给你带来麻烦。比如,上传一个很大的文件。所以要根据自己的 PHP 脚本程序小心使用。

max_execution_time = 30

这个参数限定了 PHP 脚本用来处理数据请求的次数。

max_input_time = 60

每个 PHP 脚本所能够使用的最大内存,默认是 128MB,我的 64M VPS 总共还没有 128MB 呢,建议改小到 16MB 或 8MB。

memory_limit = 16M 

PHP 能够接受的最大 POST 数据量。一般来说,memory_limit 的值应该比 post_max_size 值高。

post_max_size = 8M 

评论 (3 Comments)

  1. php优化一般效果不大,主要还是优化web服务器.

  2. 嗯,如果能优化数据库,使用 php 加速器就更好了,其实网站性能主要在架构、数据库和磁盘 IO。

  3. 其实还是有效果的……内存使用下降很多啊,准备装PHP加速器了。对于64MB的VPS,个人感觉用SQLite就行了,现在WordPress什么的都由相应插件

发表评论