当WordPress是一个空白站点的时候,打开速度一般不会有问题,随着网站内容越来越丰富,安装的插件越来越多,网站的打开速度可能会变得越来越慢,是什么原因导致WordPress变慢了呢?数据库?插件?主题?当遇到技术问题的时候,我们不能靠猜测来定位问题,对于WordPress站点来说,我们可以打开PHP的 slow log 慢日志来排查,看看是什么原因导致WordPress变慢了。
在LNMP环境中开启慢日志
这里说的LNMP环境是通过 https://lnmp.org/ 配置的环境。
1、编辑PHP FPM配置文件开启慢日志
vi /usr/local/php/etc/php-fpm.conf
2、加入以下配置
request_slowlog_timeout = 2s
slowlog = /var/log/php-slow.log
3、重启 PHP FPM 服务
lnmp php-fpm restart
如果你安装了其他PHP版本,需要修改你的WordPress站点使用的PHP站点的配置文件来开启慢日志。
在cPanel中开启PHP慢日志
1、首先,通过SSH登录cPanel服务器,运行下面的命令创建配置文件。
mkdir /var/cpanel/ApachePHPFPM/
touch /var/cpanel/ApachePHPFPM/system_pool_defaults.yaml
2、然后添加下面的配置项到 system_pool_defaults.yaml 文件中。
---
_is_present: 1
slowlog: { name: 'slowlog', value: "/var/log/php-slow.log" }
request_slowlog_timeout: { name: 'request_slowlog_timeout', value: 1 }
3、重新构建PHP FPM配置并重启PHP FPM服务
/usr/local/cpanel/scripts/php_fpm_config --rebuild && /scripts/restartsrv_apache_php_fpm --status
通过slow log 定位问题
开启了慢日志后,我们再打开网站,刷新几次,就可以在慢日志中看到一些内容了,如下面的日志:
[05-Nov-2024 23:25:45] [pool sample_com] pid 101088
script_filename = /home/sample/public_html/wp-admin/edit.php
[0x00007f38ea017b60] stream_socket_client() /home/sample/public_html/wp-includes/Requests/src/Transport/Fsockopen.php:173
[0x00007f38ea0166f0] request() /home/sample/public_html/wp-includes/Requests/src/Requests.php:469
[0x00007f38ea0165f0] request() /home/sample/public_html/wp-includes/class-wp-http.php:397
[0x00007f38ea016460] request() /home/sample/public_html/wp-includes/class-wp-http.php:638
[0x00007f38ea0163c0] get() /home/sample/public_html/wp-includes/http.php:184
[0x00007f38ea016330] wp_remote_get() /home/sample/public_html/wp-content/plugins/woocommerce-advanced-product-labels/includes/admin/class-wapl-hook-check.php:126
[0x00007f38ea016280] _do_hook_check() /home/sample/public_html/wp-content/plugins/woocommerce-advanced-product-labels/includes/admin/class-wapl-hook-check.php:87
[0x00007f38ea0161e0] missing_hook_notice() /home/sample/public_html/wp-includes/class-wp-hook.php:324
[0x00007f38ea016100] apply_filters() /home/sample/public_html/wp-includes/class-wp-hook.php:348
[0x00007f38ea016090] do_action() /home/sample/public_html/wp-includes/plugin.php:517
[0x00007f38ea015fb0] do_action() /home/sample/public_html/wp-admin/admin-header.php:303
[0x00007f38ea0153f0] [INCLUDE_OR_EVAL]() /home/sample/public_html/wp-admin/edit.php:411
对WordPress性能优化有一定经验的朋友不难看出,WordPress站点请求了某个外部网址,而这个外部网址的响应速度缓慢影响了WordPress的打开速度。知道了原因,我们针对性的去解决就行了。
虽然本文是针对WordPress的教程,但是其中的原理也适合其他PHP程序,如果您的站点遇到了打开速度慢的问题,不妨参考本文中的方式尝试一下。
顺便提一下,我们也提供专门针对WordPress的性能优化服务,如果您的WordPress站点打开速度慢,可以委托我们帮您进行优化,详情请咨询网站右侧微信。