You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS EC2 t2.micro实例WordPress迁移后加载极慢且不完整求助

解决AWS EC2 t2.micro上WordPress迁移后慢且加载不全的问题

刚迁移完WordPress就碰到这种糟心事儿确实头疼,结合你用的是t2.micro实例(本身资源就很有限),咱们一步步排查解决:

1. 先排查t2.micro的资源瓶颈

t2.micro是AWS免费层级的实例,只有1核CPU和1G内存,很容易因为资源耗尽导致站点变慢甚至加载异常:

  • tophtop命令实时监控CPU、内存使用率:如果CPU长期跑满100%,或者内存占用接近90%,那就是资源不够了
    • 临时缓解:可以先停止无用服务(比如systemctl stop apache2后重启),或者清理内存缓存echo 3 > /proc/sys/vm/drop_caches(这只是临时办法)
    • 长期解决:如果还在免费期,建议升级到t3.micro(性能更稳定且同样在免费层级内);超出免费期的话可以考虑t2.small,资源翻倍能明显改善性能

2. 检查挂载卷的权限配置

你把WordPress数据挂载到了/media/vdc/www/html,权限不对会导致Apache无法正常读取文件,直接引发加载不全或缓慢:

  • 执行命令修正权限:
    sudo chown -R www-data:www-data /media/vdc/www/html
    sudo chmod -R 755 /media/vdc/www/html
    
  • 同时确认Apache配置允许访问该目录:打开/etc/apache2/sites-available/000-default.conf,检查<Directory /media/vdc/www/html>块,确保包含AllowOverride AllRequire all granted,之后重启Apache:sudo systemctl restart apache2

3. 修正WordPress的URL配置细节

你已经添加了WP_HOME和WP_SITEURL,但注意不要留空格!你写的define('WP_HOME',' http://ip_or_domain.com ')里引号后有空格,会导致URL解析错误,改成:

define('WP_HOME', 'http://你的弹性IP或域名');
define('WP_SITEURL', 'http://你的弹性IP或域名');

另外登录WordPress后台,进入「设置」→「常规」,确认站点地址和WordPress地址与配置一致,避免后台残留旧URL引用。

4. 优化数据库配置与性能

t2.micro上同时跑MySQL+Apache+PHP很吃内存,数据库优化能有效缓解压力:

  • 先确认wp-config.php里的数据库连接信息(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST)完全正确,避免因连接失败拖慢站点
  • 编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,针对1G内存调整参数:
    innodb_buffer_pool_size = 256M
    key_buffer_size = 64M
    max_connections = 50
    query_cache_size = 16M
    
    之后重启MySQL:sudo systemctl restart mysql
  • 优化数据库表(替换成你的表前缀):
    OPTIMIZE TABLE wp_posts, wp_postmeta;
    

5. 启用缓存提升加载速度

对于资源有限的t2.micro,缓存是提升速度的关键:

  • 安装轻量级缓存插件,比如WP Super Cache(新手友好),开启静态缓存后能大幅减少服务器请求压力
  • 也可以开启Apache静态文件缓存,编辑Apache配置文件添加:
    <IfModule mod_expires.c>
        ExpiresActive On
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType application/javascript "access plus 1 month"
        ExpiresByType image/jpeg "access plus 1 year"
        ExpiresByType image/png "access plus 1 year"
    </IfModule>
    
    启用模块并重启Apache:sudo a2enmod expires && sudo systemctl restart apache2

6. 排查静态资源加载异常

加载不全大概率是静态资源(CSS、JS、图片)的URL错误或权限问题:

  • 用浏览器开发者工具(F12)查看「控制台」,找到404/500错误的资源,对应修复路径或权限
  • 如果之前用旧域名,现在换成弹性IP,需要批量替换数据库里的旧URL(替换前先备份数据库):
    UPDATE wp_posts SET post_content = REPLACE(post_content, '旧域名', '新弹性IP');
    UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, '旧域名', '新弹性IP');
    

内容的提问来源于stack exchange,提问作者saucewagon

火山引擎 最新活动