原创文章,转载请注明出处
https://qiedd.com/

0. 简介

https://pagespeed.web.dev/ 测试

WordPress 优化可以分为三步

  1. PHP 优化
  2. 数据库优化
  3. WordPress 优化

环境

系统:Arch Linux
内存: 32G (建议内存大于2G)
Caddy:2.4.6 (Arch 官方源)
PHP : 8.0 (Arch 官方源)
Mariadb : 10.6.5 (Arch 官方源)

1. php优化

# 编辑php.ini
vim /etc/php/php.ini

# 将前面的分号注释去掉
zend_extension=opcache

# 往下翻,找到这几项
[opcache]
opcache.enable=1
opcache.memory_consumption=1024
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.max_wasted_percentage=5
opcache.revalidate_freq=2
opcache.revalidate_path=0
opcache.save_comments=1

opcache.enable=1 开启opcaahe
opcache.memory_consumption 共享内存,单位为M,请根据自己的内存作分配
opcache.interned_strings_buffer 存储临时字符串缓存大小单位为M
opcache.max_accelerated_files 最大缓存的文件数,允许范围 200~1000000
opcache.revalidate_freq 一定时间内检查文件的修改时间,默认为2

2. Mariadb 优化

开启数据库缓存来加速查询速度 https://mariadb.com/kb/en/query-cache/

从官方文档我们可以得知:

  1. 缓存已经默认开启
  2. 默认缓存大小为 1MB
  3. 一个块大小为 1MB,缓存必须是1024的倍数,缓存单位为 B
# Starting from MariaDB 10.1.7, query_cache_type is automatically set to ON if the server is started with the query_cache_size set to a non-zero (and non-default) value.

# From 10.1.7 on the cache size defaults to 1MB

# The query cache size is allocated in 1024 byte-blocks, thus it should be set to a multiple of 1024.

登录进数据库看看

# 输入密码将不会显示
mysql -uroot -p

# 通过这两条命令我们可以查看缓存情况
SHOW VARIABLES LIKE 'have_query_cache';
SHOW VARIABLES LIKE 'query_cache_size';
MariaDB [(none)]> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+
1 row in set (0.001 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_size';
+------------------+---------+
| Variable_name    | Value   |
+------------------+---------+
| query_cache_size | 1048576 |
+------------------+---------+
1 row in set (0.001 sec)

现在我们来设置缓存大小,我这里设置了 64MB

# 将缓存设置为64MB
SET GLOBAL query_cache_size = 67108864;
MariaDB [(none)]> SET GLOBAL query_cache_size = 67108864;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'query_cache_size';
+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| query_cache_size | 67108864 |
+------------------+----------+
1 row in set (0.001 sec)

3. WordPress优化

下载 WP Super Cache

由于我们已经在 Caddy 中开启了压缩,现在就不用在插件内开启了

4. Redis缓存

https://wiki.archlinux.org/title/PHP#Redis

# 安装Redis
pacman -S redis php-redis

# 编辑Redis的配置文件
vim /etc/redis/redis.conf

unixsocket /run/redis/redis.sock
unixsocketperm 770

# 添加用户到Redis用户组
usermod -aG http,git,caddy,mysql redis

# 查看用户组
groups redis

# 取消redis的注释
vim /etc/php/conf.d/redis.ini

extension=redis

# 取消igbinary.so的注释
vim /etc/php/conf.d/igbinary.ini

extension=igbinary.so

# 启动redis
systemctl enable redis
systemctl start redis

# 安装Redis Object Cache,启用即可

5. CSS合并以及字体优化

安装 Autoptimize


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据