Apache在Linux下应用的比较多,这里的配置基于Windows NT,因为国内大多数站长都是使用的Windows服务器。
前段时间,我的手机壁纸网站服务器IIS崩溃,一时没有找到原因,重装IIS也没有解决问题,所以临时使用Apache做为WebServer。
这里记录下配置笔记。
首先是Apache的安全配置:
如果不需要目录浏览,禁用目录浏览
Options FollowSymLinks
如果不需要.htaccess功能,能起到非常重要的安全保护并加快程序响应速度
AllowOverride none
禁用不用或者不安全的模块
启用Apache的错误日志功能
ErrorLog "D:/wamp/logs/apache_error.log"
启用PHP的目录权限限制,严格控制跨目录访问权限
php_admin_value open_basedir "E:/wamp/www.4wei.cn"
修改Apache的默认用户组和用户
User daemon
Group daemon
禁止显示Apache的版本信息和系统信息
ServerTokens ProductOnly
ServerSignature Off
其次,是Apache在Windows下的优化配置,主要是mpm_winnt的配置:
主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化
ThreadsPerChild 250
MaxRequestsPerChild 5000
mpm_winnt的详细说明和配置请参考
http://www.javatang.com/archives/2008/02/19/0801260.html
最后,是PHP的一些安全设置:
请保证你的PHP版本已经升级为最新版,这样可以解决很多棘手安全问题
可以考虑启用安全模式,如果程序没有严格要求的话
必须禁用一些高危函数,其中,可以保留phpinfo这个函数
disable_functions = exec,passthru,shell_exec,system,popen,proc_open,proc_close,curl_exec,curl_multi_exec,parse_ini_file,show_source,dl,passthru,escapeshellarg,escapeshellcmd
禁用危险类
disable_classes = "com"
禁止显示PHP的版本
expose_php = Off
禁用全局变量,这是一个非常可怕的问题,PHP6中已经删除此项设置
register_globals = Off
现在用Nginx的用户不少,权限配置不是很完善,可以参考下文:
http://www.xpb.cn/blog/665.html