当前位置:  开发笔记 > 编程语言 > 正文

您建议使用php设置共享服务器

如何解决《您建议使用php设置共享服务器》经验,为你挑选了1个好方法。

从安全/性能的角度来看,您建议使用php设置共享服务器是什么?

Apache mod_php(你如何保护它?除了safe_mode,因为它不会在PHP6中)

Apache CGI + suexec

Lighttpd并为每个用户生成一个FastCGI

LE:我对使用已经制作的控制面板不感兴趣,因为我正在尝试编写自己的控制面板,所以我想知道自己设置这个的最佳方法是什么.我正在考虑使用Lighttpd并为每个托管用户生成一个fastcgi,使得fcgi进程在他的凭据下运行(在lighttpd wiki上有一个教程).这有点安全,但这会影响性能(每个fcgi所需的大量用户/内存),以至于它不是一个可行的解决方案吗?



1> joelhardi..:

就个人而言,虽然Lighttpd没问题,但如果您最终使用轻量级网络服务器+ FastCGI解决方案,我会使用Nginx + FastCGI.我已经运行了基准并读取了所有代码,并且Nginx在负载下速度更快/更稳定 - 这非常好.

但是,这不是你问的.从本质上讲,我会说你列出的三个选项中存在一系列安全性/可扩展性与速度权衡,你只需要决定你想要的位置.如果您是一个共享托管服务提供商,不安全的用户安装上帝知道什么PHP应用程序,您将更倾向于安全性,如果这是在更受信任的用户之间共享,您可能倾向于性能.这是我的想法:

CGI + suexec:就共享托管环境中的用户/站点数量而言,这是迄今为止最安全,最有效/可扩展的.生成进程并仅在请求进入时使用内存.当然,CGI生成使得这对于单个脚本的执行时间来说是最慢的.慢多少?那么你必须进行基准测试,但一般来说,如果人们正在运行长时间运行的应用程序(例如像WordPress只需要0.25-0.5秒来加载它的库并在每个请求上初始化),那么CGI产生的惩罚开始变得很漂亮在上下文中可忽略不计.

FastCGI:这里的问题(如果您的网络服务器是Apache,Lighttpd或Nginx并不重要)正在计算每个用户离开运行的FCGI子进程数,因为每个进程占用的内存等于PHP解释器的大小(在Linux中并不是所有的都是有线的,但我离题了).而且,与mod_php不同,这些进程不会在用户之间共享,因此您必须限制每个用户.例如,Dreamhost将其限制在3为他们的客户 - 现在,对于运行网站的客户,每秒超过2-5次页面浏览的爆发,这实际上非常糟糕,因为这些请求只是堆叠而网站挂起.现在,当我在专用网站上运行应用程序时,我喜欢使用轻量级网络服务器的FastCGI服务器/集群,当我可以给应用程序数百个FCGI子项(当然所有的webserver privs,例如Apache/prefork + mod_php).但是,我不认为共享主机是有意义的,你需要为每个用户分配/限制FCGI子项.

Apache + mod_php:由于所有内容都与webserver privs一起运行,所以最不安全,但是你的实时PHP进程池是共享的,因此它在性能方面是最好的.从开发人员的角度来看,我无法容忍php_safe模式,从系统管理员的角度来看,它实际上只是一种安全幻觉(它可以减轻愚蠢的用户但不能防止实际攻击)所以我真的宁愿拥有CGI,如果我的话其他选项必须包括safe_mode.

Dreamhost确实是一种混合体,他们默认使用Apache CGI + suexec,但是如果他们想要的话,让更多精明的用户中的(小)百分比选择做FCGI,受限制并且他们自己监视内存使用情况.这样可以节省大量内存资源,而不是默认为每个人启用FCGI.

如果你谈论标准商业共享托管的另一个问题是,Apache是​​功能齐全的,有几乎任何模块(包括你可能想要的mod_security之类的东西),你的用户会喜欢它,因为他们的所有.htaccess配置都能正常工作等等 - 当他们去安装Drupal或WordPress或其他任何事情时,你会遇到其他任何事情的支持头痛(如果我们谈论内部用户,那么问题就少了很多).

就个人而言,我建议只是保持简单的开始和使用CGI + suexec以获得最佳的安全性和可扩展性.如果你的用户想要FCGI或mod_php并且你有一个很好的渠道可以提供建议/与他们沟通,他们会要求它,但是对你来说这些都是一个更大的问题,他们只有很小的性能改进,所以我的建议我们最初不会做其中任何一个,但如果他们吵着要响应.

我同样喜欢做一些像Lighttpd + FCGI这样"有趣"的东西而不是标准的Apache + CGI + suexec,但我内心深处我真的不能推荐它.

如果您正在运行多个服务器,那么最终可能会将CGI放在某些服务器上以及其他服务器上的高级用户.并确保cron grep所有www dirs的东西像旧的屁股版本的phpBB!

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有