如何使PHP在Unix Apache上更具可扩展性

我正在寻找免费/低成本的方法,使我们的Unix Solaris服务器(Apache下)运行的PHP更具可扩展性和可靠性。 你推荐的免费版本的Zend服务器? 还有其他解决scheme吗?

这是一个网站,有时会收到超过200万次点击与10GB的数据传输在同一时期。 谢谢。

这取决于你当前的瓶颈和PHP的当前行为。

  • 如果你的PHP脚本相当小,响应速度快,没​​有任何外部依赖(如SQL查询,在这种情况下数据库服务器可能很容易成为真正的瓶颈),你通常不需要任何奇特的技术。 正确地调整httpd.conf中的进程限制,并可能抛出一个像XCache这样的操作码caching可能是一个好主意。

  • 如果您的网站大量使用数据库,那么适当的caching和memcached可以成为你的朋友。 不过,不要盲目地安装memcached,只有在巨大的负载下,或者如果你的SQL查询需要很长时间,memcached才会有帮助。 如果你只有小型数据库,并且SQL查询总是很快,那么memcached如果有的话也不会帮你什么忙。 一天200万的点击量是一个不错的数字,但是对于一个体面的服务器来说,并不是那么庞大,除非你的网站在资源/代码方面很重 (或者每天的WTF材料:-))。

  • 您网站上的内容是否可以caching? 它是否提供像偶尔改变的新闻之类的东西,还是非常dynamic的,比如Facebook? 如果它是可caching的,可以考虑使用前端代理(如Squid) ,或者如果您能负担得起,并且您的业务确实需要它,则可以使用一些硬件解决scheme。

如果您还没有使用像Zend这样的操作码caching系统,那么这可能是一个巨大的胜利,但是您需要执行一些分析来找出平台的瓶颈,以便select合适的解决scheme。

多lessIO正在执行? CPU多忙? 你的内存使用情况如何? 该网站是否支持数据库? 如果是这样,是在同一主机上的数据库? 数据库主机的使用情况如何? Web服务器和数据库服务器之间有什么带宽? 等等

你可以考虑给APC一个尝试。 我们最近安装在我们公司的服务器上。 服务器提供高负载的网站,效果非常好 – 负载提高了近40%。

关于使用不同的解决scheme: NGINX + PHP-FPM被认为是一个很好的Apache替代品(我们公司也在使用它,它工作的非常好,但是我现在无法与Apache进行全面比较)