1)合理的设置php-fpm(LNMP环境)和Apache(LNAMP环境)的最大进程数量。这个参数我见过设置为1000的,也见过设置为2的,这两个值都太过于儿戏了,设置高了会有内存用光爆掉的危险,设置低了几个并发访问就网页就卡住了。
如果实在不知道这个值应该设置为多少,那么这样计算,(内存以MB为单位的容量*0.6)/x,0.6是指60%的内存让给处理PHP的进程使用,x是指每个平均每个进程使用的内存大小,一般可以这样计算,如果网站生成了HTML,只有计数等少量的并不复杂的PHP页面,x计为5,Discuz论坛计为15,Wordpress计为20(多进程下涉及到共享内存的问题,并不能单纯的累积RES的值,可以使用psmem这个工具计算内存)。上限不要超过200-500,再多就不稳定了。这样虽然不一定是最优的设置,但绝对要比一些一键安装脚本胡乱设置的一个固定的数字要强非常多。之所以把这条列在第一位,是因为这个设置可能会产生的问题,与人们对它的认知,严重不成正比。
2)缓存模块一定要安装,个人主要是使用xcache和eaccelerator,这二者的性能差距不会太大,但是用缓存模块和不用缓存模块的性能差距非常大。eaccelerator已经很长时间不更新,一般在程序对xcache不兼容的情况下才用eaccelerator。PHP5.5开始提供opcache,本人还没怎么用过,不发表评价。
3)MySQL如果出现瓶颈,优化主要是在数据库结构和语句上,以及程序上的设计(比如缓存很重要),my.cnf的优化帮助非常小。最好在建站前预估一下自己网站可能会达到的数据量,然后插入数据测试下,看看程序能不能行,不行的话能不能有优化的余地,否则就换程序。等网站上线了好久,出现问题了再想去优化,难度和成本就太大了。
4)要养成给每个网站使用单独的数据库帐号的习惯,而不是用root。
5)PHP一定要设置disable_functions和open_basedir,而且是这二个都设置。看过几篇突破disable_functions和open_basedir防护设置的文章,基本都是这样,突破其中一项,需要利用到另一项设置的空缺。再举个简单点的例子,如果只设置了open_basedir而无disable_functions,那么用shell_exec等函数执行ls和cat命令就能继续在你的主机里畅游了。
6)注意程序官方的更新,有补丁一定要在第一时间打上。现在搞黑 产的黑客们都是用工具实现高度自动化的攻击,效率非常之高,千万不要抱有侥幸心理。
7)某些出了名的漏洞非常多的程序,就不要再用了,不管是由于什么理由想选择它,等被黑了会更头疼。
8)注意程序插件和模板的问题,这个问题包括性能和安全两个方面。尤其是wordpress,它插件和模板里涉及到的SQL语句,很可能会让WP本来就不怎么样的性能变的更糟。
9)注意帐号安全,关于介绍如何使用安全的密码已经可以单独再写篇文章了,所以这里只简单点说,每个地方,使用单独的随机生成的密码。千万不要在不同的地方使用同一个密码,也不要使用过于简单的弱密码,否则,你主机的大门基本已经给黑 客们开了一条缝了。
10)网站一定要注意备份,我亲自接触过的站长里,最严重的一位是一天几十万PV的网站,由于硬盘问题,数据全丢,无备份,这损失就不用多说了。哪怕是一个月备份一次,最后都是可以救命的。还有,最好要检查一下备份的数据有没有问题,能不能正常使用。