据统计,83.6% 的网站使用 PHP 运行。因此,对于 Web 主机,确保 PHP 的良好性能很有必要。您可以通过优化服务器,预防性维护和全天候监控来实现 PHP 主机的高度响应。在此为您接受关于我们在管理客户服务器时使用的服务器优化技巧。
一、 启用 OpCode 缓存
这可能是 PHP 优化中最简单,最有影响力的。磁盘访问成本很高。每次访问包括脚本,模板,布局和数据库记录都涉及磁盘访问。通过启用像 APC 这样的 OpCode 缓存,我们已经能够将磁盘访问减少近 70%。那是因为重复请求是从系统内存上运行的缓存提供的。
二、使用快速的 PHP 引擎和处理程序
我们已经看到许多 Apache Web 托管服务器默认运行 PHP 5.6,并且 mod_php 作为处理程序。mod_php 在每个 Apache 进程中运行 PHP 解释器。它使每个站点访问内存使用量增大,并导致服务器高负载。最重要的是,PHP 5.6 使用旧的 Zend 引擎,比 PHPNG 引擎支持的最新 PHP 7 慢 95%。通过使用 PHP 7.2 引擎和 php-fpm 作为处理程序,我们可到看到性能和安全性的最佳结果。通过用 PHP 7.2 + php-fpm + Nginx 替换 PHP 5.6 + modPHP + Apache 的默认组合,我们已经能够将站点速度提高近 150%。
三、优化数据库查询,表和设置
几乎所有 PHP 站点都使用 MySQL(或类似)数据库来存储数据。在对网站性能问题进行故障排除时,我们已多次将其跟踪到底层数据库。我们看到慢查询,碎片表和未优化的设置导致数据库速度变慢,从而影响 PHP 站点速度。只能通过重写应用程序代码来修复慢速查询,这对大多数 Web 主机来说都是不实用的。在这种情况下,我们通过使用操作码缓存来最小化性能问题的严重性。但是,我们可以通过定期数据库服务器审核和优化来提高数据库服务器本身的性能。我们调整的一些常见设置是:
innodb_buffer_pool_size - InnoDB 数据库中缓冲区的大小(旧查询的缓存)。通常设置为可用内存的 50-70%。 key_buffer_size - MyISAM 数据库的缓冲区大小。通常设置为可用内存的 20%。 max_connections - 每个用户可用的连接数。影响每个用户的内存使用量。 query_cache_size - 用于保存旧查询的总内存大小。
四、将 SSD 用于数据库
硬盘是服务器中最慢的组件。在繁忙的电子商务托管服务器中,通过将数据库目录安装在 SSD 而不是机械硬盘上,我们已经能够将性能滞后减少 50%以上。所以,如果你已经尝试了所有的东西而且陷入沉重的 I / O,那就为 / var 目录获取一个 SSD。例如,选择香港服务器时,您可以选择 240G SSD 硬盘或者附加 SSD 硬盘来实现这一操作。
五、隔离或限制内存
并非每个 PHP 应用程序都是平等的。有些是编码良好,性能分析和性能调整。其他的是随意编码并包含内存泄漏。在共享服务器中,通常情况下编码较差的 PHP 站点会导致服务器高负载。为了防止这些站点影响其他服务器用户,我们要么为其内存分配设置硬限制,要么将它们放入具有资源硬限制的虚拟服务器中。这样,即使一个或两个站点行为不端,绝大多数 PHP 客户也将拥有快速的托管体验。
总之,PHP 主宰着 Web 托管市场,每个 Web 主机都需要调整服务器以提供最快的托管服务。所有云虚拟主机均已通过以上设置进行服务器优化,来提高 PHP 性能。以上所有设置是是一些我们在提供超快速 PHP 托管体验的过程中学到的技巧。希望对你有所帮助。